Справочник API
Изображения: асинхронные задачи
Модели этого эндпоинта (12)
/v1/images/tasks/v1/images/tasks/{task_id}/v1/images/tasks/{task_id}/contentАсинхронная генерация изображений — маршрут, которым пользуются все модели изображений каталога. Отправка возвращает task_id; опрашивайте эндпоинт статуса, затем получите постоянные URL результатов из /content — или зарегистрируйте вебхук и обойдитесь без опроса.
#Параметры запроса
modelstringобязательноID асинхронной модели изображений, например gpt-image-2. Модели только с синхронным режимом этот эндпоинт отклоняют.
promptstringобязательноЧто нарисовать.
sizestringнеобязательноПредустановленное соотношение сторон, например "16:9", — так размер задаётся у большинства моделей изображений; точные значения указаны в карточке модели. Некоторые старые модели принимают и WIDTHxHEIGHT.
resolutionstringнеобязательноУровень разрешения результата, например "1K", "2K" или "4K", если он указан в карточке модели, — тоже влияет на ценовой уровень.
qualitystringнеобязательноУровень качества у провайдера (например, standard / hd) — тоже влияет на ценовой уровень.
nintegerнеобязательноКоличество изображений (стоимость умножается на их число).
imagesarrayнеобязательноРеференсные изображения для редактирования или как образец — URL или data URI. Сколько принимает модель, указано в её карточке.
maskstringнеобязательноПерерисовывает одну область первого референсного изображения — см. «Изменить часть изображения» ниже. Принимают только модели, в карточке которых есть mask; mask_url принимается как то же поле.
webhook_urlstringнеобязательноHTTPS-URL, который вызывается, когда задача переходит в конечное состояние, — формат обратного вызова описан в руководстве по видео.
webhook_secretstringнеобязательноЕсли задан, каждая доставка содержит X-Xiaoxiang-Signature: sha256=hex(HMAC-SHA256(body, secret)).
Параметры зависят от модели
Названия полей могут зависеть от семейства моделей
#Изменить часть изображения
Передайте изображение в images и маску в mask: перерисуется только область под маской, остальное останется как есть. В prompt опишите, что должно появиться в этой области. Сейчас маску принимают gpt-image-2.5-flare и gpt-image-2.5-sunburst; в карточке модели она показана как поле mask.
curl https://www.aisplice.store/v1/images/tasks \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5-flare",
"prompt": "Replace the mug with a glass of orange juice; keep everything else",
"images": ["https://example.com/desk.png"],
"mask": "https://example.com/desk-mask.png",
"resolution": "1K"
}'Как сделать маску
- 400 invalid_requestmask передан без референсного изображения или модели, которая не принимает маску (gpt-image-2.5-ext отвечает "mask is not supported on Ext").
#Связанные ошибки
- 404 not_foundНеизвестный путь, неизвестное имя модели или просроченный / чужой task_id.
- 401Bearer-токен недействителен или отсутствует. На этом пути error.code нет — ориентируйтесь на статус.
- 402 insufficient_user_quotaБаланса кошелька не хватает на предварительно резервируемую сумму.
- 429Ограничение частоты для ключа. Тело пустое; дождитесь Retry-After. Если же в ответе 429 есть insufficient_user_quota, это дневной лимит расходов.
- 503 model_not_foundНеизвестная модель, или сейчас её не обслуживает ни один исправный канал.
#Пример запроса
# 1. submit
curl https://www.aisplice.store/v1/images/tasks \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-image-2.5-ext", "prompt": "A red paper crane on a desk", "size": "16:9", "resolution": "1K"}'
# 2. poll every 3s until a terminal status
curl https://www.aisplice.store/v1/images/tasks/$TASK_ID -H "Authorization: Bearer sk-YOUR_KEY"
# 3. fetch persistent result URLs
curl https://www.aisplice.store/v1/images/tasks/$TASK_ID/content -H "Authorization: Bearer sk-YOUR_KEY"#Ответ
// POST /v1/images/tasks
{"task_id": "task_xxx", "status": "queued"}
// GET /v1/images/tasks/{task_id}
{"task_id": "task_xxx", "status": "in_progress", "progress": "60%"}
// GET /v1/images/tasks/{task_id}/content — after completion
{"created": 1720000000, "data": [{"url": "https://…"}]}Проблема не решена?
Пришлите нам ID запроса или текст ошибки, и мы разберёмся.