> ## 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 2.1 API: цена $0.045, генерация и редактирование

> Вызов gemini-nano-banana-2.1 с API-ключом LaoZhang API без аккаунта Google: от 1K до 4K по одной цене, 14 соотношений сторон, 14 референсов и готовый код.

Nano Banana 2.1 — октябрьское обновление Nano Banana 2 от Google: более чёткий текст на изображениях, точнее инфографика и стабильнее результат при многошаговой правке. При этом стоит она дешевле, чем Nano Banana 2.

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

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

Публичные цены на 7 октября 2026 года, проверены 14 октября 2026 года; актуальный список — в разделе [Модели и цены](https://docs.laozhang.ai/ru/models.md). Тестовые вызовы при 1K, 2K и 4K 7 и 14 октября 2026 года были записаны в журнале по \$0.045. Модель приходит по официальному каналу Google, а маршрут с оплатой за вызов берёт одну фиксированную цену, поэтому изображения 2K и 4K дешевле стандартной цены Google (\$0.0504 при 2K и \$0.113 при 4K; см. [сравнение с официальными ценами](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-image.md)).

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

Результат примера генерации ниже: 2K, 16:9. Промпт: Generate an image of a corner cafe after rain at dusk, warm light on the wet pavement, with a neon sign that reads "BANANA CAFE".

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

| Параметр | Значения |
| - | - |
| Размер вывода `imageSize` | `1K` (по умолчанию), `2K`, `4K` — строкой с заглавной K; значения `512` нет |
| Соотношение сторон `aspectRatio` | 14: `1:1`, `1:4`, `1:8`, `2:3`, `3:2`, `3:4`, `4:1`, `4:3`, `4:5`, `5:4`, `8:1`, `9:16`, `16:9`, `21:9`; если не указать, модель выберет сама |
| Референсные изображения | До 14: не больше 10 изображений объектов и 4 изображений персонажей |
| Изображений за запрос | Одно; для нескольких изображений отправьте несколько запросов |
| Рассуждение (thinking) | `minimal`, `medium` (по умолчанию) или `high`, по одной цене |
| Формат вывода `imageOutputOptions` | `image/png` (по умолчанию) или `image/jpeg` с `compressionQuality` для JPEG; WebP нет; только нативные запросы Gemini, см. вопрос о JPEG в разделе «Частые вопросы» |
| Привязка к поиску Google | Веб-поиск и поиск изображений, \$0.014 за поиск |

Чтобы сравнить все пять моделей Nano Banana, откройте [обзор Nano Banana](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-image.md).

## Nano Banana 2.1 или Nano Banana 2?

Обе модели принимают одинаковый запрос и возвращают ответ той же формы, поэтому при переходе меняется только ID модели.

| | Nano Banana 2.1 | Nano Banana 2 |
| - | - | - |
| ID модели | `gemini-nano-banana-2.1` | `gemini-3.1-flash-image` |
| Цена в LaoZhang API | \$0.045 за вызов | \$0.055 за вызов |
| Размеры вывода | `1K`, `2K`, `4K` | `512`, `1K`, `2K`, `4K` |
| Уровни рассуждения | `minimal`, `medium` (по умолчанию), `high` | `minimal` (по умолчанию), `high` |
| Соотношения сторон, референсы, привязка к поиску | Одинаково | Одинаково |

> [card] Новые проекты: Nano Banana 2.1
>
> Меньше цена за вызов при 1K–4K, лучше текст и компоновка.

> [card] [Превью 512px: Nano Banana 2](https://docs.laozhang.ai/ru/api-capabilities/nano-banana2-image.md)
>
> В Nano Banana 2.1 нет размера `512`. Nano Banana 2 остаётся доступной по той же цене, поэтому существующим интеграциям переходить не нужно.

Пример генерации с этой страницы, отправленный на обе модели в 2K и 16:9 14 октября 2026 года:

![Угловое кафе в сумерках после дождя с жёлто-красной неоновой вывеской 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

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

Nano Banana 2, 2K, 16:9: 21 с, \$0.055

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

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

В разделе [Управление токенами](https://api.laozhang.ai/token) создайте ключ в группе `default` и выберите **Режим оплаты** (计费模式) — **«сначала по использованию»** (按量优先, рекомендуется) или **«оплата за вызов»** (按次计费). Ключ с режимом «оплата по использованию» (按量计费) не может вызывать модели с оплатой за вызов, такие как Nano Banana 2.1.

**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`.

Запрос обычно занимает от 15 до 40 секунд, а 4K — дольше. Размеры вывода в пикселях и время одиночных запросов, измеренные 7 и 14 октября 2026 года, при цене \$0.045 во всех случаях:

| `imageSize` | Вывод 1:1 | Вывод 16:9 | Измеренное время |
| - | - | - | - |
| `1K` | 1024×1024 | 1376×768 | 19–21 с |
| `2K` | 2048×2048 | 2752×1536 | 25–30 с |
| `4K` | 4096×4096 | 5504×3072 | 33–50 с |

В примерах таймаут равен 300 секундам; оставьте такой же запас в клиенте и в прокси. Изредка запрос выходит за этот предел, поэтому перед повторной отправкой запроса с таймаутом сверьтесь с [журналом вызовов](https://docs.laozhang.ai/en/faq/call-logs.md).

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

> [tab] cURL
>
> ```bash theme={null}
> curl --fail-with-body --max-time 300 \
>   "https://api.laozhang.ai/v1beta/models/gemini-nano-banana-2.1:generateContent" \
>   -H "Authorization: Bearer $LAOZHANG_API_KEY" \
>   -H "Content-Type: application/json" \
>   -d '{
>     "contents": [{
>       "role": "user",
>       "parts": [{"text": "Generate an image of a corner cafe after rain at dusk, warm light on the wet pavement, with a neon sign that reads \"BANANA CAFE\"."}]
>     }],
>     "generationConfig": {
>       "responseModalities": ["IMAGE"],
>       "imageConfig": {"aspectRatio": "16:9", "imageSize": "2K"}
>     }
>   }' \
>   -o nb21-response.json
>
> save_image nb21-response.json nb21-cafe
> ```

> [tab] Python
>
> Сохраните скрипт как `nano_banana_21.py`. Он генерирует изображение по промпту или редактирует изображения, перечисленные после промпта:
>
> ```python theme={null}
> """Генерация и редактирование изображений через Nano Banana 2.1 (gemini-nano-banana-2.1)."""
> import argparse
> import base64
> import os
> import sys
> from pathlib import Path
>
> import requests
>
> URL = "https://api.laozhang.ai/v1beta/models/gemini-nano-banana-2.1:generateContent"
> RATIOS = ["1:1", "1:4", "1:8", "2:3", "3:2", "3:4", "4:1", "4:3", "4:5", "5:4", "8:1", "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="соотношение сторон; без него модель выберет сама")
> parser.add_argument("--size", default="1K", choices=SIZES)
> parser.add_argument("--thinking", choices=["minimal", "medium", "high"], help="без него — medium по умолчанию")
> parser.add_argument("--out", default="nano-banana-21", 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}})
>
> config = {"responseModalities": ["IMAGE"], "imageConfig": {"imageSize": args.size}}
> if args.ratio:
>     config["imageConfig"]["aspectRatio"] = args.ratio
> if args.thinking:
>     config["thinkingConfig"] = {"thinkingLevel": args.thinking}
>
> response = requests.post(
>     URL,
>     headers={"Authorization": f"Bearer {os.environ['LAOZHANG_API_KEY']}"},
>     json={"contents": [{"role": "user", "parts": parts}], "generationConfig": 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_21.py "Generate an image of a corner cafe after rain at dusk, warm light on the wet pavement, with a neon sign that reads \"BANANA CAFE\"." --ratio 16:9 --size 4K --out nb21-cafe
> ```

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

Если не указать `aspectRatio`, модель сама выберет кадр по промпту. Размеры в пикселях для 1:1 и 16:9 приведены в таблице в разделе «Подготовка к вызову»; для других соотношений смотрите [руководство Google по генерации изображений](https://ai.google.dev/gemini-api/docs/image-generation).

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

Сначала отправьте инструкцию, затем референсные изображения частями `inlineData`, а в промпте ссылайтесь на изображения по порядку («первое изображение», «второе изображение»). Nano Banana 2.1 принимает до 14 референсов: не больше 10 изображений объектов и 4 изображений персонажей.

> [tab] cURL
>
> Этот запрос объединяет два локальных файла. Собирайте тело через `jq`, чтобы большие изображения не превысили лимиты аргументов shell, и следите, чтобы `mimeType` соответствовал файлу:
>
> ```bash theme={null}
> base64 < product.png | tr -d '\n' > product.b64
> base64 < scene.jpg | tr -d '\n' > scene.b64
> jq -n --rawfile product product.b64 --rawfile scene scene.b64 '{
>   contents: [{
>     role: "user",
>     parts: [
>       {text: "Помести изделие с первого изображения на стол со второго изображения. Согласуй освещение со сценой и оставь этикетку изделия читаемой."},
>       {inlineData: {mimeType: "image/png", data: $product}},
>       {inlineData: {mimeType: "image/jpeg", data: $scene}}
>     ]
>   }],
>   generationConfig: {
>     responseModalities: ["IMAGE"],
>     imageConfig: {aspectRatio: "3:2", imageSize: "2K"}
>   }
> }' > nb21-edit-request.json
>
> curl --fail-with-body --max-time 300 \
>   "https://api.laozhang.ai/v1beta/models/gemini-nano-banana-2.1:generateContent" \
>   -H "Authorization: Bearer $LAOZHANG_API_KEY" \
>   -H "Content-Type: application/json" \
>   --data-binary @nb21-edit-request.json \
>   -o nb21-edit-response.json
>
> save_image nb21-edit-response.json nb21-product-scene
> ```

> [tab] Python
>
> Используйте `nano_banana_21.py` из раздела «Генерация изображения» и перечислите файлы после промпта:
>
> ```bash theme={null}
> # Правка одного изображения
> python nano_banana_21.py "Преврати эту сцену в снежное утро. Сохрани здание, текст вывески и композицию." nb21-cafe.jpg --ratio 16:9 --size 2K --out nb21-snow
>
> # Объединение трёх референсов: изделие, сцена и третье изображение для стиля
> python nano_banana_21.py "Помести изделие с первого изображения на стол со второго изображения, в стиле третьего изображения." product.png scene.jpg style.jpg --ratio 3:2 --size 2K --out nb21-composite
> ```

Напишите, что должно остаться без изменений, а для точного контроля описывайте одно изменение за запрос. Чтобы сохранить внешность людей в серии, передавайте их фотографии как референсы персонажей (до 4).

### Передача большого изображения по URL

Весь запрос должен занимать меньше 20 МБ. Если референс крупный или уже лежит на CDN, передайте его URL частью `fileData`, не скачивая и не кодируя:

```bash theme={null}
curl --fail-with-body --max-time 300 \
  "https://api.laozhang.ai/v1beta/models/gemini-nano-banana-2.1:generateContent" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [
        {"text": "Преврати эту фотографию в чёрно-белый карандашный набросок. Сохрани человека и композицию."},
        {"fileData": {"mimeType": "image/jpeg", "fileUri": "https://cdn.example.com/your-photo.jpg"}}
      ]
    }],
    "generationConfig": {
      "responseModalities": ["IMAGE"],
      "imageConfig": {"aspectRatio": "4:3", "imageSize": "2K"}
    }
  }' \
  -o nb21-url-edit-response.json

