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

Модели изображений тарифицируются за изображение (или мегапиксель) либо за токены — по цене модели в каталоге.

Изображения

POST/api/v1/images — синхронная генерация. Обязательные поля — model (модель с выходом «изображения») и prompt; необязательные — n (целое 1–10), size (auto, уровень 512, 768, 1K, 1.5K, 2K, 4K или ШИРИНАxВЫСОТА), resolution (уровень), aspect_ratio, quality (auto, low, medium, high, xhigh, max), output_format, background, output_compression, seed, user и input_references для редактирования по образцу. Другие поля модели не передаются.

curl https://infergate.ru/api/v1/images \
  -H "Authorization: Bearer sk-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/gemini-2.5-flash-image",
    "prompt": "акварельная лиса в заснеженном лесу",
    "n": 1
  }'

Ответ приходит одним JSON: data — массив изображений в base64 (b64_json), usage.cost_rub — стоимость запроса в рублях.

{
  "created": 1727000000,
  "data": [{ "b64_json": "iVBORw0KGgo...", "media_type": "image/png" }],
  "usage": { "prompt_tokens": 11, "completion_tokens": 1290, "total_tokens": 1301, "cost_rub": 4.0365, "cost": 0.039, "fx_rate": 103.5 }
}

Модели изображений

GET/api/v1/images/models — модели, которые принимает POST/api/v1/images. В supported_parameters — параметры, которые поддерживает модель. Для моделей с ценой за изображение — блок media_price.

curl https://infergate.ru/api/v1/images/models \
  -H "Authorization: Bearer sk-..."

parameters — допустимые значения по имени поля запроса: {"type": "enum", "values": [...]} — список значений (aspect_ratio, resolution, quality, …), {"type": "range", "min": …, "max": …} — диапазон (n, input_references — сколько изображений-образцов), {"type": "boolean"} — параметр поддерживается (seed). Поля нет у модели, для которой значения неизвестны; {} — модель не принимает настраиваемых параметров. Например:

"id": "recraft/recraft-v4.1",
"parameters": {
  "aspect_ratio": { "type": "enum", "values": ["1:1", "4:3", "3:4", "16:9", "9:16", "auto"] },
  "n": { "type": "range", "min": 1, "max": 6 },
  "input_references": { "type": "range", "min": 0, "max": 1 }
}