API изображений GPT Image 2 и Gemini — документация Modelflare

Создавайте изображения с GPT Image 2 через OpenAI-совместимый Images API или с Nano Banana Pro и Nano Banana 2 через нативный Gemini API.

На этой странице собраны два независимых контракта API для генерации изображений. Они используют один API-ключ Modelflare и общие Credits, но форматы запросов и ответов нельзя смешивать.

  • gpt-image-2 использует OpenAI-совместимые контракты /v1/images/generations и /v1/images/edits.
  • gemini-3-pro-image и gemini-3.1-flash-image используют нативный контракт Gemini generateContent.

Сначала выберите семейство модели и не смешивайте поля Gemini и GPT Images.

1. GPT Image 2 — OpenAI-совместимый Images API

Создавайте PNG или редактируйте референсные изображения по публичному URL либо из локального файла с gpt-image-2 через совместимый с OpenAI Images API. Каждый запрос возвращает одно изображение и поддерживает среднее или высокое качество, временную подписанную ссылку либо base64 и необязательный SSE.

Выбор адреса и режима

  • Для синхронного JSON, который может выполняться несколько минут, используйте https://origin.modelflare.dev/v1.
  • Для долгих запросов через Cloudflare используйте https://modelflare.dev/v1 с stream=true; SSE heartbeat поддерживает соединение до готовности изображения.
  • Не перенаправляйте выполняющийся POST между хостами.

Синхронный запрос

curl https://origin.modelflare.dev/v1/images/generations \
  -H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-image-2","prompt":"Тихий домик у озера на рассвете","n":1,"quality":"medium","size":"1024x1024","response_format":"url","output_format":"png"}'

Ответ URL содержит приватную подписанную ссылку Modelflare со сроком действия один час. Укажите response_format=b64_json, чтобы получить проверенный PNG без сохранения выходного объекта API.

Актуальная страница Модели и цены показывает цены medium и high для распространённых размеров. Списание рассчитывается по точным качеству и размерам запроса без обычных множителей групп маршрутизации, а итоговая сумма записывается в журнал использования.

Редактирование референсного изображения

Отправьте один или несколько общедоступных HTTP(S)-адресов изображений в POST /v1/images/edits. Каждый элемент images должен содержать ровно один image_url:

curl https://origin.modelflare.dev/v1/images/edits \
  -H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-image-2","prompt":"Замените фон на чистую белую фотостудию","images":[{"image_url":"https://example.com/input.png"}],"size":"2048x2048","response_format":"url"}'

Также можно загрузить один локальный файл PNG, JPEG или WebP через multipart/form-data:

curl https://origin.modelflare.dev/v1/images/edits \
  -H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
  -F "model=gpt-image-2" \
  -F "prompt=Замените фон на чистую белую фотостудию" \
  -F "image=@/path/to/input.png" \
  -F "size=2048x2048" \
  -F "response_format=url"

Multipart-запрос должен содержать ровно один файл изображения и занимать не более 20 МиБ целиком. Референсный URL или загруженный файл передаётся выбранному upstream-провайдеру; URL должен оставаться доступным во время загрузки. Modelflare не хранит ни один из референсных входов как выходной ресурс API.

SSE-запрос

curl -N https://modelflare.dev/v1/images/generations \
  -H "Authorization: Bearer YOUR_MODELFLARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-image-2","prompt":"Белый кот бежит по неоновой улице под дождём","n":1,"quality":"high","size":"1024x1024","response_format":"url","stream":true}'

Комментарии SSE — только heartbeat. Завершите после image_generation.completed и data: [DONE].

Поддерживаются model, prompt, n=1, quality=medium|high, корректный WIDTHxHEIGHT, response_format=url|b64_json, output_format=png и необязательный stream. /v1/images/edits принимает непустой массив images с публичным HTTP(S) image_url в каждом элементе либо ровно один корректный PNG, JPEG или WebP в multipart-поле image. Генерация отклоняет референсы; несколько файлов, ввод data/base64, маски, input_fidelity, вариации, частичные изображения и неизвестные поля отклоняются. Зарезервированные Credits неуспешных запросов возвращаются идемпотентно по Request ID.

Используйте обычный API-ключ. Ключи, закреплённые за каналом, отклоняются; ключ с ограничением моделей должен включать gpt-image-2.


2. Gemini Image — нативный Gemini API

Используйте Nano Banana Pro или Nano Banana 2 в нативном формате Gemini. Эти модели не используют /v1/images/generations.

Эндпоинт и долгие запросы

Потоковый запрос

В примере используется Nano Banana 2. Замените модель в URL на gemini-3-pro-image, чтобы использовать Nano Banana Pro.

curl -N "https://modelflare.dev/v1beta/models/gemini-3.1-flash-image:streamGenerateContent?alt=sse" \
  -H "x-goog-api-key: YOUR_MODELFLARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{"text": "Create a clean blue circle centered on a white background. No text."}]
    }],
    "generationConfig": {
      "responseModalities": ["TEXT", "IMAGE"],
      "imageConfig": {"aspectRatio": "1:1", "imageSize": "1K"}
    }
  }'

Контракт ответа

Каждое SSE-событие data: содержит нативный JSON Gemini. Base64 изображения находится в candidates[].content.parts[].inlineData.data, MIME — в inlineData.mimeType. Ответ может включать текст. Завершайте при finishReason=STOP или закрытии потока; событие image_generation.completed здесь не используется.

Модели, разрешения и ориентировочные цены

Модель Разрешение Ориентировочная цена за изображение
Nano Banana Pro 1K / 2K US$0.06720
Nano Banana Pro 4K US$0.12000
Nano Banana 2 0.5K US$0.02241
Nano Banana 2 1K US$0.03360
Nano Banana 2 2K US$0.05040
Nano Banana 2 4K US$0.07560

В imageSize используйте заглавную K. Это ориентировочные цены за одно изображение; итоговая сумма может немного меняться в зависимости от запроса и записывается в журнале использования.

Передавайте обычный API-ключ Modelflare через x-goog-api-key. Ключ должен иметь доступ к группе gemini-image и включать выбранную модель при ограничении моделей.