Примечание автора: Подробное объяснение основной причины ошибки not supported model for image generation в API генерации изображений Nano Banana 2, а также как переключиться с формата OpenAI на нативный формат Google generateContent для правильного вызова.
При использовании Nano Banana 2 для генерации изображений столкнулись с ошибкой not supported model for image generation? Это одна из самых частых проблем, с которой сталкиваются разработчики при вызове API изображений Gemini. В этой статье мы разберем основную причину ошибки и правильный способ вызова, чтобы вы могли быстро исправить проблему с API изображений Nano Banana 2.
Основная ценность: Прочитав эту статью, вы поймете разницу в вызове API между моделями генерации изображений Gemini и Imagen, освоите правильное использование конечной точки generateContent и решите проблему с ошибкой за 3 шага.

Основная причина ошибки API изображений Nano Banana 2
| Ключевой момент | Объяснение | Решение |
|---|---|---|
| Сообщение об ошибке | not supported model for image generation, only imagen models are supported | Переключиться на конечную точку generateContent |
| Основная причина | Конечная точка формата OpenAI поддерживает только модели Imagen, но не модели генерации изображений Gemini | Использовать нативный формат API Google |
| Правильная конечная точка | /v1beta/models/{MODEL}:generateContent |
Заменить /v1/images/generations |
| Обязательные параметры | responseModalities: ["TEXT", "IMAGE"] |
Установить в generationConfig |
Подробное объяснение ошибки API изображений Nano Banana 2
Когда вы используете конечную точку /v1/images/generations в формате, совместимом с OpenAI, для вызова Nano Banana 2 (gemini-3.1-flash-image-preview) или Nano Banana Pro (gemini-3-pro-image-preview), система возвращает следующую ошибку:
not supported model for image generation, only imagen models are supported
(request id: 20260315043447253411115cvUiXJMF)
new_api_error convert_request_failed, 500
Основная причина этой ошибки заключается в том, что модели генерации изображений Gemini и Imagen — это две совершенно разные архитектуры.
- Модели Imagen (например,
imagen-3.0-generate-001) — это специализированные модели для генерации изображений, использующие конечные точки/v1/images/generationsили:predict - Модели генерации изображений Gemini (серия Nano Banana) — это мультимодальные языковые модели, способные одновременно выводить текст и изображения, и они должны использовать конечную точку
:generateContent
Проще говоря, вы используете "специальный канал для генерации изображений по тексту" для вызова "мультимодальной диалоговой модели", и из-за несоответствия формата возникает ошибка.