save_image nb21-url-edit-response.json nb21-url-edit
```

* Замените `https://cdn.example.com/your-photo.jpg` на URL своего изображения и укажите `mimeType`, соответствующий его формату.
* Части `fileData` и `inlineData` могут находиться в одном массиве `parts`; они считаются первым, вторым и следующими референсами по порядку.
* Изображение скачивает сервер, поэтому URL должен открываться без входа в систему; полные условия описаны в [обзоре Nano Banana](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-image.md) в разделе о больших изображениях и URL.

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

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

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

save_image nb21-grounded-response.json nb21-tallest-building
jq '.candidates[0].groundingMetadata | {webSearchQueries, imageSearchQueries}' nb21-grounded-response.json
```

* `searchTypes` должен быть объектом. Без него инструмент использует только веб-поиск; один `imageSearch` включает только поиск изображений.
* Выполнять ли поиск и какого типа, решает модель. Выполненные запросы отображаются в `groundingMetadata`.
* Поиск изображений пока не может использовать реальные изображения людей в качестве референсов.
* Если вы показываете результаты с привязкой конечным пользователям, показывайте поисковые подсказки так, как требует [руководство Google по привязке](https://ai.google.dev/gemini-api/docs/google-search).
* Каждый поиск добавляет \$0.014 к вызову за \$0.045, поэтому запрос с 2 поисками стоит \$0.073. Число поисков видно в журнале вызовов; см. [правила оплаты Nano Banana](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-image.md).

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

Если приложение уже использует OpenAI SDK, укажите `base_url` равным `https://api.laozhang.ai/v1`, а `model` — `gemini-nano-banana-2.1`. На этом маршруте нет настроек соотношения сторон, размера и формата: он возвращает PNG 1K, кадр которого модель выбирает по промпту, часто 16:9. Для фиксированного соотношения, 2K и 4K или JPEG используйте нативный маршрут Gemini.

