Руководства
Генерация изображений
ZvenoAI поддерживает генерацию изображений через модели, которые имеют "image" в списке output_modalities. Для генерации изображений необходимо указать параметр modalities в запросе.
Поиск моделей
Модели с поддержкой генерации изображений можно найти несколькими способами:
- На странице моделей — фильтруйте по модальности, чтобы найти модели с поддержкой генерации изображений
- Проверьте поле
output_modalitiesв ответе API — оно должно содержать"image"
Примеры моделей с поддержкой генерации изображений:
google/gemini-2.5-flash-image-preview
Базовая генерация изображений
Для генерации изображений отправьте запрос к /v1/chat/completions с параметром modalities, включающим "image" и "text".
const response = await fetch('https://api.zveno.ai/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${process.env.ZVENOAI_API_KEY}`,
},
body: JSON.stringify({
model: 'google/gemini-2.5-flash-image-preview',
messages: [
{
role: 'user',
content: 'Создай изображение красивого заката над горами',
},
],
modalities: ['image', 'text'],
}),
});
const result = await response.json();
// Сгенерированные изображения находятся в поле images
if (result.choices && result.choices[0].message.images) {
result.choices[0].message.images.forEach((image, index) => {
const imageUrl = image.url; // Base64 data URL
console.log(`Сгенерированное изображение ${index + 1}: ${imageUrl.substring(0, 50)}...`);
});
}Настройка соотношения сторон
Модели Gemini для генерации изображений позволяют указать желаемое соотношение сторон через параметр image_config.aspect_ratio.
Поддерживаемые соотношения сторон:
1:1→ 1024×1024 (по умолчанию)2:3→ 832×12483:2→ 1248×8323:4→ 864×11844:3→ 1184×8644:5→ 896×11525:4→ 1152×8969:16→ 768×134416:9→ 1344×76821:9→ 1536×672
import requests
import json
import os
url = "https://api.zveno.ai/v1/chat/completions"
headers = {
"Authorization": f"Bearer {os.getenv('ZVENOAI_API_KEY')}",
"Content-Type": "application/json"
}
payload = {
"model": "google/gemini-2.5-flash-image-preview",
"messages": [
{
"role": "user",
"content": "Создай изображение нано-бананового блюда в фешенебельном ресторане с темой Gemini"
}
],
"modalities": ["image", "text"],
"image_config": {
"aspect_ratio": "16:9"
}
}
response = requests.post(url, headers=headers, json=payload)
result = response.json()
if result.get("choices") and result["choices"][0]["message"].get("images"):
for image in result["choices"][0]["message"]["images"]:
image_url = image["url"] # Base64 data URL
print(f"Сгенерированное изображение: {image_url[:50]}...")Streaming генерация изображений
Генерация изображений также работает с потоковыми ответами (streaming). Включите параметр stream: true в запросе.
import requests
import json
import os
url = "https://api.zveno.ai/v1/chat/completions"
headers = {
"Authorization": f"Bearer {os.getenv('ZVENOAI_API_KEY')}",
"Content-Type": "application/json"
}
payload = {
"model": "google/gemini-2.5-flash-image-preview",
"messages": [
{
"role": "user",
"content": "Создай изображение футуристического города"
}
],
"modalities": ["image", "text"],
"stream": True
}
response = requests.post(url, headers=headers, json=payload, stream=True)
for line in response.iter_lines():
if line:
line = line.decode('utf-8')
if line.startswith('data: '):
data = line[6:]
if data != '[DONE]':
try:
chunk = json.loads(data)
if chunk.get("choices"):
delta = chunk["choices"][0].get("delta", {})
if delta.get("images"):
for image in delta["images"]:
print(f"Сгенерированное изображение: {image['url'][:50]}...")
except json.JSONDecodeError:
continueФормат ответа
При генерации изображений сообщение ассистента содержит поле images со сгенерированными изображениями:
{
"choices": [
{
"message": {
"role": "assistant",
"content": "Я создал изображение заката для вас.",
"images": [
{
"url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
}
]
}
}
]
}Формат изображений:
- Формат: Изображения возвращаются в виде base64-encoded data URLs
- Тип: Обычно PNG формат (
data:image/png;base64,) - Множественные изображения: Некоторые модели могут генерировать несколько изображений в одном ответе
- Размер: Размеры изображений зависят от возможностей модели
Совместимость моделей
Не все модели поддерживают генерацию изображений. Чтобы использовать эту функцию:
- Проверьте output_modalities: Убедитесь, что модель имеет
"image"в спискеoutput_modalities - Установите параметр modalities: Включите
"modalities": ["image", "text"]в запрос - Используйте совместимые модели: Например,
google/gemini-2.5-flash-image-preview
Решение проблем
Нет изображений в ответе?
- Убедитесь, что модель поддерживает генерацию изображений (проверьте
output_modalities) - Убедитесь, что вы включили
"modalities": ["image", "text"]в запрос - Проверьте, что ваш промпт запрашивает генерацию изображения
Модель не найдена?
- Используйте страницу моделей для поиска доступных моделей генерации изображений
- Фильтруйте по модальности, чтобы увидеть совместимые модели