Nano Banana Pro API 사용법: 완벽 가이드 (2026)
Nano Banana Pro를 사용하여 AI 모델 배포 및 서빙하기
Hypereal로 구축 시작하기
단일 API를 통해 Kling, Flux, Sora, Veo 등에 액세스하세요. 무료 크레딧으로 시작하고 수백만으로 확장하세요.
신용카드 불필요 • 10만 명 이상의 개발자 • 엔터프라이즈 지원
Nano Banana Pro API 사용법: 전체 가이드 (2026)
Nano Banana Pro는 인프라 관리 없이 API를 통해 AI 모델을 배포하고 구동할 수 있는 서버리스 GPU 추론(inference) 플랫폼입니다. 특히 커스텀 모델, 파인튜닝된 LLM, 이미지 생성 파이프라인을 실행하는 데 매우 인기가 높습니다.
이 가이드는 초기 설정부터 코드 예제를 활용한 프로덕션 배포까지 모든 내용을 다룹니다.
Nano Banana Pro란 무엇인가요?
Banana.dev(현재 Banana Pro / Nano Banana Pro)는 AI 추론을 위한 서버리스 GPU 컴퓨팅을 제공합니다. 전용 GPU 서버를 임대하는 대신, 모델을 배포하고 실제 사용한 컴퓨팅 시간에 대해서만 비용을 지불하면 됩니다.
주요 기능
- 서버리스 GPU 추론 -- 서버 관리 불필요
- 콜드 스타트(Cold start) 최적화 -- 모델 로드에 수초 내외 소요
- 오토 스케일링(Auto-scaling) -- 트래픽 급증 시 자동으로 대응
- 커스텀 모델 지원 -- 모든 PyTorch/TensorFlow 모델 배포 가능
- 사전 구축된 템플릿 -- 인기 있는 모델로 신속하게 시작 가능
- 초당 과금 방식 -- 유휴 시간 비용 발생 없음
시작하기
1단계: 계정 생성
- banana.dev에 접속하여 가입합니다.
- 대시보드로 이동합니다.
- Settings > API Keys 메뉴에서 API 키를 생성합니다.
2단계: SDK 설치
# Python SDK
pip install banana-dev
# Node.js SDK
npm install @banana-dev/banana-dev
3단계: 첫 번째 추론 실행
import banana_dev as banana
api_key = "your-api-key"
model_key = "your-model-key" # 대시보드에서 확인
# 추론 실행
result = banana.run(
api_key=api_key,
model_key=model_key,
model_inputs={
"prompt": "A futuristic city at sunset, cyberpunk style",
"num_inference_steps": 30,
"guidance_scale": 7.5,
"width": 1024,
"height": 1024
}
)
print(result["modelOutputs"])
import Banana from "@banana-dev/banana-dev";
const banana = new Banana.default("your-api-key");
const result = await banana.run("your-model-key", {
prompt: "A futuristic city at sunset, cyberpunk style",
num_inference_steps: 30,
guidance_scale: 7.5,
width: 1024,
height: 1024,
});
console.log(result.modelOutputs);
커스텀 모델 배포하기
Banana Potassium 프레임워크 사용
Potassium은 모든 Python 모델을 배포 가능한 API로 래핑하기 위한 Banana의 프레임워크입니다.
1단계: 프로젝트 생성
mkdir my-model && cd my-model
pip install potassium
2단계: app.py 작성
from potassium import Potassium, Request, Response
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
app = Potassium("my-llm-api")
@app.init
def init():
"""모델을 메모리에 로드"""
model_name = "microsoft/phi-4"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float16,
device_map="auto"
)
context = {
"model": model,
"tokenizer": tokenizer
}
return context
@app.handler()
def handler(context: dict, request: Request) -> Response:
"""추론 요청 처리"""
model = context["model"]
tokenizer = context["tokenizer"]
prompt = request.json["prompt"]
max_tokens = request.json.get("max_tokens", 512)
temperature = request.json.get("temperature", 0.7)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=max_tokens,
temperature=temperature,
do_sample=True
)
response_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
return Response(
json={"output": response_text},
status=200
)
if __name__ == "__main__":
app.serve()
3단계: Dockerfile 생성
FROM pytorch/pytorch:2.1.0-cuda12.1-cudnn8-runtime
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
# 빌드 중 모델 가중치 미리 다운로드
RUN python -c "from transformers import AutoModelForCausalLM, AutoTokenizer; \
AutoTokenizer.from_pretrained('microsoft/phi-4'); \
AutoModelForCausalLM.from_pretrained('microsoft/phi-4')"
EXPOSE 8000
CMD ["python", "app.py"]
4단계: 배포
# Banana CLI 설치
pip install banana-cli
# 로그인
banana login
# 배포
banana deploy
사전 구축된 모델(Pre-Built Models) 배포
Banana Pro는 인기 모델을 위한 템플릿을 제공합니다. 가장 일반적인 예시는 다음과 같습니다.
Stable Diffusion XL
import banana_dev as banana
result = banana.run(
api_key="your-api-key",
model_key="sdxl-model-key",
model_inputs={
"prompt": "professional product photo of sneakers, studio lighting",
"negative_prompt": "blurry, low quality, distorted",
"num_inference_steps": 30,
"guidance_scale": 7.5,
"width": 1024,
"height": 1024,
"seed": 42
}
)
image_base64 = result["modelOutputs"][0]["image"]
Whisper (음성-텍스트 변환)
result = banana.run(
api_key="your-api-key",
model_key="whisper-model-key",
model_inputs={
"audio_url": "https://example.com/audio.mp3",
"language": "en",
"task": "transcribe"
}
)
transcription = result["modelOutputs"][0]["text"]
print(transcription)
LLM 추론 (Llama, Mistral)
result = banana.run(
api_key="your-api-key",
model_key="llama-model-key",
model_inputs={
"prompt": "Explain the difference between REST and GraphQL APIs:",
"max_tokens": 1024,
"temperature": 0.7,
"top_p": 0.9
}
)
print(result["modelOutputs"][0]["text"])
비동기 및 Webhook 지원
실행 시간이 긴 작업의 경우, Webhook과 함께 비동기 모드를 사용하세요.
import banana_dev as banana
# 비동기 추론 시작
async_result = banana.start(
api_key="your-api-key",
model_key="your-model-key",
model_inputs={
"prompt": "Generate a detailed 3D scene...",
"num_inference_steps": 100
},
webhook_url="https://your-server.com/webhook"
)
call_id = async_result["callID"]
print(f"Job started: {call_id}")
# 또는 결과 폴링(polling)
import time
while True:
status = banana.check(api_key="your-api-key", call_id=call_id)
if status["message"] == "success":
print("Done:", status["modelOutputs"])
break
time.sleep(2)
Webhook 핸들러
from flask import Flask, request
app = Flask(__name__)
@app.route("/webhook", methods=["POST"])
def banana_webhook():
data = request.json
call_id = data["callID"]
outputs = data["modelOutputs"]
# 결과 처리
print(f"Job {call_id} completed: {outputs}")
return "OK", 200
가격 책정 (Pricing)
| GPU 등급 | GPU 모델 | VRAM | 가격 (초당) | 용도 |
|---|---|---|---|---|
| Basic | A10 | 24GB | ~$0.00019/s | 소형 모델, SDXL |
| Standard | A100 40GB | 40GB | ~$0.00032/s | 중형 LLM, 파인튜닝 모델 |
| Premium | A100 80GB | 80GB | ~$0.00055/s | 대형 LLM (70B+) |
| Ultra | H100 | 80GB | ~$0.00095/s | 초고속 추론 |
비용 예시
A10에서 Stable Diffusion XL 실행 시:
- 평균 추론 시간: ~3초
- 이미지당 비용: ~$0.00057
- 1,000장 이미지: ~$0.57
Nano Banana Pro vs 대안 서비스
| 기능 | Nano Banana Pro | Replicate | Modal | RunPod Serverless |
|---|---|---|---|---|
| 가격 모델 | 초당 과금 | 초당 과금 | 초당 과금 | 초당 과금 |
| 콜드 스타트 | ~5-15초 | ~5-30초 | ~2-10초 | ~5-20초 |
| 커스텀 모델 | 지원 | 지원 | 지원 | 지원 |
| 사전 구축 모델 | 제한적 | 방대한 라이브러리 | 제한적 | 제한적 |
| GPU 옵션 | A10, A100, H100 | A40, A100, H100 | A10, A100, H100 | 다양한 옵션 |
| 최소 비용 | 사용한 만큼 지불 | 사용한 만큼 지불 | 사용한 만큼 지불 | 사용한 만큼 지불 |
| 프레임워크 | Potassium | Cog | Modal | 커스텀 Docker |
베스트 프랙티스
1. 콜드 스타트 최적화
# 핸들러가 아닌 init 함수에서 모델을 미리 로드하세요.
@app.init
def init():
# 컨테이너가 시작될 때 '한 번' 실행됩니다.
model = load_model() # 여기서 무거운 로딩 작업을 수행하세요.
return {"model": model}
@app.handler()
def handler(context, request):
# '모든 요청'마다 실행됩니다. 최소한의 로직으로 빠르게 유지하세요.
model = context["model"]
return model.predict(request.json)
2. 모델 캐싱 사용
# Docker 빌드 중에 모델 가중치를 다운로드하세요.
RUN python download_model.py
# 이렇게 하면 모든 콜드 스타트 시마다 다운로드하는 것을 방지할 수 있습니다.
3. 배치 요청 처리
@app.handler()
def handler(context, request):
model = context["model"]
prompts = request.json.get("prompts", [request.json["prompt"]])
# GPU 활용도를 높이기 위해 배치 처리 수행
results = model.batch_generate(prompts)
return Response(json={"outputs": results}, status=200)
4. 모니터링 설정
import time
import logging
@app.handler()
def handler(context, request):
start_time = time.time()
result = run_inference(context, request)
duration = time.time() - start_time
logging.info(f"Inference took {duration:.2f}s")
return Response(
json={"output": result, "inference_time": duration},
status=200
)
Nano Banana Pro는 언제 사용해야 하나요?
적합한 경우:
- 표준 플랫폼에 없는 커스텀 또는 파인튜닝된 모델을 사용할 때
- 트래픽 변동이 크고 예측 불가능한 스파이크가 발생할 때
- 비용에 민감한 프로젝트 (시간당 GPU 임대 대비 초당 과금 유리)
- 모델 배포 프로토타이핑 및 테스트 시
이상적이지 않은 경우:
- 트래픽이 지속적으로 높음 (전용 GPU 임대가 더 저렴할 수 있음)
- 초저지연(Ultra-low-latency) 요구사항 (콜드 스타트로 인한 지연 가능성)
- 표준 API로 해결 가능한 단순한 유스케이스
대안: 사전 구축된 AI API 사용
커스텀 모델을 배포할 필요 없이 API를 통해 AI 기능을 호출하고 싶다면 관리형 플랫폼이 더 간단합니다. Hypereal AI는 이미지 생성, 비디오 제작, 립싱크, 목소리 복제 등을 위한 즉시 사용 가능한 API를 제공하며, 모델 배포가 필요 없습니다. 콜드 스타트 없는 즉각적인 추론과 투명한 크레딧 기반 요금제를 제공합니다.
결론
Nano Banana Pro는 GPU 인프라 관리 없이 커스텀 AI 모델을 배포할 수 있는 탁월한 선택입니다. Potassium 프레임워크를 사용하면 모든 Python 모델을 프로덕션급 API로 손쉽게 전환할 수 있습니다.
먼저 사전 구축된 템플릿으로 플랫폼을 테스트해 보고, 필요에 따라 커스텀 배포로 확장해 보세요. 이미지나 비디오 생성과 같은 표준 AI 작업의 경우, 직접 배포하기보다 관리형 API를 사용하는 것이 더 효율적일 수 있다는 점도 고려해 보시기 바랍니다._