Изображение приходит как data URL в Base64 внутри `message.content`. Сохраните скрипт как `nano_banana_21_chat.py`:

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

from openai import OpenAI

MIME_TYPES = {".png": "image/png", ".jpg": "image/jpeg", ".jpeg": "image/jpeg", ".webp": "image/webp"}
EXTENSIONS = {"png": "png", "jpeg": "jpg", "jpg": "jpg", "webp": "webp"}

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

content = args.prompt
if args.images:  # правка: отправляем инструкцию и локальные изображения как data URL
    content = [{"type": "text", "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}")
        encoded = base64.b64encode(Path(path).read_bytes()).decode("ascii")
        content.append({"type": "image_url", "image_url": {"url": f"data:{mime};base64,{encoded}"}})

# 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-nano-banana-2.1",
    messages=[{"role": "user", "content": content}],
)
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_21_chat.py "Сгенерируй изображение: латте на деревянном столе, рисунок на пене в виде кота, вид сверху." --out nb21-chat-latte
python nano_banana_21_chat.py "Преврати эту фотографию в масляную картину в стиле Ван Гога. Сохрани композицию." photo.jpg --out nb21-chat-painting
```

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

Неверные параметры возвращают HTTP 400 и не тарифицируются. `aspectRatio` вне списка из 14 соотношений, например `7:3`, возвращает 400, возможно с пустым текстом ошибки; сверьте соотношение с таблицей параметров выше. Слишком большое тело запроса возвращает 413; передавайте большие изображения [по URL](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-image.md).

> [!WARNING]
>
> **`imageSize`, равный `512`, не отклоняется: приходит изображение 1K, и вызов тарифицируется.** На 8 октября 2026 года вызов стоит \$0.045, поэтому передавайте `1K` или используйте Nano Banana 2 для 512px.

* Каждый вызов стоит \$0.045 независимо от размера вывода, уровня рассуждения, числа референсов и от того, генерация это или правка.
* Привязка к поиску Google добавляет \$0.014 за поиск.
* Запрос может вернуть HTTP 200 без изображения, например если промпт не просит изображение или проверка безопасности блокирует результат. Он тарифицируется как один вызов. Проверьте `finishReason`, затем измените промпт или референсы, прежде чем отправлять снова; см. [обзор Nano Banana](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-image.md), раздел о пустых ответах.
* Ответы 429 и 5xx повторяйте с нарастающей задержкой, а перед повторной отправкой запроса с таймаутом сверьтесь с [журналом вызовов](https://docs.laozhang.ai/en/faq/call-logs.md).

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

### Что поменять при переходе с Nano Banana 2?

Замените ID модели `gemini-3.1-flash-image` на `gemini-nano-banana-2.1`; запрос и ответ остаются прежними. Затем проверьте два момента:

* Запросам с `"imageSize": "512"` нужно `1K`, либо им стоит остаться на Nano Banana 2. Nano Banana 2.1 возвращает для них изображение 1K и тарифицирует вызов.
* Без `thinkingLevel` Nano Banana 2.1 рассуждает на уровне `medium`, а Nano Banana 2 по умолчанию использует `minimal`. Если нужно более быстрое поведение, явно задайте `minimal`.

### Как изменить уровень рассуждения и влияет ли он на цену?

В нативном маршруте Gemini задайте `generationConfig.thinkingConfig.thinkingLevel` равным `minimal`, `medium` или `high`. Высокие уровни тратят больше усилий на компоновку и текст и работают дольше.

```json theme={null}
"thinkingConfig": {"thinkingLevel": "high"}
```

Цена остаётся \$0.045 за вызов на всех трёх уровнях; сам Google тарифицирует токены рассуждения дополнительно. Если вы ещё передадите `"includeThoughts": true`, в ответ добавятся текст рассуждений и черновые изображения с пометкой `"thought": true`. Функция `save_image` и Python-скрипт их пропускают.

### Дороже ли 4K, чем 1K?

Нет. Каждый вызов стоит \$0.045: наши тестовые вызовы при 1K, 2K и 4K 7 и 14 октября 2026 года были записаны в журнале по этой сумме. Google тарифицирует по выходным токенам, примерно \$0.113 за изображение 4K, согласно его [странице цен](https://ai.google.dev/gemini-api/docs/pricing). Если нужны только изображения 1K, [Nano Banana 2 Lite](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-2-lite-api.md) дешевле за вызов.

### Nano Banana 2.1 или Nano Banana Pro?

Начните с Nano Banana 2.1 за \$0.045 за вызов. Переходите на [Nano Banana Pro](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-pro-image.md) (`gemini-3-pro-image`, \$0.09 за вызов), когда изображение зависит от знаний о мире, многоязычного текста или точных деталей бренда, либо когда правке нужны референсы стиля и до 5 референсов персонажей. Обе модели принимают одинаковый запрос, поэтому перед выбором проверьте собственные промпты на обеих.

Один и тот же промпт в 2K и 16:9 14 октября 2026 года занял 25 с на Nano Banana 2.1 и 69 с на Nano Banana Pro:

![Угловое кафе в сумерках после дождя с жёлто-красной неоновой вывеской 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

![Угловое кирпичное кафе в сумерках после дождя с неоновой вывеской 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

### Нужен ли аккаунт Google или ключ AI Studio?

Нет. Достаточно API-ключа LaoZhang API в группе `default`; запросы идут на `https://api.laozhang.ai` в нативном формате Gemini или в OpenAI-совместимом формате, описанных на этой странице.

