Генерация картинок через API: GPT Image из России

Генерация картинок через API делается одним POST-запросом на https://api.pro-ai.online/v1/images/generations: в теле модель gpt-image-2, описание в поле prompt и размер, например 1024x1024. Картинка приходит в поле data ответа, остаётся сохранить её в файл. Типичная картинка стоит около 6,3 ₽, оплата российской картой, VPN не нужен.

Как подключить

  1. Получите API-ключ

    Зарегистрируйтесь и скопируйте ключ вида sk-cxa-... в кабинете. После подключения нашего Telegram-бота и подписки на канал на балансе будет 30 ₽, этого хватит на четыре типичные картинки.

  2. Запустите пример curl

    Пример ниже берёт ключ из переменной окружения CODEX_API_KEY: задайте её через export своим ключом. Запрос уйдёт на /v1/images/generations с полями model, prompt и size.

  3. Сохраните результат

    Из ответа возьмите data[0]: там будет строка base64 в поле b64_json или ссылка в поле url. Стоимость запроса появится в кабинете, в разделе «Расход».

Примеры кода

Ключ храните в переменной окружения, а не в коде. Все модели и адреса — в документации.

curl: генерация картинки

curl https://api.pro-ai.online/v1/images/generations \
  -H "Authorization: Bearer $CODEX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-image-2", "prompt": "Рыжий кот в очках читает газету, акварель", "size": "1024x1024"}'

Какие модели для генерации картинок доступны через API

Для картинок у нас три модели: gpt-image-2, gpt-image-2.5-flare и gpt-image-2.5-sunburst. Все работают через эндпоинт /v1/images/generations, и чтобы переключиться, достаточно заменить ID в поле model.

Начинайте с gpt-image-2, на ней же построен пример на этой странице. Если результат не нравится, прогоните ту же подсказку через обе модели 2.5 и сравните на своих задачах. Цена каждой генерации видна в кабинете, так что сравнение обойдётся в пару десятков рублей.

Модели генерации работают только с эндпоинтом для картинок. Текстовые GPT и Claude через /v1/images/generations не вызываются, а модели картинок не отвечают на /v1/chat/completions.

Как выглядит запрос к /v1/images/generations

По устройству это обычный вызов OpenAI API. Метод POST, в заголовках Authorization: Bearer с ключом и Content-Type: application/json, в теле JSON. Обязательны поля model и prompt, size в примере задан явно, 1024x1024.

На Python или Node.js подойдёт официальный SDK OpenAI. Укажите base_url https://api.pro-ai.online/v1 и вызовите client.images.generate с теми же полями, что в curl.

Пример curl печатает ответ прямо в терминал, а там длинная строка base64 или ссылка. Для работы перенаправьте вывод в файл response.json и разбирайте уже его.

  • model: gpt-image-2, gpt-image-2.5-flare или gpt-image-2.5-sunburst.
  • prompt: описание картинки, можно на русском.
  • size: 1024x1024, 1536x1024, 1024x1536 или auto.
  • quality: low, medium, high или auto.
  • n: сколько вариантов вернуть за один запрос.

Размеры и качество: что выбрать под задачу

Квадрат 1024x1024 годится для аватарок, карточек товаров и постов в соцсетях. Для обложки статьи или баннера берите горизонтальный 1536x1024, для сторис и вертикальных афиш 1024x1536. Значение auto оставляет выбор за моделью.

Произвольный размер вроде 800x600 в поле size не передать. Генерируйте ближайший по пропорциям из списка и обрезайте готовую картинку у себя, это делается одной командой в любой библиотеке для работы с изображениями.

Качество low подходит для черновиков и перебора идей: картинка готова быстрее и стоит меньше. Для иллюстраций, которые пойдут в публикацию, ставьте high. Цена растёт и с размером, и с качеством.

Для перебора идей хватит квадрата в low. Финальную версию запускайте сразу в нужных пропорциях: если обрезать квадрат до пропорций баннера, теряется треть кадра.

Как сохранить картинку из ответа

Ответ приходит в формате OpenAI: массив data, по элементу на каждую картинку. Внутри элемента либо поле b64_json со строкой base64, либо поле url со ссылкой, в зависимости от модели и параметров запроса. Надёжнее проверять оба поля и брать то, что заполнено.

