Загрузка...

Генерация изображений

Генерируйте изображения с помощью AI-моделей через RouterAI API.

RouterAI поддерживает генерацию изображений через модели, которые имеют "image" в своих output_modalities. Эти модели могут создавать изображения из текстовых промптов, когда вы указываете соответствующие модальности в запросе.

Поиск моделей

Вы можете найти модели для генерации изображений несколькими способами:

На странице моделей

Посетите страницу моделей и отфильтруйте по выходным модальностям, чтобы найти модели, способные генерировать изображения. Ищите модели, которые содержат "image" в своих выходных модальностях.

В чат-комнате

При использовании чат-комнаты нажмите кнопку Изображение, чтобы автоматически отфильтровать и выбрать модели с возможностью генерации изображений. Если активная модель не поддерживает генерацию изображений, вам будет предложено добавить подходящую.

Использование API

Для генерации изображений отправьте запрос на эндпоинт /api/v1/chat/completions с параметром modalities, включающим "image" и "text".

Базовая генерация изображений

# Базовый запрос на генерацию изображения
curl https://routerai.ru/api/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ROUTERAI_API_KEY" \
  -d '{
    "model": "google/gemini-2.5-flash-image-preview",
    "messages": [
      {
        "role": "user",
        "content": "Создай красивый закат над горами"
      }
    ],
    "modalities": ["image", "text"]
  }'

Параметры конфигурации изображений

Модели генерации изображений Gemini поддерживают дополнительную конфигурацию через параметр image_config. Подробнее об использовании моделей Gemini Image Gen: https://ai.google.dev/gemini-api/docs/image-generation

Соотношение сторон

Установите image_config.aspect_ratio для запроса определенных соотношений сторон генерируемых изображений.

Поддерживаемые соотношения сторон:

  • 1:1 → 1024×1024 (по умолчанию)
  • 2:3 → 832×1248
  • 3:2 → 1248×832
  • 3:4 → 864×1184
  • 4:3 → 1184×864
  • 4:5 → 896×1152
  • 5:4 → 1152×896
  • 9:16 → 768×1344
  • 16:9 → 1344×768
  • 21:9 → 1536×672

Размер изображения (только Gemini)

Установите image_config.image_size для управления разрешением генерируемых изображений. Этот параметр в настоящее время поддерживается только моделями Gemini.

Поддерживаемые размеры:

  • 1K → Стандартное разрешение (по умолчанию)
  • 2K → Высокое разрешение
  • 4K → Максимальное разрешение

Вы можете комбинировать aspect_ratio и image_size в одном запросе:

# Генерация изображения с настройками соотношения сторон и размера
curl https://routerai.ru/api/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ROUTERAI_API_KEY" \
  -d '{
    "model": "google/gemini-2.5-flash-image-preview",
    "messages": [
      {
        "role": "user",
        "content": "Создай картину блюда из нано-банана в роскошном ресторане с темой Gemini"
      }
    ],
    "modalities": ["image", "text"],
    "image_config": {
      "aspect_ratio": "16:9",
      "image_size": "4K"
    }
  }'

Потоковая генерация изображений

Генерация изображений также работает с потоковыми ответами:

# Потоковая генерация изображения
curl https://routerai.ru/api/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ROUTERAI_API_KEY" \
  -d '{
    "model": "google/gemini-2.5-flash-image-preview",
    "messages": [
      {
        "role": "user",
        "content": "Создай изображение футуристического города"
      }
    ],
    "modalities": ["image", "text"],
    "stream": true
  }'

Формат ответа

При генерации изображений сообщение ассистента включает поле images, содержащее сгенерированные изображения:

{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "Я создал для вас красивое изображение заката.",
        "images": [
          {
            "type": "image_url",
            "image_url": {
              "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
            }
          }
        ]
      }
    }
  ]
}

Формат изображения

  • Формат: Изображения возвращаются как base64-кодированные data URL
  • Типы: Обычно формат PNG (data:image/png;base64,)
  • Несколько изображений: Некоторые модели могут генерировать несколько изображений в одном ответе
  • Размер: Размеры изображений зависят от возможностей модели

Работа с base64 изображениями

Для сохранения полученного base64 изображения в файл используйте следующую команду:

# Извлечение base64 данных из JSON ответа и сохранение в файл
# Предполагается, что ответ сохранен в response.json
cat response.json | jq -r '.choices[0].message.images[0].image_url.url' | \
  sed 's/data:image\/png;base64,//' | base64 -d > image.png

Для отправки изображения в base64 формате в запросе:

# Кодирование изображения в base64 для использования в запросе
IMAGE_BASE64=$(base64 -w 0 image.png)

# Использование в запросе
curl https://routerai.ru/api/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ROUTERAI_API_KEY" \
  -d "{
    \"model\": \"google/gemini-2.5-flash-image-preview\",
    \"messages\": [
      {
        \"role\": \"user\",
        \"content\": [
          {
            \"type\": \"text\",
            \"text\": \"Опиши это изображение\"
          },
          {
            \"type\": \"image_url\",
            \"image_url\": {
              \"url\": \"data:image/png;base64,$IMAGE_BASE64\"
            }
          }
        ]
      }
    ]
  }"

Совместимость моделей

Не все модели поддерживают генерацию изображений. Для использования этой функции:

  1. Проверьте выходные модальности: Убедитесь, что модель имеет "image" в своих output_modalities
  2. Установите параметр модальностей: Включите "modalities": ["image", "text"] в ваш запрос
  3. Используйте совместимые модели: Примеры включают:
    • google/gemini-2.5-flash-image-preview
    • black-forest-labs/flux.2-pro
    • black-forest-labs/flux.2-flex
    • sourceful/riverflow-v2-standard-preview
    • Другие модели с возможностями генерации изображений

Лучшие практики

  • Четкие промпты: Предоставляйте подробные описания для лучшего качества изображений
  • Выбор модели: Выбирайте модели, специально разработанные для генерации изображений
  • Обработка ошибок: Проверяйте наличие поля images в ответах перед обработкой
  • Ограничения скорости: Генерация изображений может иметь другие ограничения скорости, чем генерация текста
  • Хранение: Продумайте, как вы будете обрабатывать и хранить данные изображений в формате base64

Устранение неполадок

Нет изображений в ответе?

  • Убедитесь, что модель поддерживает генерацию изображений (output_modalities включает "image")
  • Проверьте, что вы включили "modalities": ["image", "text"] в ваш запрос
  • Убедитесь, что ваш промпт запрашивает генерацию изображения

Модель не найдена?

  • Используйте страницу моделей для поиска доступных моделей генерации изображений
  • Фильтруйте по выходным модальностям, чтобы увидеть совместимые модели