Генерация изображений
Endpoint для генерации изображения по текстовому промпту. Возвращает результат в OpenAI-compatible формате — массив объектов с полем b64_json
POST
https://ai.wormsoft.ru/api/v1/images/generations* Используются те же API-ключи, что и для GPT-эндпоинтов.
Авторизация:
Bearer API_KEY
Или заголовок:
x-api-key: YOUR_API_KEY.
Поддерживаемые модели
Qwen Image (qwen_image_2512)
Qwen Image 2.1 (qwen_image_2_1)
GPT Image 2.5 (gpt_image_2_5)
GPT Image (gpt_image)
Структура запроса
- Тело запроса — JSON (application/json).
- prompt — обязательный, текст для генерации.
- model — обязательный, идентификатор модели (enum).
- size — необязательный, пресет размера: 1:1 (по умолчанию), 16:9, 9:16, 4:3, 3:4, 3:2, 2:3.
- seed — необязательный, целое число для воспроизводимости результата (только qwen-модели).
Минимальный пример запроса
curl --request POST \
--url https://ai.wormsoft.ru/api/v1/images/generations \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen_image_2512",
"prompt": "A futuristic city at sunset, cinematic, ultra detailed"
}'Пример ответа
200 OK с JSON-телом. Изображения возвращаются в base64 (без префикса data:image/png;base64,).
{
"data": [
{ "b64_json": "iVBORw0KGgoAAAANSUhEUgAA..." }
]
}Декодирование результата
Чтобы получить файл из b64_json, декодируйте base64 в бинарные данные и сохраните как PNG.
import base64
data = base64.b64decode(response["data"][0]["b64_json"])
with open("image.png", "wb") as f:
f.write(data)Тарифы
- За каждую успешную генерацию списываются кредиты: базовая цена модели × коэффициент размера (площадь относительно 1328×1328). Базовые цены (1:1, быстрый режим): qwen_image_2512 — 10 000, qwen_image_2_1 — 20 000, gpt_image_2_5 — 500 000, gpt_image — 100 000. Списание происходит только после успешной генерации. Проваленные задачи не тарифицируются.
Ошибки и лимиты
400
Неверный запрос пользователя
401
Неверный или отсутствует API ключ
402
Недостаточно кредитов на балансе
429
Превышен лимит запросов (rate limit)
500+
Ошибка на стороне нашего сервиса
Генерация обычно занимает 1–3 минуты; максимальное ожидание ответа — до 10 минут.
Потоковая передача прогресса
В личном кабинете прогресс генерации доступен в реальном времени через SSE: POST /api/lk/images/generate/stream — события progress и done. В публичном API (/v1) стриминга нет — ждите финальный ответ синхронно.