### Тарифицируется ли запрос при ошибке или без изображения?

Любой ответ апстрима не 200 (400 при неверных параметрах, 429 или 5xx до генерации) не тарифицируется. HTTP 200 тарифицируется как один вызов, с изображением или без; см. раздел «Ошибки и оплата» и [правила оплаты и ошибок](https://docs.laozhang.ai/ru/api-capabilities/image-billing-and-failures.md).

### Можно ли получить вывод в JPEG?

Да. В нативном маршруте Gemini добавьте `imageOutputOptions` в `generationConfig.imageConfig`:

```json theme={null}
"imageConfig": {
  "aspectRatio": "1:1",
  "imageSize": "1K",
  "imageOutputOptions": {"mimeType": "image/jpeg", "compressionQuality": 80}
}
```

* `mimeType` принимает `image/png` (по умолчанию) и `image/jpeg`. `image/webp` возвращает 400 и не тарифицируется.
* `compressionQuality` действует только для JPEG и принимает значения от 0 до 100; чем меньше значение, тем меньше файл.
* Значение `inlineData.mimeType` в ответе меняется на `image/jpeg`. Одно и то же квадратное изображение 1K занимает около 1,1 МБ в PNG и 40–60 КБ в JPEG, по той же цене.
* OpenAI-совместимый маршрут не позволяет задать формат и всегда возвращает PNG.

### Почему OpenAI-совместимый маршрут возвращает альбомные изображения?

Этот маршрут не может передать соотношение сторон, поэтому модель выбирает кадр по промпту, часто 16:9. Для квадратного или портретного вывода используйте нативный маршрут Gemini и задайте `aspectRatio`.

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

* [Обзор 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
* [Nano Banana 2 Lite](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-2-lite-api.md) — недорогие изображения 1K
* [Nano Banana Pro](https://docs.laozhang.ai/ru/api-capabilities/nano-banana-pro-image.md) — сложные макеты и ассеты, критичные для бренда
* [Протокол Gemini](https://docs.laozhang.ai/ru/api-reference/gemini.md) — структура нативных запросов и настройка SDK
* [Google: Gemini Nano Banana 2.1](https://ai.google.dev/gemini-api/docs/models/gemini-nano-banana-2.1) — официальные возможности и ограничения
* [Google: Nano Banana image generation](https://ai.google.dev/gemini-api/docs/image-generation) — размеры, соотношения сторон и лимиты референсов
* [Журнал вызовов](https://docs.laozhang.ai/en/faq/call-logs.md) — статус и списание по запросу


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