curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"model": "gemini-nano-banana-2.1",
"prompt": "Ночной город в стиле киберпанк с мерцающими неоновыми огнями",
"size": "16:9",
"n": 1,
"metadata": {
"resolution": "2K"
}
}'
curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"model": "gemini-nano-banana-2.1-vip",
"prompt": "Преобразуй эту фотографию в акварельную картину",
"size": "1:1",
"n": 1,
"image_urls": [
"https://example.com/photo.jpg"
],
"metadata": {
"resolution": "2K"
}
}'
import requests
response = requests.post(
"https://toapis.com/v1/images/generations",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"model": "gemini-nano-banana-2.1",
"prompt": "Ночной город в стиле киберпанк с мерцающими неоновыми огнями",
"size": "16:9",
"n": 1,
"metadata": {
"resolution": "2K"
}
}
)
response.raise_for_status()
task = response.json()
print(task["id"])
const response = await fetch('https://toapis.com/v1/images/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"model": "gemini-nano-banana-2.1",
"prompt": "Ночной город в стиле киберпанк с мерцающими неоновыми огнями",
"size": "16:9",
"n": 1,
"metadata": {
"resolution": "2K"
}
})
});
if (!response.ok) {
throw new Error(await response.text());
}
const task = await response.json();
console.log(task.id);
{
"id": "task_img_abc123def456",
"object": "generation.task",
"model": "gemini-nano-banana-2.1",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
Gemini Nano Banana 2.1
Gemini Nano Banana 2.1 Генерация изображений
Генерация изображений с Gemini Nano Banana 2.1 и VIP: до 14 референсных изображений, разрешения 1K, 2K и 4K.
POST
/
v1
/
images
/
generations
curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"model": "gemini-nano-banana-2.1",
"prompt": "Ночной город в стиле киберпанк с мерцающими неоновыми огнями",
"size": "16:9",
"n": 1,
"metadata": {
"resolution": "2K"
}
}'
curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"model": "gemini-nano-banana-2.1-vip",
"prompt": "Преобразуй эту фотографию в акварельную картину",
"size": "1:1",
"n": 1,
"image_urls": [
"https://example.com/photo.jpg"
],
"metadata": {
"resolution": "2K"
}
}'
import requests
response = requests.post(
"https://toapis.com/v1/images/generations",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"model": "gemini-nano-banana-2.1",
"prompt": "Ночной город в стиле киберпанк с мерцающими неоновыми огнями",
"size": "16:9",
"n": 1,
"metadata": {
"resolution": "2K"
}
}
)
response.raise_for_status()
task = response.json()
print(task["id"])
const response = await fetch('https://toapis.com/v1/images/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"model": "gemini-nano-banana-2.1",
"prompt": "Ночной город в стиле киберпанк с мерцающими неоновыми огнями",
"size": "16:9",
"n": 1,
"metadata": {
"resolution": "2K"
}
})
});
if (!response.ok) {
throw new Error(await response.text());
}
const task = await response.json();
console.log(task.id);
{
"id": "task_img_abc123def456",
"object": "generation.task",
"model": "gemini-nano-banana-2.1",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
Для пользователей из материкового Китая: используйте
https://toapis.cn как Base URL. Замените https://toapis.com на https://toapis.cn в примерах ниже.Выбор модели
| Версия | Model ID |
|---|---|
| Стандартная | gemini-nano-banana-2.1 |
| VIP | gemini-nano-banana-2.1-vip |
model. Поддерживаются генерация по тексту и редактирование изображений. Запросы выполняются асинхронно. Получайте результаты по ID задачи из ответа на отправку.
image_urls принимает только общедоступные URL изображений, а не данные base64. Сначала загрузите локальные изображения через API загрузки изображений и получите URL.Авторизация
string
обязательно
Все запросы требуют Bearer Token. Получите API Key на странице управления API Key.
Authorization: Bearer YOUR_API_KEY
Параметры запроса
string
по умолчанию:"gemini-nano-banana-2.1"
обязательно
Название модели. Используйте
gemini-nano-banana-2.1 или gemini-nano-banana-2.1-vip.string
обязательно
Текстовое описание для генерации или редактирования изображения.
string
Соотношение сторон выходного изображения. Поддерживаемые значения:
1:13:2,2:34:3,3:416:9,9:165:4,4:521:91:4,4:11:8,8:1
integer
по умолчанию:1
Количество выходных изображений фиксировано: число
1. Не используйте строку "1".string[]
Массив строк URL референсных изображений для генерации или редактирования. Максимум 14 изображений. Каждый URL должен быть общедоступным. Количество референсных изображений не является количеством выходных изображений.Максимум 10MB на изображение. Поддерживаемые форматы: .jpeg, .jpg, .png, .webp.
["https://example.com/photo.jpg"]
object
Дополнительные параметры настройки.
Показать metadata
Показать metadata
string
по умолчанию:"1K"
Разрешение выходного изображения. Поддерживаемые значения:
1K, 2K, 4K. По умолчанию: 1K. Используйте заглавную K.Поля ответа
string
ID задачи для запроса статуса и результатов.
string
Всегда
generation.task.string
ID модели, использованный в запросе.
string
Статус задачи:
queued, in_progress, completed, failed.integer
Прогресс задачи в процентах от 0 до 100.
integer
Время создания задачи, Unix timestamp в секундах.
object
Метаданные задачи.
curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"model": "gemini-nano-banana-2.1",
"prompt": "Ночной город в стиле киберпанк с мерцающими неоновыми огнями",
"size": "16:9",
"n": 1,
"metadata": {
"resolution": "2K"
}
}'
curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"model": "gemini-nano-banana-2.1-vip",
"prompt": "Преобразуй эту фотографию в акварельную картину",
"size": "1:1",
"n": 1,
"image_urls": [
"https://example.com/photo.jpg"
],
"metadata": {
"resolution": "2K"
}
}'
import requests
response = requests.post(
"https://toapis.com/v1/images/generations",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"model": "gemini-nano-banana-2.1",
"prompt": "Ночной город в стиле киберпанк с мерцающими неоновыми огнями",
"size": "16:9",
"n": 1,
"metadata": {
"resolution": "2K"
}
}
)
response.raise_for_status()
task = response.json()
print(task["id"])
const response = await fetch('https://toapis.com/v1/images/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"model": "gemini-nano-banana-2.1",
"prompt": "Ночной город в стиле киберпанк с мерцающими неоновыми огнями",
"size": "16:9",
"n": 1,
"metadata": {
"resolution": "2K"
}
})
});
if (!response.ok) {
throw new Error(await response.text());
}
const task = await response.json();
console.log(task.id);
{
"id": "task_img_abc123def456",
"object": "generation.task",
"model": "gemini-nano-banana-2.1",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
Получение результатов
Полеid в ответе на отправку содержит ID задачи. Используйте API статуса задачи изображения для получения статуса и итоговых изображений. Асинхронные уведомления описаны в Webhook задач.