Генерирует изображения по текстовому описанию и редактирует фото по вашим инструкциям. Цена — 4 ₽ за изображение.
Общая документация Public API · API-ключ можно создать в настройках аккаунта
Nano Banana 2.1 рисует изображения по текстовому описанию и правит готовые картинки: можно передать до 14 изображений по ссылкам и описать, что с ними сделать - сменить фон, собрать несколько объектов в одну сцену, перенести стиль.
Основные сценарии:
image_urls.image_urls из одной или нескольких ссылок.Каждый вызов создаёт асинхронную операцию. После запуска сохраните id и проверяйте статус отдельным запросом.
POST /api/v1/operationsAuthorization: Bearer brth_...id и стартовый статус операции.Отдельного переключателя режимов нет: если в запросе есть хотя бы одна ссылка в image_urls, модель редактирует изображения, если нет - создаёт новое.
{
"tool": "nano-banana-2-1",
"input": {
"...": "..."
}
}
tool - slug нейросети, всегда "nano-banana-2-1".input - параметры запуска. Все поля передаются напрямую внутри этого объекта.| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
prompt | string | Да | Что нарисовать или как изменить изображения. От 3 до 20 000 символов. На входные картинки можно ссылаться по порядку: «изображение 1», «изображение 2» или @image1, @image2. |
image_urls | string[] (url) | Нет | Ссылки на входные изображения, от 1 до 14. Если поле не передано или массив пустой, запускается генерация без входных изображений. |
aspect_ratio | enum | Да | Соотношение сторон результата. Варианты: auto, 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 5:4, 4:5, 21:9, а также вытянутые 1:4, 4:1, 1:8, 8:1. auto - модель выберет сама, при редактировании обычно по входной картинке. |
image_size | enum | Да | Разрешение результата: 1K, 2K или 4K. Чем выше разрешение, тем дольше генерация, цена не меняется. |
Для image_urls разрешены только внешние http/https URL с расширениями jpg, jpeg, png, webp.
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "nano-banana-2-1",
"input": {
"prompt": "Уютная кофейня на углу старой улицы ранним утром, тёплый свет из окон, мокрая брусчатка",
"aspect_ratio": "16:9",
"image_size": "2K"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'nano-banana-2-1',
input: {
prompt: 'Уютная кофейня на углу старой улицы ранним утром, тёплый свет из окон, мокрая брусчатка',
aspect_ratio: '16:9',
image_size: '2K',
},
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'nano-banana-2-1',
'input': {
'prompt': 'Уютная кофейня на углу старой улицы ранним утром, тёплый свет из окон, мокрая брусчатка',
'aspect_ratio': '16:9',
'image_size': '2K',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
curl -X POST https://bratuha.ru/api/v1/operations \
-H "Authorization: Bearer brth_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"tool": "nano-banana-2-1",
"input": {
"prompt": "Поставь кружку с изображения 2 на стол с изображения 1, сохрани освещение первого фото",
"image_urls": [
"https://cdn.example.com/source-image-1.jpg",
"https://cdn.example.com/source-image-2.jpg"
],
"aspect_ratio": "auto",
"image_size": "4K"
}
}'
const response = await fetch('https://bratuha.ru/api/v1/operations', {
method: 'POST',
headers: {
Authorization: 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
body: JSON.stringify({
tool: 'nano-banana-2-1',
input: {
prompt: 'Поставь кружку с изображения 2 на стол с изображения 1, сохрани освещение первого фото',
image_urls: [
'https://cdn.example.com/source-image-1.jpg',
'https://cdn.example.com/source-image-2.jpg',
],
aspect_ratio: 'auto',
image_size: '4K',
},
}),
})
const data = await response.json()
import requests
response = requests.post(
'https://bratuha.ru/api/v1/operations',
headers={
'Authorization': 'Bearer brth_ваш_ключ',
'Content-Type': 'application/json',
},
json={
'tool': 'nano-banana-2-1',
'input': {
'prompt': 'Поставь кружку с изображения 2 на стол с изображения 1, сохрани освещение первого фото',
'image_urls': [
'https://cdn.example.com/source-image-1.jpg',
'https://cdn.example.com/source-image-2.jpg',
],
'aspect_ratio': 'auto',
'image_size': '4K',
},
},
timeout=30,
)
print(response.status_code)
print(response.json())
{
"id": "op_uuid-123",
"status": "queued",
"tool": "nano-banana-2-1",
"cost": 4,
"balance_after": 496,
"created_at": "2026-10-07T12:00:00Z"
}
{
"id": "op_uuid-123",
"status": "completed",
"tool": "nano-banana-2-1",
"cost": 4,
"created_at": "2026-10-07T12:00:00Z",
"completed_at": "2026-10-07T12:00:40Z",
"result": {
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/nano-banana-2-1/image-1.png"
]
},
"error_message": null
}
{
"id": "op_uuid-123",
"status": "failed",
"tool": "nano-banana-2-1",
"cost": 4,
"created_at": "2026-10-07T12:00:00Z",
"completed_at": "2026-10-07T12:00:15Z",
"result": null,
"error_message": "Ваш запрос не прошел модерацию."
}
Если операция завершилась ошибкой, списанная сумма возвращается на баланс.
После создания операции сохраните id и проверяйте её статус запросом:
GET /api/v1/operations/{id}
curl -H "Authorization: Bearer brth_ваш_ключ" \
https://bratuha.ru/api/v1/operations/op_uuid-123
const response = await fetch('https://bratuha.ru/api/v1/operations/op_uuid-123', {
headers: { Authorization: 'Bearer brth_ваш_ключ' },
})
const operation = await response.json()
Опрашивайте раз в 5-10 секунд, пока статус не станет completed или failed. В 4K генерация идёт дольше, чем в 1K.
После завершения Nano Banana 2.1 возвращает:
{
"type": "image",
"urls": [
"https://storage.bratuha.ru/results/nano-banana-2-1/image-1.png"
]
}
type - всегда "image".urls - массив ссылок на готовые изображения, за один запуск - одно изображение.Цена фиксированная - 4 ₽ за запуск. От разрешения, соотношения сторон и числа входных изображений она не зависит.
image_urls не передан или передан как пустой массив, выполняется генерация без входных изображений.image_urls разрешены только внешние http/https URL с расширениями jpg, jpeg, png, webp.1:4, 4:1, 1:8, 8:1 подходят для баннеров, лент и вертикальных полос.POST /api/v1/operations не идемпотентен: повторный запрос создаёт новую операцию.queued, затем проверяете статус по id.