# Nano Banana API 비용·안정성 비교: Google 직접 호출과 laozhang.ai

> Nano Banana 2와 Pro의 해상도별 요금, Google 직접 호출과 laozhang.ai 요청 형식, 이미지 저장 및 타임아웃 복구를 비교합니다. 실제로 받은 이미지 한 장의 비용을 계산하는 방법도 설명합니다.

- URL: https://blog.laozhang.ai/ko/posts/cheap-stable-nano-banana-api
- Published: 2026-04-05
- Updated: 2026-09-07
- Author: LaoZhang AI Team (https://blog.laozhang.ai/ko/about)
- Category: API 요금
- Tags: Nano Banana API, Gemini API, API 요금, laozhang.ai, 이미지 생성, Google AI

---
Nano Banana API를 고를 때는 **같은 모델·같은 해상도의 비용과 실제 이미지 수신 여부**를 함께 봐야 합니다. 2026년 9월 7일 공개 요금 기준으로 Nano Banana 2의 1K 이미지 1,000장을 생성하면 Google Standard의 이미지 출력 비용은 67.20달러, laozhang.ai에서 성공 호출 1,000건의 비용은 55달러입니다. 기다려도 되는 작업이라면 Google Batch의 같은 출력 비용은 33.60달러로 내려갑니다. 단, Google의 수치는 입력 등 추가 비용을 제외하며, laozhang.ai의 성공 호출 수가 받은 이미지 수와 항상 같지는 않습니다. [Google 가격표](https://ai.google.dev/gemini-api/docs/pricing), [LaoZhang 이미지 API 요금](https://docs.laozhang.ai/en/api-capabilities/image-generation-guide).

따라서 실시간 생성에는 Standard와 게이트웨이의 같은 조건을 비교하고, 대량 예약 작업에는 Batch까지 따로 계산하는 편이 좋습니다. 어느 공급자가 더 안정적인지는 이 글의 공개 문서만으로 순위를 매길 수 없습니다. 아래에서는 비용 차이를 확인한 뒤, 동일한 요청으로 이미지를 저장하고 실패와 청구를 구분하는 방법까지 살펴봅니다.

## 가격을 보기 전에 모델과 출력 조건을 맞추세요

현재 사용할 모델 ID는 Nano Banana 2의 `gemini-3.1-flash-image`, Nano Banana Pro의 `gemini-3-pro-image`입니다. 2는 0.5K·1K·2K·4K를, Pro는 1K·2K·4K를 지원합니다. 기존 Nano Banana와 Nano Banana 2 Lite는 별도 모델이므로, 이름이 비슷하다는 이유로 Pro의 저가 대체 가격처럼 비교하면 안 됩니다. [Nano Banana 2 모델 문서](https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-image), [Pro 모델 문서](https://ai.google.dev/gemini-api/docs/models/gemini-3-pro-image).

비교용 작업에는 모델 ID, 해상도, 화면비, 입력 문구, 참조 이미지, 검색 사용 여부를 고정하세요. 1K 정사각형 상품 사진과 4K 가로형 배너의 견적은 같은 표에서 최저가만 뽑을 수 없습니다. 응답 시간이 짧더라도 텍스트만 돌아오거나 원하는 크기의 이미지가 저장되지 않으면 그 작업은 완료되지 않은 것입니다.

## 1,000건으로 계산하면 비용 차이가 보입니다

아래 Google 금액은 이미지 출력 토큰 단가로 계산한 **출력 비용만** 표시합니다. LaoZhang 금액은 현재 공개된 Nano Banana 2 건당 0.055달러, Pro 건당 0.09달러에 **성공 과금 호출 1,000건**을 곱했습니다. 통화는 미국 달러이며 입력, 검색 등 Google의 추가 비용과 실제 정산 차이는 포함하지 않았습니다. 확인일은 2026년 9월 7일입니다. [Google 가격표](https://ai.google.dev/gemini-api/docs/pricing), [LaoZhang 요금 안내](https://docs.laozhang.ai/en/api-capabilities/image-generation-guide).

| 동일 모델과 해상도 | Google Standard 이미지 1,000장 출력 | Google Batch 이미지 1,000장 출력 | laozhang.ai 성공 호출 1,000건 |
| --- | ---: | ---: | ---: |
| Nano Banana 2 · 1K | $67.20 | $33.60 | $55.00 |
| Nano Banana 2 · 4K | $151.20 | $75.60 | $55.00 |
| Nano Banana Pro · 1K 또는 2K | $134.40 | $67.20 | $90.00 |
| Nano Banana Pro · 4K | $240.00 | $120.00 | $90.00 |

예를 들어 Nano Banana 2의 1K 출력은 1,120토큰이고 Standard 이미지 출력 단가는 100만 토큰당 60달러입니다. `1,120 × 1,000 ÷ 1,000,000 × 60 = 67.20`달러가 됩니다. 가격표의 반올림된 장당 0.067달러를 그대로 곱한 67달러와는 차이가 있습니다. 견적에서 표시 단가를 쓰는 것은 괜찮지만 이를 정확한 청구액이라고 부르면 안 됩니다.

결론은 해상도와 대기 시간에 따라 달라집니다. Nano Banana 2의 0.5K Standard 출력은 약 0.045달러로 LaoZhang의 0.055달러보다 낮습니다. 반면 위 표의 4K에서는 LaoZhang의 건당 가격이 낮습니다. Nano Banana Pro 1K·2K 작업은 Batch를 사용할 수 있다면 Google의 출력 비용이 더 낮습니다. 두 모델의 해당 이미지 출력에는 Google 무료 티어가 없습니다. 전체 제품군과 무료 사용 범위는 [Nano Banana API 요금과 무료 사용 안내](https://blog.laozhang.ai/ko/posts/nano-banana-api-pricing-free-vs-pro)에서 확인할 수 있습니다.

Batch는 일반 요청의 즉시 대체 수단이 아닙니다. Google은 비동기 대량 처리에 Standard 대비 50% 가격과 목표 24시간 처리 시간을 안내합니다. 사용자가 화면 앞에서 기다리는 생성에 그대로 넣기보다는 야간 상품 이미지 제작처럼 완료를 기다릴 수 있는 작업에 적합합니다. [Google Batch 문서](https://ai.google.dev/gemini-api/docs/batch-api).

Flex나 Priority를 이 계산에 섞지 않은 이유도 있습니다. 현재 Pro 가격표에는 관련 가격이 있지만 모델 문서의 지원 여부와 일치하지 않습니다. 지원이 확인된 Standard와 Batch로 예산을 잡고, 다른 처리 등급은 해당 계정과 모델에서 별도 확인하세요.

![Nano Banana 모델별 Google 이미지 출력 요금을 비교하는 그림](https://blog.laozhang.ai/posts/ko/cheap-stable-nano-banana-api/img/official-lanes.webp)

## “성공 호출” 대신 사용 가능한 이미지 한 장의 비용을 계산하세요

LaoZhang은 Google이 성공으로 반환한 호출을 기준으로 과금하며, **이미지가 반환되지 않아도 성공 호출로 청구될 수 있다**고 안내합니다. 따라서 HTTP 200만 세어 장당 비용을 계산하면 실제 제작 비용이 낮게 보일 수 있습니다. 오류, 시간 초과, 파라미터 검증 실패의 청구 여부도 콘솔 주문 상태와 대조해야 합니다. [LaoZhang Pro 과금 안내](https://docs.laozhang.ai/en/api-capabilities/nano-banana-pro-image).

운영 비용은 `최종 순청구액 ÷ 사용 가능한 이미지 수`로 계산하세요. 최종 순청구액에는 확정된 추가 청구와 환불·크레딧을 반영합니다. 사용 가능한 이미지는 파일 디코딩에 성공하고 요청한 해상도와 화면비를 충족하며 실제 작업에 쓸 수 있는 결과입니다. 그 수가 0이면 장당 비용은 계산할 수 없습니다.

**가정 예시:** Nano Banana 2 성공 과금 1,000건이 55달러로 정산됐지만 쓸 수 있는 이미지가 900장이라면 장당 비용은 약 0.0611달러입니다. 이는 실측 성공률이 아니라 계산 방법을 보여 주는 예입니다. 재생성 때문에 성공 과금이 100건 더 생기고 최종 이미지가 1,000장이라면 비용은 60.50달러, 장당 0.0605달러가 됩니다. 최초 요청 수와 재시도 수를 함께 남겨야 이 차이를 찾을 수 있습니다.

## 같은 2K 요청을 두 공급자에 보내는 방법

비교 예제는 Nano Banana Pro, 2K, 1:1 조건을 사용합니다. Google 직접 호출과 LaoZhang의 Google 형식 호출은 요청 본문을 공유할 수 있지만 호스트와 인증 헤더가 다릅니다. 원시 REST 응답의 이미지 데이터는 `candidates[].content.parts[].inlineData`에 들어갑니다. SDK의 `inline_data` 속성과 혼동하지 마세요. [Google 이미지 생성 REST 안내](https://ai.google.dev/gemini-api/docs/generate-content/image-generation), [LaoZhang Google 형식 안내](https://docs.laozhang.ai/en/api-capabilities/nano-banana-pro-image).

다음을 `request.json`으로 저장합니다. 이미지 생성 의도를 명시하고, 비교하는 동안 문구를 바꾸지 않습니다.

```json
{
  "contents": [{
    "parts": [{
      "text": "흰 배경 위에 파란 세라믹 머그컵 하나가 놓인 상품 사진을 생성하고 이미지로 반환해 주세요."
    }]
  }],
  "generationConfig": {
    "responseModalities": ["IMAGE"],
    "imageConfig": {
      "aspectRatio": "1:1",
      "imageSize": "2K"
    }
  }
}
```

키는 코드에 직접 쓰지 말고 환경 변수로 준비하세요. Google을 쓸 때는 `GOOGLE_API_KEY`, LaoZhang을 쓸 때는 `LAOZHANG_API_KEY`에 각 공급자가 발급한 키를 넣습니다. 아래 두 설정 중 **호출할 공급자 하나만** 선택합니다.

```bash
# Google 직접 호출
ENDPOINT='https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-image:generateContent'
AUTH_HEADER="x-goog-api-key: ${GOOGLE_API_KEY:?GOOGLE_API_KEY를 설정하세요}"
```

```bash
# laozhang.ai
ENDPOINT='https://api2.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent'
AUTH_HEADER="Authorization: Bearer ${LAOZHANG_API_KEY:?LAOZHANG_API_KEY를 설정하세요}"
```

선택한 설정 다음에 아래 명령을 실행하면 실제 유료 생성 요청을 보냅니다. 공급자별로 빈 작업 디렉터리를 사용해 이전 응답을 덮어쓰지 마세요. 자동 재시도 옵션은 넣지 않았습니다.

```bash
curl --silent --show-error --max-time 180 \
  --request POST "$ENDPOINT" \
  --header "$AUTH_HEADER" \
  --header 'Content-Type: application/json' \
  --data-binary @request.json \
  --dump-header response-headers.txt \
  --output response.json \
  --write-out 'HTTP %{http_code}\n'
```

`curl`이 연결 오류나 시간 초과로 끝나면 불완전한 응답을 성공으로 처리하지 않습니다. HTTP 오류이면 JSON의 오류 메시지를 확인하고, 정상 응답이면 다음 단계에서 이미지 자체를 검사합니다. Nano Banana 2를 비교할 때는 두 설정의 모델 ID를 모두 `gemini-3.1-flash-image`로 변경하고 나머지 조건을 유지하세요.

기존 OpenAI 코드를 활용하려면 지원 범위를 먼저 맞춰야 합니다. LaoZhang Pro 문서는 `/v1/chat/completions` 방식에 1:1·1K 제한을 안내하므로 위 2K 비교에는 Google 형식을 사용합니다. `/v1/images/generations`로 주소만 바꾸면 된다고 가정하면 안 됩니다. Google도 [OpenAI 호환 인터페이스](https://ai.google.dev/gemini-api/docs/openai)를 제공하므로 호환성 자체를 한쪽만의 장점으로 볼 수는 없습니다. 세부 연결 과정은 [Nano Banana 이미지 생성 API 사용법](https://blog.laozhang.ai/ko/posts/nano-banana-ai-image-generation-api)을 참고하세요.

## 텍스트가 먼저 와도 이미지 파일을 찾아 저장하기

첫 번째 응답 조각이 항상 최종 이미지라는 보장은 없습니다. 아래 코드는 `thought: true`인 중간 사고 결과를 건너뛰고 모든 후보의 나머지 조각을 살펴봅니다. 그런 다음 이미지 데이터의 Base64와 파일 디코딩을 확인한 뒤 저장합니다. HTTP 200이어도 이미지가 없거나 데이터가 손상됐으면 실패로 끝납니다. Pillow가 필요하므로 먼저 `python3 -m pip install Pillow`를 실행하고 코드를 `save_images.py`로 저장하세요.

```python
import base64
import io
import json
import sys
import tempfile
from pathlib import Path

from PIL import Image


def save_images(payload, destination):
    if payload.get("error"):
        raise ValueError(f"API 오류: {payload['error']}")
    saved = []
    extensions = {"PNG": "png", "JPEG": "jpg", "WEBP": "webp"}
    for candidate in payload.get("candidates", []):
        for part in candidate.get("content", {}).get("parts", []):
            if part.get("thought") is True:
                continue
            inline = part.get("inlineData")
            if not inline:
                continue
            if not inline.get("mimeType", "").startswith("image/"):
                continue
            raw = base64.b64decode(inline["data"], validate=True)
            with Image.open(io.BytesIO(raw)) as image:
                image.verify()
            with Image.open(io.BytesIO(raw)) as image:
                image.load()
                width, height = image.size
                extension = extensions.get(image.format)
            if extension is None:
                raise ValueError("지원하지 않는 이미지 파일 형식입니다")
            output = destination / f"image-{len(saved) + 1}.{extension}"
            with output.open("xb") as handle:
                handle.write(raw)
            saved.append((output, width, height))
    if not saved:
        raise ValueError("응답에 저장할 이미지가 없습니다. 원본 JSON을 확인하세요")
    return saved


if __name__ == "__main__":
    payload = json.loads(Path(sys.argv[1]).read_text(encoding="utf-8"))
    folder = Path(tempfile.mkdtemp(prefix="nano-output-", dir="."))
    for output, width, height in save_images(payload, folder):
        print(f"저장: {output} / {width}×{height}")
```

실행 명령은 `python3 save_images.py response.json`입니다. 출력된 실제 픽셀 크기를 요청한 2K·1:1 조건과 비교하고, 파일을 열어 내용도 확인하세요. 코드는 파일이 읽히는지 검사하지만 원하는 상품이 맞는지까지 판정하지는 않습니다. 여러 이미지 중 나중 이미지가 손상되면 앞서 저장된 파일이 남을 수 있으므로 오류가 난 호출은 부분 결과로 구분합니다.

이 저장 코드는 텍스트가 이미지보다 앞에 오는 응답, 이미지가 없는 응답, 잘못된 Base64, 잘린 이미지 파일, 중간 사고 이미지를 포함한 합성 응답으로 오프라인 검증했습니다. 실제 API를 호출한 속도·성공률 측정 결과는 아닙니다.

## 타임아웃 뒤 즉시 재호출하면 비용이 겹칠 수 있습니다

네트워크 연결이 끊겼다고 서버의 생성 작업까지 취소됐다고 볼 수는 없습니다. 재전송 전에 요청 시각, 모델, 응답 헤더의 식별자, 공급자 콘솔의 호출 기록을 맞춰 보세요. 별도의 비동기 API를 사용했다면 작업 ID로 상태를 확인합니다. 위 동기식 `generateContent` 예제가 언제나 작업 ID를 반환한다는 뜻은 아닙니다.

| 관찰한 결과 | 다음 조치 | 완료·과금 판단 |
| --- | --- | --- |
| HTTP 200, 텍스트만 있음 | 원본 응답과 종료 사유 확인, 이미지 생성 지시·입력 수정 | 이미지 완료 아님. 성공 호출로 과금될 수 있음 |
| 작업 ID만 받음 | 해당 비동기 API의 작업 상태 조회 | 접수됐다는 뜻이며 이미지 저장 완료와 다름 |
| Base64 오류 또는 파일 디코딩 실패 | 원본 JSON 보존, 응답 손상 여부 확인 | 사용 가능한 이미지 수에 포함하지 않음 |
| 클라이언트 타임아웃 | 호출 기록·주문 상태 또는 작업 상태 먼저 확인 | 처리·과금 여부가 불명확하므로 즉시 중복 전송하지 않음 |
| HTTP 429 | 제한 범위 확인, 대기 후 동시 요청 수 조절 | Google은 키가 아닌 프로젝트 기준 제한 |
| HTTP 5xx | 장애 범위와 기존 요청 상태 확인 후 제한된 재시도 | 오류 코드만으로 자동 환불을 확정하지 않음 |

재시도 횟수에는 상한을 두고 대기 시간을 늘려 가세요. 같은 인증 오류나 같은 잘못된 파라미터를 수정 없이 반복하는 것은 복구가 아닙니다. Google의 할당량은 프로젝트 단위이므로 같은 프로젝트의 API 키를 여러 개 만드는 것으로 해결되지 않습니다. 실제 제한은 AI Studio에서 확인하고, 상향 조건이 문제라면 [Nano Banana Pro API 할당량 늘리기](https://blog.laozhang.ai/ko/posts/increase-nano-banana-pro-api-quota)를 참고하세요. [Google 제한 문서](https://ai.google.dev/gemini-api/docs/rate-limits).

두 공급자를 준비하더라도 같은 Google 상위 서비스를 사용할 수 있어 장애가 함께 발생할 수 있습니다. 전환은 기존 요청의 상태가 확인됐거나 중복 생성 비용을 감수하기로 결정한 뒤 수행하세요. 공급자 수가 두 개라는 사실만으로 가용성이 높아졌다고 결론 내리면 안 됩니다.

## 도입 판단에 필요한 기록은 많지 않습니다

![Google 직접 호출과 LaoZhang의 서비스 조건 및 장애 영향을 구분하는 그림](https://blog.laozhang.ai/posts/ko/cheap-stable-nano-banana-api/img/trust-boundary.webp)

실시간 작업을 평가할 때는 요청 시작부터 파일 저장까지의 시간, 타임아웃 수, 이미지 없는 응답 수, 실제 사용 가능한 이미지 수, 확정 청구액을 남기세요. 모델·해상도·화면비별로 나눠야 1K의 빠른 결과가 4K 지연을 가리지 않습니다. P95를 쓴다면 측정 기간과 대상 요청 수를 밝히고, 완료된 요청만으로 계산한 경우 타임아웃 비율을 별도로 표시합니다.

Google 직접 연결은 Google 프로젝트에서 이용량과 제한을 관리하고 직접 지원을 받아야 하는 팀에 맞습니다. laozhang.ai는 같은 이미지 작업을 건당 요금으로 운영하거나 기존의 여러 모델 호출을 한 서비스에 모으려는 팀이 검토할 수 있습니다. 실제 선택은 위 요청을 자신의 작업 조건에 맞춰 연결하고, **저장된 결과와 확정된 비용**을 함께 비교해 내리세요. 저렴한 표기 단가, 짧은 광고 응답 시간, HTTP 성공률 가운데 하나만으로는 그 판단을 대신할 수 없습니다.
