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

# Серия Nano Banana

> Модели Google для генерации изображений на WideRouter: какой идентификатор работает в каком интерфейсе, все поддерживаемые ими параметры и измеренная задержка.

Nano Banana — название серии Google для этого поколения моделей генерации изображений.
На WideRouter **идентификаторы моделей являются официальными** — псевдонимов, специфичных для платформы, нет, а имена с суффиксом `-preview` не принимаются.

Все модели этой серии используют одинаковый формат запроса, поэтому переключение между ними требует изменить одно слово в `model`.

## Серия: краткий обзор

|                                         | Nano Banana Pro      | Nano Banana 2            | Nano Banana              |
| --------------------------------------- | -------------------- | ------------------------ | ------------------------ |
| **Идентификатор модели**                | `gemini-3-pro-image` | `gemini-3.1-flash-image` | `gemini-2.5-flash-image` |
| Асинхронный API задач                   | да                   | да                       | пока недоступно          |
| Синхронные API                          | да                   | да                       | пока недоступно          |
| Уровни разрешения                       | `1K` `2K` `4K`       | `1K` `2K` `4K`           | —                        |
| Изображений за вызов (`n`)              | 1–4                  | 1–4                      | —                        |
| Эталонные изображения                   | до 14                | до 14                    | —                        |
| Асинхронный режим, 1K, среднее значение | \~29 с               | \~20 с                   | —                        |
| Синхронный полный цикл, 1K              | \~17 с               | \~13 с                   | —                        |

<Warning>
  `gemini-2.5-flash-image` в настоящее время не маршрутизируется ни через один из интерфейсов. Асинхронный
  API отклоняет его при отправке с ошибкой `model_not_supported`; синхронные эндпоинты
  возвращают ошибку конфигурации тарификации. Он указан здесь, чтобы поиск
  официального идентификатора давал ответ, а не приводил к отсутствию информации —
  он будет включён после устранения проблемы на стороне платформы.
</Warning>

По умолчанию выбирайте **Nano Banana 2**: он заметно быстрее при любом разрешении и принимает те же параметры, поэтому интеграцию изменять не потребуется. Переходите на **Nano Banana Pro**, когда дополнительное качество оправдывает примерно на десять секунд больше на изображение.

## Параметры

Всё указывается внутри `input`. Обёртка вокруг него — `model`, `input`,
`callback_url` — описана в [API асинхронных задач](/ru/api/async-tasks).

Эти пять полей образуют полный набор. Любой другой ключ внутри `input` отклоняется
с ошибкой `invalid_params`, поэтому опечатка приводит к явной ошибке, а не игнорируется.