Строку base64 в терминале удобно достать через jq и передать в base64 --decode с выводом в файл image.png. В Python это base64.b64decode и запись байтов в файл, в Node.js Buffer.from(строка, "base64"). Ссылку скачайте сразу и сохраните у себя.

Base64 занимает примерно на треть больше места, чем сам файл, и ответ с картинкой 1536x1024 может весить несколько мегабайт. Если ответ проходит через ваш сервер или прокси, проверьте лимит на размер тела.

Где генерация картинок через API экономит время

API выигрывает у ручной работы в окне чата, когда картинок много и они однотипные. Пишете шаблон подсказки, подставляете переменные из таблицы и получаете серию в одном стиле.

Неизменную часть подсказки держите в одном месте: стиль, палитру, композицию. Меняется только сюжет, и картинки из серии выглядят как сделанные одним художником.

  • Обложки для статей блога: шаблон стиля один, меняется только сюжет.
  • Иллюстрации к карточкам каталога, когда фото товара нет или нужен единый фон.
  • Картинки для рассылок и постов, которые собирает сценарий в n8n или Make.
  • Генерация по запросу пользователя в вашем боте или приложении.

Как писать промпты для генерации картинок

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

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

Прошлых генераций модель не помнит. Каждый запрос начинается с нуля, поэтому описание стиля повторяйте в подсказке целиком: фраза «как в прошлый раз» ничего не даст.

  • Объект и действие: «рыжий кот спит на подоконнике».
  • Обстановка и свет: «зимнее утро, мягкий свет из окна».
  • Стиль: «акварель», «плоская векторная иллюстрация», «фото на плёнку».
  • Композиция: «крупный план», «вид сверху», «справа пустое место под текст».
  • Чего быть не должно: «без людей», «без надписей».

Сколько стоит генерация картинок и как считать бюджет

Типичная картинка обходится около 6,3 ₽. Минимального пополнения в 50 ₽ хватит примерно на семь картинок, сотня иллюстраций для каталога или блога выйдет около 630 ₽. Размер и качество двигают цену в обе стороны, поэтому точную сумму смотрите в «Расходе» после первых запросов.

Месячный бюджет считается умножением. Десять обложек в день по 6,3 ₽ за 30 дней дают около 1900 ₽.

Параметр n возвращает несколько вариантов за один вызов, и каждый из них оплачивается. Для перебора идей выгоднее сделать черновики в качестве low, выбрать удачную подсказку и только её запускать в high.

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

Частые ошибки при генерации через API

Когда запрос не прошёл, сначала прочитайте текст ошибки в ответе. Обычно там названо поле, которое не понравилось API.

  • Запрос ушёл на /v1/chat/completions. Модели картинок работают только через /v1/images/generations.
  • В size передан размер не из списка, например 1920x1080.
  • Код читает только b64_json, а в ответе пришёл url, или наоборот. Проверяйте оба поля.
  • Файл не открывается как картинка: строку base64 записали в файл как текст, не декодировав.
  • Запрос отклонён фильтром безопасности. Переформулируйте подсказку и уберите спорные детали.
  • В curl пустая переменная CODEX_API_KEY, и API отвечает 401.
  • На балансе не хватает на картинку. Остаток и цена каждого запроса видны в кабинете.

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

Сколько стоит одна картинка?

Около 6,3 ₽ за типичную. Точная сумма зависит от размера и качества и видна в кабинете по каждому запросу.

Можно писать промпт на русском?

Да, модели GPT Image понимают русский. Надпись на картинке тоже можно заказать по-русски, лучше короткую.

В каком виде приходит картинка?

В массиве data: строкой base64 в поле b64_json или ссылкой в поле url. Строку нужно декодировать и сохранить в файл, ссылку скачать.

Получится ли генерировать картинки из России без VPN?

Да. Эндпоинт /v1/images/generations на api.pro-ai.online открывается из России напрямую.

Как пополнить баланс для генерации?

Картой любого российского банка, через СБП или криптовалютой. Минимальная сумма 50 ₽, этого хватит примерно на семь типичных картинок.

Хватит ли пробного баланса, чтобы попробовать?

На четыре типичные картинки хватит. 30 ₽ начисляем за подключение нашего Telegram-бота и подписку на канал.

Готовы попробовать?

Ключ за 30 секунд, 30 ₽ на пробу за подключение Telegram-бота.

Генерация картинок через API: GPT Image из России без VPN