Правильный формат вызова API для генерации изображений Nano Banana 2
Сравнение неправильного и правильного вызова
| Критерий сравнения | ❌ Неправильный способ (формат OpenAI) | ✅ Правильный способ (формат generateContent) |
|---|---|---|
| Конечная точка API | /v1/images/generations |
/v1beta/models/{МОДЕЛЬ}:generateContent |
| Структура запроса | Параметры prompt + size + n |
Структура contents + generationConfig |
| Формат ответа | URL изображения | Встроенные данные изображения в Base64 |
| Поддерживаемые модели | DALL-E, серия Imagen | Модели генерации изображений Gemini (серия Nano Banana) |
| Выходные данные | Только изображение | Текст + изображение (мультимодальный вывод) |
Пример неправильного запроса к API изображений Nano Banana 2
Вот пример вызова, который приведёт к ошибке:
# ❌ Ошибка: использование формата OpenAI для вызова Nano Banana 2
curl -X POST https://api.apiyi.com/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image-preview",
"prompt": "Милый рыжий кот, дремлющий на солнце",
"size": "1024x1024",
"n": 1
}'
# Возвращает: not supported model for image generation
Пример правильного запроса к API изображений Nano Banana 2
Вот правильный способ вызова в формате generateContent:
# ✅ Правильно: использование нативного формата Google generateContent
curl -X POST https://api.apiyi.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"parts": [
{"text": "Милый рыжий кот, дремлющий на солнце"}
]
}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"]
}
}'
🎯 Техническая подсказка: При вызове Nano Banana 2 через платформу APIYI apiyi.com не требуется отдельная настройка аккаунта Google Cloud. Вы можете напрямую использовать конечную точку generateContent с единым API-ключом.
Быстрый старт с API для генерации изображений Nano Banana 2
3 шага для исправления ошибок API изображений Nano Banana 2
Шаг 1: Измените конечную точку API
Переключите URL запроса с формата OpenAI на формат generateContent:
# Неправильная конечная точка
https://api.apiyi.com/v1/images/generations
# Правильная конечная точка (Nano Banana 2)
https://api.apiyi.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent
# Правильная конечная точка (Nano Banana Pro)
https://api.apiyi.com/v1beta/models/gemini-3-pro-image-preview:generateContent
Шаг 2: Измените структуру тела запроса
Перейдите от параметров OpenAI prompt + size к нативной структуре Google contents + generationConfig. Ключевые параметры:
contents.parts.text: Текстовое описание изображенияgenerationConfig.responseModalities: Обязательно установите в["TEXT", "IMAGE"]
Шаг 3: Обработка данных ответа
Изображение, возвращаемое generateContent, представляет собой встроенные данные в кодировке Base64, а не URL. Вам нужно извлечь и декодировать изображение из ответа.
Минималистичный пример на Python
import requests
import base64
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://api.apiyi.com" # Единый интерфейс APIYI
response = requests.post(
f"{BASE_URL}/v1beta/models/gemini-3.1-flash-image-preview:generateContent",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
},
json={
"contents": [{"parts": [{"text": "Милый рыжий кот, дремлющий на солнце"}]}],
"generationConfig": {"responseModalities": ["TEXT", "IMAGE"]}
}
)
result = response.json()
for part in result["candidates"][0]["content"]["parts"]:
if "inlineData" in part:
img_data = base64.b64decode(part["inlineData"]["data"])
with open("output.png", "wb") as f:
f.write(img_data)
print("Изображение сохранено как output.png")
elif "text" in part:
print("Описание модели:", part["text"])
Показать полный код реализации (с обработкой ошибок и настройкой соотношения сторон)
import requests
import base64
import os
from typing import Optional
def generate_image(
prompt: str,
model: str = "gemini-3.1-flash-image-preview",
aspect_ratio: str = "1:1",
output_path: str = "output.png",
api_key: Optional[str] = None
) -> dict:
"""
Генерация изображения с использованием конечной точки generateContent Nano Banana 2
Args:
prompt: Описание изображения
model: Название модели
aspect_ratio: Соотношение сторон (1:1, 16:9, 9:16, 4:3, 3:4)
output_path: Путь к выходному файлу
api_key: API-ключ
Returns:
Словарь, содержащий путь к файлу и описание модели
"""
api_key = api_key or os.getenv("APIYI_API_KEY")
base_url = "https://api.apiyi.com" # Единый интерфейс APIYI
response = requests.post(
f"{base_url}/v1beta/models/{model}:generateContent",
headers={
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
},
json={
"contents": [{"parts": [{"text": prompt}]}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {"aspectRatio": aspect_ratio}
}
},
timeout=60
)
if response.status_code != 200:
raise Exception(f"Ошибка запроса API: {response.status_code} - {response.text}")
result = response.json()
candidates = result.get("candidates", [])
if not candidates:
raise Exception("Не возвращено действительных результатов")
output = {"text": "", "image_path": ""}
for part in candidates[0]["content"]["parts"]:
if "inlineData" in part:
img_data = base64.b64decode(part["inlineData"]["data"])
with open(output_path, "wb") as f:
f.write(img_data)
output["image_path"] = output_path
elif "text" in part:
output["text"] = part["text"]
return output
# Пример использования
result = generate_image(
prompt="Пейзаж в стиле китайской живописи тушью, вдали виднеются горы, окутанные лёгким туманом",
model="gemini-3.1-flash-image-preview",
aspect_ratio="16:9",
output_path="landscape.png"
)
print(f"Изображение сохранено: {result['image_path']}")
print(f"Описание модели: {result['text']}")
Рекомендация: Получите API-ключ через APIYI apiyi.com. Платформа предоставляет бесплатные тестовые лимиты и поддерживает вызовы generateContent для обеих моделей генерации изображений Gemini: Nano Banana 2 и Nano Banana Pro.
Сравнение моделей API для генерации изображений Nano Banana 2
Понимание различий в способах вызова API для разных моделей генерации изображений поможет вам избежать похожих ошибок в формате:
| Модель | Кодовое имя | Конечная точка API | Формат вызова | Доступные платформы |
|---|---|---|---|---|
| Nano Banana 2 | gemini-3.1-flash-image-preview | :generateContent |
Нативный формат Google | APIYI и другие платформы |
| Nano Banana Pro | gemini-3-pro-image-preview | :generateContent |
Нативный формат Google | APIYI и другие платформы |
| Imagen 3 | imagen-3.0-generate-001 | /v1/images/generations или :predict |
Совместимый с OpenAI формат | APIYI и другие платформы |
| DALL-E 3 | dall-e-3 | /v1/images/generations |
Формат OpenAI | APIYI и другие платформы |
Описание ключевых параметров API для изображений Nano Banana 2