| Поле           | Тип              | Обязательно | Диапазон                                 | Значение по умолчанию                    |
| -------------- | ---------------- | ----------- | ---------------------------------------- | ---------------------------------------- |
| `prompt`       | строка           | да          | 1–32000 байт                             | —                                        |
| `n`            | целое число      | нет         | 1–4                                      | 1                                        |
| `aspect_ratio` | строка           | нет         | см. [соотношения сторон](#aspect-ratios) | собственное значение модели по умолчанию |
| `image_size`   | строка           | нет         | `1K` `2K` `4K`                           | `1K`                                     |
| `images`       | строковый массив | нет         | до 14 элементов                          | отсутствует                              |

<Warning>
  `image_size` чувствителен к регистру: принимается `1K`, а `1k` — нет. На асинхронном API нет
  уровня `512` и формы `1024x1024` со свободным форматом.
</Warning>

## Уровни разрешения

`image_size` масштабирует весь кадр, а не фиксирует один край, поэтому длинная
сторона широкого изображения при `4K` значительно превышает 4096 пикселей. Значения
измерены и идентичны для обеих доступных моделей:

| `image_size` | `1:1`       | `21:9`      | Приблизительное количество пикселей |
| ------------ | ----------- | ----------- | ----------------------------------- |
| `1K`         | 1024 × 1024 | 1584 × 672  | 1 Мп                                |
| `2K`         | 2048 × 2048 | —           | 4 Мп                                |
| `4K`         | 4096 × 4096 | 6336 × 2688 | 17 Мп                               |

Размеры файлов соответствуют этим значениям: примерно 0,4–0,7 МБ при `1K`,
2,4–3,0 МБ при `2K` и 7,5–8,2 МБ при `4K`. Результат всегда
представляет собой JPEG с манифестом content credentials C2PA.

## Соотношения сторон

Принимаются десять значений. Размеры в пикселях при `1K` на `gemini-3-pro-image`:

| Соотношение | Пиксели     | Соотношение | Пиксели    |
| ----------- | ----------- | ----------- | ---------- |
| `1:1`       | 1024 × 1024 | `4:5`       | 928 × 1152 |
| `3:2`       | 1264 × 848  | `5:4`       | 1152 × 928 |
| `2:3`       | 848 × 1264  | `9:16`      | 768 × 1376 |
| `4:3`       | 1200 × 896  | `16:9`      | 1376 × 768 |
| `3:4`       | 896 × 1200  | `21:9`      | 1584 × 672 |

Каждое соотношение отличалось от номинального не более чем на один процент. Если не указывать `aspect_ratio`, текстовый
промпт выдаёт изображение размером 1024 × 1024; если передать `images`, размер результата соответствует
форме исходного изображения.

## Редактирование и композиция

Передавайте референсные изображения в `images`, чтобы редактировать их или создавать композиции на их основе. Каждая запись представляет собой либо URL `https`, либо URI данных в формате base64 — необработанная строка base64 без префикса data-URI отклоняется, как и обычный `http`.

```json theme={null}
{
  "model": "gemini-3-pro-image",
  "input": {
    "prompt": "place the leaf from the second image leaning against the mug from the first",
    "images": [
      "https://your-bucket.example/mug.jpg",
      "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ..."
    ]
  }
}
```

Обе формы можно свободно сочетать в одном вызове, и `aspect_ratio`, `image_size` и `n` по-прежнему применяются — результат редактирования в `4K` действительно возвращается в разрешении 4096 × 4096.

URL извлекаются **на стороне сервера после принятия задачи**, поэтому некорректный референс приводит к задаче `failed`, а не к `400`. Два кода ошибки показывают, на каком уровне произошёл сбой:

| Что вы передали                                              | `error.code`        | Время до сбоя |
| ------------------------------------------------------------ | ------------------- | ------------- |
| Неразрешимый хост, ошибка 404 или URL, требующий авторизации | `input_fetch_error` | менее 1 с     |
| Доступен, но не является изображением (HTML, JSON)           | `upstream_error`    | около 4 с     |

Оба сбоя происходят до начала работы модели, поэтому такие запросы можно быстро и недорого повторить.

## Задержка

Показатели для асинхронных запросов получены для 30 задач при 12 параллельных
запросах; показатели для синхронных запросов — для одиночных вызовов. Считайте
их порядком величины, а не гарантией уровня сервиса.

|                                     | Nano Banana Pro  | Nano Banana 2    |
| ----------------------------------- | ---------------- | ---------------- |
| Асинхронный вызов отправки          | \~0.9 с          | \~0.9 с          |
| Асинхронное сквозное выполнение, 1K | \~29 с в среднем | \~20 с в среднем |
| Асинхронное сквозное выполнение, 4K | \~36–40 с        | \~41 с           |
| Синхронный полный цикл, 1K          | \~17 с           | \~13 с           |

Асинхронный режим добавляет около 0.9 с к полному циклу в обмен на то, что
соединение не удерживается в течение следующих 20–40 секунд. Время ожидания в
очереди при нагрузке составляло от 0 до 11 секунд и уже включено в показатели
сквозного выполнения.

## Синхронные интерфейсы

Три синхронных формата работают с обеими доступными моделями, и все три возвращают
изображение непосредственно, а не в виде URL:

| Эндпоинт                                      | Где находится изображение                                                                                                                          |
| --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `POST /v1/images/generations`                 | `data[0].b64_json` или `data[0].url` с параметром `response_format`, установленным в значение `url`. `n` игнорируется — одно изображение на вызов. |
| `POST /v1/chat/completions`                   | изображение Markdown с URI данных внутри содержимого сообщения                                                                                     |
| `POST /v1beta/models/{model}:generateContent` | `candidates[0].content.parts[]`, в части `inlineData`                                                                                              |

<Warning>
  В формате Gemini-native никогда не индексируйте `parts` по позиции. Это
  гетерогенный массив, длина и порядок элементов которого не гарантируются:
  текстовая часть может находиться первой, а сложные операции редактирования
  возвращают несколько черновых изображений. Отфильтруйте записи, содержащие
  `inlineData`, и возьмите **последнюю**, а `mimeType` прочитайте из ответа вместо того,
  чтобы предполагать расширение файла.
</Warning>

## Следующие шаги

<CardGroup cols={2}>
  <Card title="Песочница" icon="play" href="/ru/models/nano-banana/playground">
    Отправьте реальный запрос с этой страницы и наблюдайте за выполнением задачи.
  </Card>

  <Card title="Асинхронный API задач" icon="clock" href="/ru/api/async-tasks">
    Оболочка запроса, цикл опроса, обратные вызовы и таблица ошибок.
  </Card>
</CardGroup>
