curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "gemini-3.1-flash-image-official",
"prompt": "Картина тушью в стиле китайской живописи: горы и реки, многослойные вершины в клубах тумана",
"size": "16:9",
"n": 1,
"metadata": {
"temperature": 1.0,
"topP": 0.95,
"resolution": "1K",
"personGeneration": "ALLOW_ALL",
"thinkingConfig": {
"thinkingLevel": "HIGH"
}
}
}'
import requests
response = requests.post(
"https://toapis.com/v1/images/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "gemini-3.1-flash-image-official",
"prompt": "Картина тушью в стиле китайской живописи: горы и реки, многослойные вершины в клубах тумана",
"size": "16:9",
"n": 1,
"metadata": {
"temperature": 1.0,
"topP": 0.95,
"resolution": "1K",
"personGeneration": "ALLOW_ALL",
"thinkingConfig": {
"thinkingLevel": "HIGH"
}
}
}
)
task = response.json()
print(f"ID задачи: {task['id']}")
print(f"Статус: {task['status']}")
const response = await fetch('https://toapis.com/v1/images/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'gemini-3.1-flash-image-official',
prompt: 'Картина тушью в стиле китайской живописи: горы и реки, многослойные вершины в клубах тумана',
size: '16:9',
n: 1,
metadata: {
temperature: 1.0,
topP: 0.95,
resolution: '1K',
personGeneration: 'ALLOW_ALL',
thinkingConfig: {
thinkingLevel: 'HIGH'
}
}
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
{
"id": "task_img_abc123def456",
"object": "generation.task",
"model": "gemini-3.1-flash-image-official",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
gemini-3.1-flash-image-official
Gemini-3.1-Flash Official Генерация изображений
Генерация изображений с использованием модели Google Gemini 3.1 Flash с прямым подключением, поддержка режима мышления и экстремальных соотношений сторон
POST
/
v1
/
images
/
generations
curl --request POST \
--url https://toapis.com/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "gemini-3.1-flash-image-official",
"prompt": "Картина тушью в стиле китайской живописи: горы и реки, многослойные вершины в клубах тумана",
"size": "16:9",
"n": 1,
"metadata": {
"temperature": 1.0,
"topP": 0.95,
"resolution": "1K",
"personGeneration": "ALLOW_ALL",
"thinkingConfig": {
"thinkingLevel": "HIGH"
}
}
}'
import requests
response = requests.post(
"https://toapis.com/v1/images/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "gemini-3.1-flash-image-official",
"prompt": "Картина тушью в стиле китайской живописи: горы и реки, многослойные вершины в клубах тумана",
"size": "16:9",
"n": 1,
"metadata": {
"temperature": 1.0,
"topP": 0.95,
"resolution": "1K",
"personGeneration": "ALLOW_ALL",
"thinkingConfig": {
"thinkingLevel": "HIGH"
}
}
}
)
task = response.json()
print(f"ID задачи: {task['id']}")
print(f"Статус: {task['status']}")
const response = await fetch('https://toapis.com/v1/images/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'gemini-3.1-flash-image-official',
prompt: 'Картина тушью в стиле китайской живописи: горы и реки, многослойные вершины в клубах тумана',
size: '16:9',
n: 1,
metadata: {
temperature: 1.0,
topP: 0.95,
resolution: '1K',
personGeneration: 'ALLOW_ALL',
thinkingConfig: {
thinkingLevel: 'HIGH'
}
}
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
{
"id": "task_img_abc123def456",
"object": "generation.task",
"model": "gemini-3.1-flash-image-official",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
Для пользователей из материкового Китая: используйте
https://toapis.cn в качестве эндпоинта (Base URL). Замените https://toapis.com на https://toapis.cn во всех примерах этого документа.- Прямое подключение к Google Vertex AI через нативный API Gemini 3.1 Flash Image
- Выбор модели
gemini-3.1-flash-image-officialчерез параметр model - Nano Banana 2 aliases:
nano-banana-2-lite-officialandnano-banana-2-official - Поддержка генерации из текста и из изображения
- Поддержка нативных параметров генерации: temperature, topP, maxOutputTokens
- Поддержка resolution (1K/2K/4K), personGeneration, imageOutputOptions — конфигурация изображений
- Поддержка thinkingConfig — режим мышления для улучшения генерации сложных сцен
- Поддержка safetySettings — настройки безопасности контента
- Поддержка экстремальных соотношений сторон (4:1, 8:1)
- Асинхронное управление задачами через ID задачи
Важное изменение: Для улучшения производительности и контроля затрат мы больше не поддерживаем передачу данных изображений в формате base64 непосредственно в
image_urls. Пожалуйста, сначала используйте эндпоинт загрузки изображений для загрузки изображений, а затем используйте полученный URL в этом API.Авторизация
string
обязательно
Все эндпоинты требуют аутентификации Bearer TokenПолучить API Key: Перейдите на страницу управления API Key для получения вашего API KeyДобавьте в заголовки запроса:
Authorization: Bearer YOUR_API_KEY
Тело запроса
string
по умолчанию:"gemini-3.1-flash-image-official"
обязательно
Название модели генерации изображенийПример:
"gemini-3.1-flash-image-official"string
обязательно
Текстовое описание для генерации изображения
string
Соотношение сторон изображенияПоддерживаемые форматы:
1:1- Квадрат3:2/2:33:4/4:34:5/5:49:16/16:921:94:1/8:1- Экстремальные широкоэкранные пропорции
integer
по умолчанию:1
Количество генерируемых изображенийФиксировано: 1
string[]
Массив URL справочных изображений для генерации из изображения или редактирования⚠️ Поддерживается только формат URL (base64 больше не поддерживается)
- Публично доступные URL изображений (http:// или https://)
- Используйте эндпоинт загрузки изображений для загрузки локальных изображений
- Максимум 14 изображений
- Максимальный размер файла: 10MB
- Поддерживаемые форматы: .jpeg, .jpg, .png, .webp
object
Нативные параметры расширения Vertex AI
Показать Показать поля metadata
Показать Показать поля metadata
number
Температура генерации, контролирует случайность выводаДиапазон:
0.0 - 2.0, по умолчанию 1.0number
Параметр Top-P сэмплированияДиапазон:
0.0 - 1.0, по умолчанию 0.95integer
Максимальное количество выходных токеновПо умолчанию
32768string
Разрешение выходного изображения, автоматически преобразуется в imageSize Vertex AIВарианты:
1K, 2K, 4K, по умолчанию 1Kstring
Управление генерацией людейВарианты:
ALLOW_ALL— разрешить генерацию всех людей (включая взрослых и детей)ALLOW_ADULT— разрешить только взрослыхALLOW_NONE— запретить генерацию людей
object
object
Конфигурация режима мышления. При включении модель сначала рассуждает, а затем генерирует изображение
array
Массив настроек безопасности для фильтрации контента
Ответ
string
Уникальный идентификатор задачи для запроса статуса
string
Тип объекта, всегда
generation.taskstring
Используемое название модели
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 <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "gemini-3.1-flash-image-official",
"prompt": "Картина тушью в стиле китайской живописи: горы и реки, многослойные вершины в клубах тумана",
"size": "16:9",
"n": 1,
"metadata": {
"temperature": 1.0,
"topP": 0.95,
"resolution": "1K",
"personGeneration": "ALLOW_ALL",
"thinkingConfig": {
"thinkingLevel": "HIGH"
}
}
}'
import requests
response = requests.post(
"https://toapis.com/v1/images/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "gemini-3.1-flash-image-official",
"prompt": "Картина тушью в стиле китайской живописи: горы и реки, многослойные вершины в клубах тумана",
"size": "16:9",
"n": 1,
"metadata": {
"temperature": 1.0,
"topP": 0.95,
"resolution": "1K",
"personGeneration": "ALLOW_ALL",
"thinkingConfig": {
"thinkingLevel": "HIGH"
}
}
}
)
task = response.json()
print(f"ID задачи: {task['id']}")
print(f"Статус: {task['status']}")
const response = await fetch('https://toapis.com/v1/images/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'gemini-3.1-flash-image-official',
prompt: 'Картина тушью в стиле китайской живописи: горы и реки, многослойные вершины в клубах тумана',
size: '16:9',
n: 1,
metadata: {
temperature: 1.0,
topP: 0.95,
resolution: '1K',
personGeneration: 'ALLOW_ALL',
thinkingConfig: {
thinkingLevel: 'HIGH'
}
}
})
});
const task = await response.json();
console.log(`ID задачи: ${task.id}`);
console.log(`Статус: ${task.status}`);
{
"id": "task_img_abc123def456",
"object": "generation.task",
"model": "gemini-3.1-flash-image-official",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}