> ## Documentation Index
> Fetch the complete documentation index at: https://docs.laozhang.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Nano Banana Pro API: генерация изображений, цена $0.09

> Генерация изображений через gemini-3-pro-image с API-ключом LaoZhang API без аккаунта Google: 10 соотношений сторон, 14 референсов, поиск Google и рабочий код.

Nano Banana Pro — модель Google для самых сложных визуальных задач: у неё самые широкие знания о мире в линейке, продвинутая локализация, единый стиль бренда и точный творческий контроль.

В LaoZhang API она стоит \$0.09 за изображение при 1K, 2K и 4K, поэтому 4K обходится меньше чем в 40% от стандартных \$0.24 у Google. Лимитов параллельности и частоты запросов нет, а запросы автоматически переключаются между несколькими официальными маршрутами Google.

## Что поддерживает Nano Banana Pro

| Параметр | Значение |
| - | - |
| ID модели | `gemini-3-pro-image` (стабильная), Google Gemini 3 Pro Image |
| Цена | **\$0.09 за вызов** при 1K, 2K и 4K, для генерации и редактирования |
| Аккаунт | Аккаунт Google не нужен, только API-ключ LaoZhang API |
| Эндпоинты | Нативный `generateContent` позволяет задать соотношение сторон и размер; в OpenAI-совместимом chat completions этих настроек нет |
| Редактирование | Изменение существующих изображений и объединение референсов описано в [руководстве по редактированию Nano Banana Pro](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-pro-image-edit.md) |
| Оплата | Каждый ответ HTTP 200 тарифицируется как один вызов, даже без изображения; ответы не 200 (400, 429, 5xx) не тарифицируются. См. [Оплата и ошибки](https://docs.laozhang.ai/ru/api-capabilities/image-billing-and-failures.md) |

Публичные цены на 24 сентября 2026 года, проверены 10 октября 2026 года; актуальный список — в разделе [Модели и цены](https://docs.laozhang.ai/ru/models.md). Модель приходит по официальному каналу Google, а маршрут с оплатой за вызов берёт одну фиксированную цену, которая при любом размере ниже стандартной цены Google (\$0.134 при 1K и 2K, \$0.24 при 4K).

![Футуристический городской горизонт на закате с рекламным щитом NEO TOKYO, сгенерировано Nano Banana Pro](https://mintcdn.com/laozhangai-edd05f2c/YuJHjB7ivlJQODe0/images/samples/pro-en-generate.jpg?fit=max\&auto=format\&n=YuJHjB7ivlJQODe0\&q=85\&s=e4562d316f14e9d20a749e36a4b5e742)

Результат примера генерации ниже: 4K, 16:9 (показано уменьшенным). Промпт: Generate an image of a futuristic city skyline at sunset, highly detailed, with the words "NEO TOKYO" in a clean sans-serif font on a billboard.

### Параметры и ограничения

| Параметр | Значения |
| - | - |
| Размер вывода `imageSize` | `1K` (по умолчанию), `2K`, `4K` |
| Соотношение сторон `aspectRatio` | 10, в нативном маршруте Gemini: `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` |
| Референсные изображения | До 14, разделённых на референсы объектов, персонажей и стиля, как описано в [руководстве по редактированию](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-pro-image-edit.md) |
| Изображений за запрос | Одно; для нескольких изображений отправьте несколько запросов |
| Рассуждение (thinking) | Всегда включено: Pro обдумывает промпт перед рендером, и этот этап нельзя отключить |
| Привязка к поиску Google | Веб-поиск, \$0.014 за поиск |
| Параллельность и лимиты | Нет лимита RPM (запросов в минуту), IPM (изображений в минуту) и параллельности на ключ; `429` возникает из-за ёмкости апстрима, см. [Параллельность и 429](https://docs.laozhang.ai/ru/faq/api-concurrency.md) |

Рассуждение и привязка к поиску не уникальны для Pro: [Nano Banana 2](https://docs.laozhang.ai/ru/api-capabilities/nano-banana2-image.md) поддерживает и то и другое, добавляет привязку к поиску изображений и вывод 512px, а за вызов стоит дешевле.

Google отключил `gemini-3-pro-image-preview` 25 июня 2026 года, как указано на [странице устаревших моделей](https://ai.google.dev/gemini-api/docs/deprecations). В LaoZhang API ID с `-preview` перенаправляются на соответствующие стабильные ID; используйте стабильный ID `gemini-3-pro-image` напрямую. Сравнить Pro с другими моделями Nano Banana можно в [обзоре Nano Banana](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-image.md).

## Подготовка к вызову

**1. Создайте API-ключ**

В разделе [Управление токенами](https://api.laozhang.ai/token) откройте диалог создания токена (创建令牌), в поле **Режим оплаты** (计费模式) выберите **«сначала по использованию»** (按量优先, рекомендуется) или **«оплата за вызов»** (按次计费) и нажмите **Создать** (创建). У Nano Banana Pro есть только цена за вызов, поэтому ключ с режимом «оплата по использованию» (按量计费) её вызвать не может; когда запрос тарифицируется, описано в [правилах оплаты](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-image.md).

![Диалог создания токена в консоли LaoZhang API с режимом оплаты «оплата за вызов» (按次计费)](https://mintcdn.com/laozhangai-edd05f2c/_loZ0Jy0ZI__xJ9z/images/token-create-per-request.png?fit=max\&auto=format\&n=_loZ0Jy0ZI__xJ9z\&q=85\&s=1fdceb804bb3ad50f83a21ec65b4d807)

**2. Задайте ключ и установите зависимости**

```bash theme={null}
export LAOZHANG_API_KEY="sk-..."  # замените на свой API-ключ LaoZhang API
python -m pip install openai requests
```

**3. Добавьте функцию сохранения для cURL**

Для примеров с cURL нужен `jq`. Определите эту shell-функцию: она сохраняет последнее изображение из нативного ответа Gemini (если вместе с результатом пришли промежуточные изображения, финальное — последнее) с расширением, которое соответствует `mimeType`:

```bash theme={null}
save_image() {
  local image='[.candidates[]?.content.parts[]? | select(.inlineData and (.thought | not))][-1].inlineData'
  local ext
  case "$(jq -r "$image.mimeType" "$1")" in
    image/png) ext=png ;;
    image/jpeg) ext=jpg ;;
    image/webp) ext=webp ;;
    *) jq '{error, promptFeedback, finishReasons: [.candidates[]?.finishReason]}' "$1"; return 1 ;;
  esac
  jq -r "$image.data" "$1" | base64 --decode > "$2.$ext" && echo "Сохранено: $2.$ext"
}
```

Если в ответе нет изображения, функция выводит поля `error`, `promptFeedback` и `finishReason`.

## Генерация изображения

Этот запрос создаёт изображение 4K с соотношением 16:9 и сохраняет его:

> [tab] cURL
>
> ```bash theme={null}
> curl --fail-with-body --max-time 300 \
>   "https://api.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent" \
>   -H "Authorization: Bearer $LAOZHANG_API_KEY" \
>   -H "Content-Type: application/json" \
>   -d '{
>     "contents": [{
>       "role": "user",
>       "parts": [{"text": "Generate an image of a futuristic city skyline at sunset, highly detailed, with the words \"NEO TOKYO\" in a clean sans-serif font on a billboard."}]
>     }],
>     "generationConfig": {
>       "responseModalities": ["IMAGE"],
>       "imageConfig": {"aspectRatio": "16:9", "imageSize": "4K"}
>     }
>   }' \
>   -o pro-response.json
>
> save_image pro-response.json pro-skyline
> ```

> [tab] Python
>
> Сохраните скрипт как `nano_banana_pro.py`. Он генерирует изображение по промпту или редактирует изображения, перечисленные после промпта:
>
> ```python theme={null}
> """Генерация и редактирование изображений через Nano Banana Pro (gemini-3-pro-image)."""
> import argparse
> import base64
> import os
> import sys
> from pathlib import Path
>
> import requests
>
> URL = "https://api.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent"
> RATIOS = ["1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9"]
> SIZES = ["1K", "2K", "4K"]
> MIME_TYPES = {".png": "image/png", ".jpg": "image/jpeg", ".jpeg": "image/jpeg", ".webp": "image/webp"}
> EXTENSIONS = {"image/png": "png", "image/jpeg": "jpg", "image/webp": "webp"}
>
> parser = argparse.ArgumentParser(description="Сгенерировать изображение или отредактировать переданные.")
> parser.add_argument("prompt")
> parser.add_argument("images", nargs="*", help="до 14 референсных изображений PNG, JPEG или WebP")
> parser.add_argument("--ratio", choices=RATIOS, help="соотношение сторон; без него 1:1 или форма входного изображения")
> parser.add_argument("--size", default="1K", choices=SIZES)
> parser.add_argument("--out", default="nano-banana-pro", help="имя выходного файла без расширения")
> args = parser.parse_args()
> if len(args.images) > 14:
>     sys.exit("Передайте не больше 14 референсных изображений.")
>
> parts = [{"text": args.prompt}]
> for path in args.images:
>     mime = MIME_TYPES.get(Path(path).suffix.lower())
>     if mime is None:
>         sys.exit(f"Нужен файл PNG, JPEG или WebP: {path}")
>     data = base64.b64encode(Path(path).read_bytes()).decode("ascii")
>     parts.append({"inlineData": {"mimeType": mime, "data": data}})
>
> image_config = {"imageSize": args.size}
> if args.ratio:
>     image_config["aspectRatio"] = args.ratio
>
> response = requests.post(
>     URL,
>     headers={"Authorization": f"Bearer {os.environ['LAOZHANG_API_KEY']}"},
>     json={
>         "contents": [{"role": "user", "parts": parts}],
>         "generationConfig": {"responseModalities": ["IMAGE"], "imageConfig": image_config},
>     },
>     timeout=300,
> )
> if response.status_code != 200:
>     sys.exit(f"HTTP {response.status_code}: {response.text[:500]}")
>
> result = response.json()
> images = [
>     part["inlineData"]
>     for candidate in result.get("candidates") or []
>     for part in (candidate.get("content") or {}).get("parts") or []
>     if "inlineData" in part and not part.get("thought")
> ]
> if not images:
>     reasons = [candidate.get("finishReason") for candidate in result.get("candidates") or []]
>     sys.exit(f"Изображение не получено: {result.get('promptFeedback') or reasons}")
> for number, image in enumerate(images, start=1):
>     suffix = "" if number == 1 else f"-{number}"
>     output = Path(f"{args.out}{suffix}.{EXTENSIONS.get(image['mimeType'], 'bin')}")
>     output.write_bytes(base64.b64decode(image["data"]))
>     print("Сохранено:", output)
> ```
>
> Сгенерируйте то же изображение 4K, 16:9:
>
> ```bash theme={null}
> python nano_banana_pro.py "Generate an image of a futuristic city skyline at sunset, highly detailed, with the words \"NEO TOKYO\" in a clean sans-serif font on a billboard." --ratio 16:9 --size 4K --out pro-skyline
> ```

Изображение приходит в Base64 в `candidates[0].content.parts[].inlineData.data`, а формат указывает `mimeType`. Оба примера декодируют его и сохраняют файл PNG, JPEG или WebP в соответствующем формате.

Изображение 4K создаётся дольше, чем 1K, поэтому задайте щедрый клиентский таймаут; в примерах он равен 300 секундам.

### Размеры вывода

`imageSize` принимает `1K` (по умолчанию), `2K` и `4K`, причём K пишется заглавной. Для Nano Banana Pro Google публикует такие размеры в пикселях:

| Соотношение сторон | 1K | 2K | 4K |
| - | - | - | - |
| 1:1 | 1024×1024 | 2048×2048 | 4096×4096 |
| 2:3 | 848×1264 | 1696×2528 | 3392×5056 |
| 3:2 | 1264×848 | 2528×1696 | 5056×3392 |
| 3:4 | 896×1200 | 1792×2400 | 3584×4800 |
| 4:3 | 1200×896 | 2400×1792 | 4800×3584 |
| 4:5 | 928×1152 | 1856×2304 | 3712×4608 |
| 5:4 | 1152×928 | 2304×1856 | 4608×3712 |
| 9:16 | 768×1376 | 1536×2752 | 3072×5504 |
| 16:9 | 1376×768 | 2752×1536 | 5504×3072 |
| 21:9 | 1584×672 | 3168×1344 | 6336×2688 |

## Редактирование изображения

`nano_banana_pro.py` умеет и редактировать: перечислите файлы изображений после промпта, и скрипт отправит каждый из них частью `inlineData` после инструкции.

```bash theme={null}
python nano_banana_pro.py "Надень на кота маленькую синюю шляпу волшебника. Поза, шерсть и фон должны остаться без изменений." cat.jpg --size 2K --out pro-cat-hat
```

Без `--ratio` в запросе не задаётся соотношение сторон, а по умолчанию Google берёт форму входного изображения. Редактирование через cURL, объединение до 14 референсов, передачу изображений по публичному URL и промпты для правок описывает [руководство по редактированию Nano Banana Pro](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-pro-image-edit.md).

## Привязка изображения к поиску Google

Добавьте инструмент `googleSearch`, если изображение должно опираться на актуальные сведения, например прогноз погоды или недавние события. Разрешите `TEXT` в `responseModalities`, чтобы вместе с изображением вернулся и текст, который напишет модель:

```bash theme={null}
curl --fail-with-body --max-time 300 \
  "https://api.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"role": "user", "parts": [{"text": "Визуализируй текущий прогноз погоды в Сан-Франциско на пять дней в виде аккуратной современной погодной диаграммы."}]}],
    "tools": [{"googleSearch": {}}],
    "generationConfig": {
      "responseModalities": ["TEXT", "IMAGE"],
      "imageConfig": {"aspectRatio": "16:9"}
    }
  }' \
  -o pro-grounded-response.json

save_image pro-grounded-response.json pro-weather-chart
jq -r '.candidates[0].content.parts[] | select(.text) | .text' pro-grounded-response.json
```

Источники привязки находятся в `candidates[0].groundingMetadata`. Тот же запрос работает на Nano Banana 2.1 и Nano Banana 2 с их ID моделей; Nano Banana 2 Lite привязку не поддерживает.

Если вы показываете результаты с привязкой конечным пользователям, показывайте поисковые подсказки так, как требует [руководство Google по привязке](https://ai.google.dev/gemini-api/docs/google-search). Привязка стоит \$0.014 за поиск сверх цены за вызов. Сколько поисков выполнить, решает модель, а число видно в журнале вызовов, как описано в [правилах оплаты Nano Banana](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-image.md).

## OpenAI-совместимый маршрут

Если приложение уже использует OpenAI SDK, вызывайте Pro через chat completions. SDK отправляет ключ в заголовке `Authorization: Bearer`. На этом маршруте нет настроек соотношения сторон и размера, поэтому по текстовому промпту приходит изображение 1:1 в 1K. Изображение возвращается как data URL в Base64 внутри `message.content`. Сохраните скрипт как `nano_banana_pro_chat.py`:

```python theme={null}
"""Генерация изображения через Nano Banana Pro по OpenAI-совместимому маршруту."""
import argparse
import base64
import os
import re
import sys
from pathlib import Path

from openai import OpenAI

EXTENSIONS = {"png": "png", "jpeg": "jpg", "jpg": "jpg", "webp": "webp"}

parser = argparse.ArgumentParser(description="Сгенерировать изображение по текстовому промпту.")
parser.add_argument("prompt")
parser.add_argument("--out", default="nano-banana-pro-chat", help="имя выходного файла без расширения")
args = parser.parse_args()

# max_retries=0: автоповтор после таймаута мог бы сгенерировать и оплатить изображение дважды
client = OpenAI(api_key=os.environ["LAOZHANG_API_KEY"], base_url="https://api.laozhang.ai/v1", timeout=300, max_retries=0)
reply = client.chat.completions.create(
    model="gemini-3-pro-image",
    messages=[{"role": "user", "content": args.prompt}],
)
text = reply.choices[0].message.content or ""

found = re.findall(r"data:image/(png|jpe?g|webp);base64,([A-Za-z0-9+/=]+)", text)
if not found:
    sys.exit(f"Изображение не получено: {text[:300]}")
for number, (kind, encoded) in enumerate(found, start=1):
    suffix = "" if number == 1 else f"-{number}"
    output = Path(f"{args.out}{suffix}.{EXTENSIONS[kind]}")
    output.write_bytes(base64.b64decode(encoded + "=" * (-len(encoded) % 4)))
    print("Сохранено:", output)
```

Сгенерируйте постер:

```bash theme={null}
python nano_banana_pro_chat.py "Сгенерируй изображение: минималистичный постер джазового фестиваля с заголовком \"BLUE NOTES\"." --out pro-chat-poster
```

Как отправлять изображения для редактирования по этому маршруту, описано в [разделе об OpenAI-совместимом маршруте в руководстве по редактированию](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-pro-image-edit.md).

## Советы по промптам

* Описывайте объект, обстановку, стиль, освещение и ракурс полными предложениями, а не списком ключевых слов.
* Для текста внутри изображения берите точные слова в кавычки и называйте стиль шрифта.
* Описывайте, что вы хотите, а не чего не хотите: «пустая улица» работает лучше, чем «без машин».
* Начинайте со слов «Сгенерируй изображение…», чтобы модель не ответила одним текстом.

## Ошибки и оплата

Передавайте значения, которые принимает Pro:

| Поле | Принимается | Pro не принимает |
| - | - | - |
| `aspectRatio` | Соотношение из списка из 10 | `1:4`, `4:1`, `1:8`, `8:1` |
| `imageSize` | `1K`, `2K` или `4K` | `512` |

* Google отклоняет размеры со строчной буквой, например `4k`.
* Запрос может вернуть HTTP 200 без изображения, например если промпт не просит изображение или проверка безопасности блокирует результат. Это тарифицируется как один вызов. Проверьте `finishReason` (и `promptFeedback`, если он есть), затем измените промпт или референсы, прежде чем отправлять снова; см. [обзор Nano Banana](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-image.md), раздел о пустых ответах.
* HTTP 401 означает неверный ключ или заголовок `Authorization: Bearer`. Ответы 429 и 5xx повторяйте с нарастающей задержкой, а после таймаута сверьтесь с журналом вызовов, прежде чем отправлять запрос снова.

## Частые вопросы

### Сколько стоит Nano Banana Pro 4K по сравнению с Google?

LaoZhang API берёт \$0.09 за изображение при 1K, 2K и 4K, одинаково за генерацию и за редактирование. Стандартная цена Google — \$0.134 при 1K и 2K и \$0.24 при 4K, поэтому изображение 4K здесь обходится примерно на 62% дешевле.

Актуальные цены смотрите в разделе [Модели и цены](https://docs.laozhang.ai/ru/models.md). Ответы не 200 от апстрима не тарифицируются; HTTP 200 без изображения тарифицируется как один вызов, см. [Оплата и ошибки](https://docs.laozhang.ai/ru/api-capabilities/image-billing-and-failures.md).

### Будет ли ограничение при пакетной генерации?

Нет. У одного ключа нет лимита RPM (запросов в минуту), IPM (изображений в минуту) и параллельности, а запросы переключаются между несколькими официальными маршрутами Google. Редкий `429` связан с ёмкостью апстрима, не тарифицируется, и запрос можно повторить после короткой паузы; см. [Параллельность и 429](https://docs.laozhang.ai/ru/faq/api-concurrency.md).

### Выбрать Pro или Nano Banana 2?

Для большинства задач начните с Nano Banana 2.1 (\$0.045 за вызов) или Nano Banana 2: они принимают те же запросы, дешевле за вызов, добавляют ещё четыре соотношения сторон и привязку к поиску изображений, поддерживают до 10 референсов объектов и 4 референсов персонажей. Nano Banana 2 также умеет выводить 512px.

Берите Pro, когда результат зависит от знаний о мире, локализованного текста или точных деталей бренда, а также когда правке нужны референсы стиля (до 3) или до 5 референсов персонажей. Прежде чем переводить нагрузку на другую модель, сравните обе на собственных промптах.

Промпт генерации из руководства по Nano Banana 2.1, отправленный на обе модели в 2K и 16:9 14 октября 2026 года: Pro ответил за 69 с, Nano Banana 2.1 — за 25 с.

![Угловое кирпичное кафе в сумерках после дождя с неоновой вывеской BANANA CAFE и булыжной мостовой, сгенерировано Nano Banana Pro](https://mintcdn.com/laozhangai-edd05f2c/nO-3-m3eSAbAbdWF/images/samples/nb21-cmp-en-pro-2k.jpg?fit=max\&auto=format\&n=nO-3-m3eSAbAbdWF\&q=85\&s=3fbd606d2b3817f65334e1556ad00f2d)

Nano Banana Pro, 2K, 16:9: 69 с, \$0.09

![Угловое кафе в сумерках после дождя с жёлто-красной неоновой вывеской BANANA CAFE, сгенерировано Nano Banana 2.1](https://mintcdn.com/laozhangai-edd05f2c/nO-3-m3eSAbAbdWF/images/samples/nb21-cmp-en-nb21-2k.jpg?fit=max\&auto=format\&n=nO-3-m3eSAbAbdWF\&q=85\&s=d6d3ef2794d75a7e780d83552f5f9b62)

Nano Banana 2.1, 2K, 16:9: 25 с, \$0.045

### Можно ли отключить рассуждение и влияет ли оно на цену?

Нельзя. По данным Google, модели изображений Gemini 3 рассуждают по умолчанию, и через API это не отключить; параметр `thinkingLevel` действует только в Nano Banana 2.1, 2 и 2 Lite и на Pro не влияет.

Во время рассуждения модель создаёт промежуточные изображения, чтобы проверить композицию, и они могут прийти вместе с результатом; финальное — последнее. Как с ними обращаться, описано в [обзоре Nano Banana](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-image.md) в вопросе «Может ли один запрос вернуть несколько изображений?».

Pro тарифицируется за вызов, поэтому объём рассуждения цену не меняет.

### Как получить точный текст на изображении?

Google рекомендует сначала сгенерировать текст, а затем попросить изображение, которое его содержит. Берите точные слова в кавычки и называйте положение и стиль шрифта, как в советах по промптам выше. Если какое-то слово всё равно получилось неверно, отправьте результат как входное изображение и попросите изменить только этот текст.

## Связанные материалы и источники

* [Редактирование в Nano Banana Pro](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-pro-image-edit.md) — правка изображений и объединение до 14 референсов
* [Обзор Nano Banana](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-image.md) — сравнение пяти моделей, двух протоколов и оплаты
* [Nano Banana 2](https://docs.laozhang.ai/ru/api-capabilities/nano-banana2-image.md) — вывод от 512px до 4K, 14 соотношений сторон и привязка к поиску изображений
* [Nano Banana 2 Lite](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-2-lite-api.md) — недорогие изображения 1K
* [Google: Nano Banana image generation](https://ai.google.dev/gemini-api/docs/image-generation) — размеры Gemini 3 Pro Image, соотношения сторон, рассуждение и советы по тексту
* [Google: справочник generateContent](https://ai.google.dev/api/generate-content) — поля `imageConfig`
* [Google: устаревание моделей Gemini API](https://ai.google.dev/gemini-api/docs/deprecations) — сроки отключения моделей у вендора
* [Журнал вызовов](https://docs.laozhang.ai/en/faq/call-logs.md) — статус и списание по запросу


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.