Конечная точка generateContent поддерживает богатый набор параметров для генерации изображений:
| Параметр | Описание | Обязательный? | Пример значения |
|---|---|---|---|
contents.parts.text |
Промпт с описанием изображения | ✅ Обязательно | "Рыжий кот на солнце" |
responseModalities |
Настройка модальностей ответа | ✅ Обязательно | ["TEXT", "IMAGE"] |
imageConfig.aspectRatio |
Соотношение сторон изображения | Опционально | "1:1", "16:9", "9:16" |
contents.parts.inlineData |
Эталонное изображение (изображение-в-изображение) | Опционально | Данные изображения в Base64 |
💡 Важное замечание:
responseModalitiesдолжен содержать одновременно"TEXT"и"IMAGE". Установка только["IMAGE"]приведёт к ошибке запроса. Это связано с тем, что модель генерации изображений Gemini является мультимодальной и всегда выводит одновременно текстовое описание и изображение.
Часто задаваемые вопросы
Вопрос 1: Почему Nano Banana 2 нельзя вызывать в формате OpenAI?
Nano Banana 2 (gemini-3.1-flash-image-preview) — это мультимодальная языковая модель на основе Gemini. Её способность генерировать изображения реализована через механизм "генерации в диалоге", а не через специализированный "интерфейс текст-в-изображение". Конечная точка /v1/images/generations в формате OpenAI предназначена специально для моделей генерации изображений, таких как DALL-E и Imagen, и не может обрабатывать мультимодальную структуру запросов Gemini. При вызове через платформу APIYI apiyi.com необходимо выбирать соответствующий формат конечной точки в зависимости от типа модели.
Вопрос 2: В чём разница между API для изображений Nano Banana 2 и Nano Banana Pro?
Обе модели используют конечную точку generateContent, и формат вызова у них полностью идентичен. Основные отличия:
- Nano Banana 2 (Flash-версия): Генерирует быстрее, примерно за 3-5 секунд. Подходит для пакетной генерации и быстрого прототипирования.
- Nano Banana Pro: Обеспечивает более высокое качество изображений, точность рендеринга текста достигает 94%. Подходит для детализированного дизайна и коммерческого использования.
На платформе APIYI apiyi.com доступны обе модели. Для переключения достаточно изменить имя модели в URL конечной точки.
Вопрос 3: Как обрабатывать данные изображения, возвращаемые generateContent?
В отличие от формата OpenAI, который возвращает URL изображения, generateContent возвращает встроенные (inline) данные изображения в кодировке Base64. Шаги обработки:
- В ответе JSON найдите часть, содержащую
inlineData, вcandidates[0].content.parts. - Получите строку Base64 из поля
inlineData.data. - Декодируйте её с помощью
base64.b64decode()и сохраните как файл изображения. - Поле
inlineData.mimeTypeподскажет формат изображения (обычноimage/png).
Итог
Ключевые моменты по ошибкам API изображений Nano Banana 2:
- Причина ошибки ясна: Использование конечной точки
/v1/images/generations(формат OpenAI) для вызова модели генерации изображений Gemini вызывает ошибку "not supported model". - Переключитесь на generateContent: Правильная конечная точка —
/v1beta/models/gemini-3.1-flash-image-preview:generateContent. - Настройте responseModalities: В
generationConfigобязательно должен быть указан["TEXT", "IMAGE"], иначе изображение не сгенерируется.
Если вы столкнулись с ошибкой API Nano Banana 2, суть решения можно выразить одной фразой: замените конечную точку генерации изображений OpenAI на нативную конечную точку Google generateContent.
Рекомендуем быстро протестировать Nano Banana 2 и Nano Banana Pro через платформу APIYI apiyi.com. Платформа предоставляет бесплатный лимит, поддерживает прямой вызов в формате generateContent и не требует настройки аккаунта Google Cloud.
📚 Справочные материалы
-
Документация по генерации изображений Google Gemini: Официальное руководство по генерации изображений в Gemini API
- Ссылка:
ai.google.dev/gemini-api/docs/image-generation - Описание: Полное описание параметров и примеры использования для конечной точки
generateContent
- Ссылка:
-
Справочник по API Google generateContent: Документация по интерфейсу генерации контента Gemini API
- Ссылка:
ai.google.dev/api/generate-content - Описание: Подробное описание структуры запроса и ответа для конечной точки
generateContent
- Ссылка:
-
Документация по совместимости Google Gemini с OpenAI: Объяснение совместимости форматов Gemini и OpenAI
- Ссылка:
ai.google.dev/gemini-api/docs/openai - Описание: Узнайте, какие функции поддерживают формат, совместимый с OpenAI, а какие требуют нативного формата
- Ссылка:
Автор: Техническая команда APIYI
Техническое обсуждение: Приглашаем обсудить вопросы вызова API для генерации изображений Nano Banana 2 в комментариях. Больше материалов можно найти в документации APIYI docs.apiyi.com
