Skip to content

Images

Используйте POST /v1/images/generations для OpenAI-style генерации изображений и POST /v1/images/edits для OpenAI-style редактирования изображений.

text
POST https://api.rout.my/v1/images/generations

Запрос

bash
curl https://api.rout.my/v1/images/generations \
  -H "Authorization: Bearer $ROUTMY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "provider/image-model-id",
    "prompt": "A clean product photo of a translucent blue cube on a white table",
    "n": 1,
    "image_config": {
      "aspect_ratio": "1:1",
      "image_size": "1K"
    }
  }'

Поля запроса

ПолеТипОбязательноеПримечания
modelstringДаТочный image model ID из /v1/models.
promptstringДаТекстовое описание изображения.
nintegerНетКоличество изображений. Если опущено, используется поведение провайдера.
sizestringНетOpenAI-style size, если модель поддерживает.
qualitystringНетQuality hint, если модель поддерживает.
stylestringНетStyle hint, если модель поддерживает.
userstringНетПринимается для совместимости, но не пробрасывается в upstream.
image_configobjectНетProvider-neutral настройки изображения.

image_config

ПолеТипПримечания
aspect_ratiostringЧастые значения: 1:1, 16:9, 9:16, 4:3, 3:4, 4:5, 5:4, 21:9.
image_sizestringЧастые значения: 1K, 2K, 4K. Значение пробрасывается провайдеру, если поддерживается.

Ответ

Ответ использует OpenAI-style image generation shape. В зависимости от upstream provider, изображение может прийти как URL или base64 payload.

json
{
  "created": 1744000000,
  "data": [
    {
      "url": "https://example.com/generated-image.png",
      "revised_prompt": "A clean product photo of a translucent blue cube..."
    }
  ]
}

или:

json
{
  "created": 1744000000,
  "data": [
    {
      "b64_json": "iVBORw0KGgo..."
    }
  ]
}

Клиенту стоит обрабатывать и url, и b64_json.

Image edits

Используйте POST /v1/images/edits, когда модель должна изменить одно или несколько входных изображений.

text
POST https://api.rout.my/v1/images/edits

Для JSON-запросов используйте images как массив. Multipart-запросы могут использовать OpenAI-style file fields image.

bash
curl https://api.rout.my/v1/images/edits \
  -H "Authorization: Bearer $ROUTMY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "provider/image-edit-model-id",
    "prompt": "Keep the product, replace the background with a clean studio gradient",
    "images": [
      {
        "image_url": "https://example.com/input.png"
      }
    ],
    "n": 1,
    "size": "1024x1024"
  }'

Частые поля для edits: model, prompt, images, image, mask, n, size, quality, background, input_fidelity, moderation, output_compression, output_format, partial_images, stream. Поле user принимается для совместимости, но не пробрасывается в upstream.

Расход квоты

Image generation и image edits списывают квоту по количеству выходных изображений, умножая на token_multiplier модели:

Requested sizeBase quota units per image
empty, 1K, 2K или другие non-4K значения5,000
4K12,500

Provider-reported usage.total_tokens может использоваться внутри, если доступен, но он не может уменьшить billable base ниже floor за output image. Эффективная база:

text
max(provider_usage.total_tokens, output_images * base_quota_units_per_image)

Для /v1/images/edits default floor — 5,000 quota units за каждое выходное изображение. Public response может содержать provider usage, если upstream его вернул, но private billing metadata не раскрывается.

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

Некоторые image-capable chat models используют /v1/chat/completions с modalities: ["image", "text"]. Формат описан в Chat Completions.

API documentation for rout.my.