Модель рисует картинку по текстовому описанию. Для этого есть два эндпоинта: /v1/images/generations создаёт изображение с нуля, /v1/images/edits переделывает уже существующее по описанию.

Обязательных полей два: model и prompt с описанием того, что нужно нарисовать. Дополнительно задаются размер, качество и число вариантов.

curl "https://api.proxyapi.ru/v1/images/generations" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer <КЛЮЧ>" \
    -d '{
        "model": "openai/gpt-image-1-mini",
        "prompt": "Деревянный маяк на скале, шторм, вечерний свет",
        "size": "1024x1024"
    }'

Поле n задаёт число вариантов в одном запросе. Каждый оплачивается отдельно.

/v1/images/edits принимает исходное изображение вместе с описанием изменений. Запрос отправляется не в JSON, а как форма с вложенным файлом.

curl "https://api.proxyapi.ru/v1/images/edits" \
    -H "Authorization: Bearer <КЛЮЧ>" \
    -F "model=openai/gpt-image-1" \
    -F "image=@lighthouse.png" \
    -F "prompt=Сделать утро вместо вечера, добавить чаек"

Часть моделей принимает несколько исходных изображений — тогда они служат образцами стиля или объектов, которые нужно перенести на результат.

  • Потоковой генерации. Промежуточные кадры не отдаются, ответ приходит целиком, когда картинка готова.
  • Некоторых параметров OpenAI у моделей других вендоров. Настройки вроде moderation, style и input_fidelity поддерживаются не везде, и запрос с ними вернёт ошибку 400.

Генерация изображения занимает заметно больше времени, чем текстовый ответ, — таймаут в клиенте стоит выставлять с запасом.

Считается по-разному в зависимости от модели: у одних цена складывается из токенов описания и токенов самого изображения, у других это фиксированная сумма за картинку, зависящая от размера и качества. Что именно и по какой цене — видно в каталоге моделей.

Частые вопросы

Почему в ответе нет ссылки на картинку?

Изображение возвращается прямо в теле ответа, в поле data[0].b64_json, закодированное в base64. Файл нигде не сохраняется, поэтому его нужно раскодировать и записать на своей стороне.

Можно ли получить несколько вариантов за один запрос?

Да, за это отвечает поле n. Каждый вариант считается отдельным изображением и оплачивается отдельно.

Как изменить уже существующее изображение?

Для этого есть эндпоинт /v1/images/edits: в него отправляется исходный файл вместе с описанием изменений. Запрос передаётся формой с вложением, а не JSON.

Почему запрос выполняется так долго?

Рисование занимает больше времени, чем генерация текста, и промежуточных результатов здесь не бывает. Таймаут в клиенте стоит увеличить, иначе запрос оборвётся раньше, чем придёт картинка.

Последняя редакция: 3 сентября 2026 г.