Изображения
Вызов POST /v1/images/generations — промпт, число картинок и размер, форма ответа и то, что генерация считается в изображениях, а не в токенах.
Быстро
Одна операция делает изображения по текстовому промпту. Конверты запроса, ответа и отказа — OpenAI-совместимые.
curl https://api.kumorouter.com/v1/images/generations \
-H "Authorization: Bearer $KUMO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "<model>",
"prompt": "Маяк в тумане, тушь на бумаге",
"n": 1,
"size": "1024x1024"
}'Члены запроса
modelОбязателен. Публичное имя модели, которой генерировать.promptОбязателен. Текст, по которому делается изображение; до 32 000 символов.nСколько изображений сделать, от 1 до 10. Без него — одно.sizeРазмер как `ШИРИНАxВЫСОТА`, например `1024x1024`.Других членов у этой операции нет. Правки и вариации она не обслуживает.
Ответ
createdКогда изображения были сделаны, отметкой времени Unix в секундах.dataГотовые изображения, в том порядке, в каком их отдал поставщик.Член data несёт b64_json — байты изображения в base64 — либо url, по которому изображение можно забрать. Оба члена необязательны, поэтому клиент читает тот, который пришёл, а не тот, которого он ждал.
{
"created": 1756900000,
"data": [{ "b64_json": "iVBORw0KGgoAAAANSUhEUg..." }]
}Отказ приходит в OpenAI-совместимом конверте: error.message, error.type и error.code, а param здесь всегда null — поля запроса эта поверхность не называет.
Как это считается
Генерация изображений считается в изображениях, а не в токенах, и списывается через ту же цепочку допуска, резерва и расчёта, что и любая другая модельная поверхность.
Из этого следует одна вещь, важная для лимитов. Операция, которая не сообщает токенов вовсе, остаётся с той оценкой, которую на неё отнесли перед отправкой: коррекция к нулю вернула бы всю оценку обратно, и эта поверхность перестала бы стоить против потолка токенов хоть что-то.