Skip to main content
OpenAI Images Generations API в настоящее время поддерживает несколько моделей генерации изображений, включая классическую dall-e-3, модель с улучшенными возможностями рендеринга текста gpt-image-1, новейшее поколение gpt-image-2, а также серию моделей nano-banana / nano-banana-2 / nano-banana-pro, подключенных через тот же интерфейс. Все они способны создавать высококачественные изображения на основе текстовых описаний. В этом документе описан процесс использования OpenAI Images Generations API, который позволяет легко применять возможности генерации изображений серии OpenAI.

Процесс подачи заявки

Для использования OpenAI Images Generations API сначала перейдите на страницу OpenAI Images Generations API и нажмите кнопку «Acquire», чтобы получить необходимые для запросов креденшелы: Если вы не вошли в систему или не зарегистрированы, произойдет автоматический переход на страницу входа, где вы сможете зарегистрироваться и войти. После входа вы автоматически вернетесь на текущую страницу. При первом запросе предоставляется бесплатный лимит для использования API.

Модель GPT-Image-2

gpt-image-2 — новая модель генерации изображений от OpenAI, которая по сравнению с dall-e-3 и gpt-image-1 имеет следующие улучшения:
  • Лучшее следование инструкциям: точное понимание сложных структурных указаний, таких как композиция, подсчет объектов, позиционные отношения.
  • Четкое рендеринг текста: английские слова и цифры на постерах, меню, инфографике и логотипах практически не искажаются.
  • Более богатое стилевое исполнение: нативная поддержка различных стилей, включая кинематографичные портреты, винтажные постеры, детские иллюстрации, продуктовую фотографию, инфографику.
  • Поддержка нескольких соотношений и высоких разрешений: 5 соотношений сторон (1:1, 4:3, 3:4, 16:9, 9:16) и 3 уровня разрешения (1K / 2K / 4K).
Вызов API идентичен другим моделям, достаточно указать поле model со значением gpt-image-2. В ответе поле url содержит постоянную ссылку на изображение, размещённое на platform.cdn.xhuoapi.ai, которую можно открыть в браузере или встроить на веб-страницу.

Поддерживаемые значения size и уровни тарификации

gpt-image-2 проверяет только формат size: если значение не auto и не пустое, оно должно соответствовать формату WIDTHxHEIGHT (например, 1024x1024, 2048x1152, 800x600); любые другие форматы приведут к ошибке 400. Тарификация делится на два уровня:
  • 1K стандартная цена: входное значение — любое из рекомендованных 1K размеров из таблицы ниже или распространённые 1K псевдонимы (1254x1254, 1672x941, 941x1672 — это фактические размеры, которые возвращает upstream, повторное использование не повлечёт повышение цены).
  • Другие размеры (1.5×): любые размеры, не входящие в 1K набор, включая рекомендованные 2K / 4K предустановки и любые пользовательские WIDTHxHEIGHT.
Ограничения upstream для пользовательских размеров: ширина и высота кратны 16, максимальная длинная сторона ≤ 3840, общее количество пикселей ≤ 8,294,400. Превышение приведёт к отказу с ошибкой 4xx.
Вы также можете передать size: "auto" или пропустить поле size, тогда модель выберет размер по умолчанию, и тарификация будет по 1K стандарту. При 1K тарифе upstream не гарантирует точное соответствие пикселям — например, при передаче 1024x1024 может быть возвращено 1254x1254 с сохранением пропорций. Если вы повторно передадите полученный размер, тарификация останется 1K. Вызов с 4K обычно занимает 4–8 минут, рекомендуется использовать асинхронный callback_url (см. ниже).
О параметре n В gpt-image-2 не поддерживается n > 1: параметр игнорируется, независимо от значения n возвращается только 1 изображение и тарифицируется как одно. Для получения нескольких вариантов нужно запускать несколько параллельных запросов с разными prompt или seed, иначе изображения будут похожи. Это ограничение также действует для gpt-image-1 / gpt-image-1.5 и серии nano-banana. Модель dall-e-2 — единственная, нативно поддерживающая n > 1; dall-e-3 поддерживает только n = 1.
Ниже приведены реальные примеры, демонстрирующие возможности gpt-image-2.

Сценарий 1: Кинематографичный портрет

В подсказках можно использовать кинотермины (35mm пленка, малая глубина резкости, неоновый свет и т.п.) для точного управления атмосферой и текстурой. Пример вызова на Python:
Пример ответа:
Сгенерированное изображение:

Сценарий 2: Винтажный туристический постер (с рендерингом текста)

gpt-image-2 стабильно работает с типографикой и шрифтами, идеально подходит для создания постеров, меню, открыток с текстом.
Изображение по ссылке из поля url:

Модель точно воспроизвела визуальный стиль Art Deco, заголовки AMALFI и ITALIA 1958 четко и корректно отрисованы.

Сценарий 3: Сложная композиция и подсчет

Подсказка проверяет способность модели следовать структурированным инструкциям о количестве и расположении объектов.
Сгенерированное изображение:

Количество книг на трёх полках (1 / 3 / 7) полностью соответствует подсказке — это сложно стабильно получить в эпоху dall-e-3.

Сценарий 4: Иллюстративный стиль (горизонтальный формат)

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

Асинхронность и обратные вызовы

Вызов gpt-image-2 обычно занимает 60–90 секунд. Если не хочется держать открытым соединение, можно использовать механизм асинхронного обратного вызова через callback_url, процесс вызова идентичен другим моделям.

Серия моделей Nano Banana

Серия nano-banana основана на модели Gemini и подключена через тот же интерфейс /openai/images/generations. Для использования достаточно указать в поле model любое из значений из таблицы ниже.
Важно: поддерживаемые параметры Nano Banana адаптирован под протокол OpenAI и поддерживает только параметры: model, prompt, size.
  • size маппится на внутренний aspect_ratio по таблице; неуказанные размеры по умолчанию 1:1:
    • 1024x1024 / 512x512 / 256x2561:1
    • 1792x102416:9
    • 1024x17929:16
  • Не поддерживаются параметры n, quality, style, response_format, background, output_format — они игнорируются.
  • Возвращаемая структура соответствует формату OpenAI (data[].url), но поле created всегда 0, b64_json не возвращается, revised_prompt всегда совпадает с исходным prompt.

Базовый вызов

Пример ответа:
Сгенерированное изображение доступно по ссылке из поля url:

Обновление до флагманской модели nano-banana-pro

Достаточно изменить model на nano-banana-pro, остальные параметры остаются без изменений:
Пример ответа:

Асинхронный обратный вызов

Механизм callback_url работает и с nano-banana, процесс вызова идентичен другим моделям, см. раздел Асинхронный обратный вызов.

Базовое использование

Далее можно заполнить соответствующие поля в интерфейсе, как показано на скриншоте:

При первом использовании API необходимо заполнить минимум три поля: authorization — выбирается из выпадающего списка, model — выбирается модель OpenAI DALL-E, подробности о моделях приведены выше, и prompt — текст подсказки для генерации изображения. Справа отображается сгенерированный код вызова, который можно скопировать и запустить, либо нажать кнопку «Try» для теста.

Пример вызова на Python:
Пример ответа:
Пояснения к полям ответа:
  • created — ID задачи генерации изображения, уникальный идентификатор.
  • data — содержит информацию о сгенерированном изображении.
В data находится конкретная информация о сгенерированном изображении, поле url содержит ссылку на изображение.

Параметр качества изображения quality

Далее рассмотрим, как задать параметры качества изображения. Параметр quality имеет два значения: standard — стандартное качество, и hd — более детализированное и согласованное изображение. Пример установки параметра качества в standard:

Справа отображается сгенерированный код вызова, который можно скопировать или протестировать кнопкой «Try».

Пример вызова на Python:
Пример ответа:
Изображение с параметром качества standard:

Аналогично, установив quality в hd, получаем изображение с более детализированными и согласованными деталями:

Параметр размера изображения size

Также можно задать размер генерируемого изображения. Пример установки размера 1024x1024:

Справа отображается сгенерированный код вызова, который можно скопировать или протестировать кнопкой «Try».

Пример вызова на Python:
Пример ответа:
Изображение с размером 1024x1024:

Аналогично, размер 1792x1024 даёт изображение с другим соотношением: Можно задавать и другие размеры, подробности см. в документации на сайте.

Параметр стиля изображения style

Параметр style имеет два значения: vivid — более яркое и живое изображение, и natural — более естественное. Пример установки style в vivid:

Справа отображается сгенерированный код вызова, который можно скопировать или протестировать кнопкой «Try».

Пример вызова на Python:
Пример ответа:
Изображение с параметром стиля vivid:

Аналогично, параметр natural даёт более естественное изображение:

vivid даёт более живую и насыщенную картинку по сравнению с natural.

Параметр формата ссылки на изображение response_format

Параметр response_format имеет два варианта: b64_json — ссылка на изображение в Base64-кодировке, и url — обычная ссылка на изображение. Пример установки response_format в url:

Справа отображается сгенерированный код вызова, который можно скопировать или протестировать кнопкой «Try».

Пример вызова на Python:
Пример ответа:
Ссылка из поля url доступна для прямого просмотра: ссылка на изображение

Аналогично, при установке response_format в b64_json возвращается Base64-кодированное изображение:

Асинхронный обратный вызов

Поскольку генерация изображений через OpenAI Images Generations API может занимать продолжительное время, при длительном отсутствии ответа HTTP-соединение остается открытым, что увеличивает нагрузку на систему. Поэтому API поддерживает асинхронный обратный вызов. Схема работы: клиент при запросе указывает поле callback_url. API сразу возвращает ответ с полем task_id — идентификатором задачи. По завершении генерации результат отправляется POST-запросом в формате JSON на указанный callback_url, включая task_id для связывания результата с задачей. Пример настройки: Webhook — это HTTP-сервис, принимающий запросы. Для демонстрации можно использовать публичный сервис https://webhook.site/, где после открытия сайта вы получите уникальный URL Webhook, например: Скопируйте URL, например https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab. Далее укажите callback_url в запросе:
Ответ сразу:
Через некоторое время в Webhook можно увидеть результат генерации:
В ответе есть поле task_id и поле data с результатом, что позволяет связать ответ с запросом.

Обработка ошибок

При ошибках API возвращает соответствующий код и сообщение. Например:
  • 400 token_mismatched: неверный запрос, возможно, отсутствуют или некорректны параметры.
  • 400 api_not_implemented: неверный запрос, возможно, отсутствуют или некорректны параметры.
  • 401 invalid_token: неавторизован, неверный или отсутствующий токен.
  • 429 too_many_requests: превышен лимит запросов.
  • 500 api_error: внутренняя ошибка сервера.

Пример ответа с ошибкой

Заключение

В этом документе вы узнали, как использовать OpenAI Images Generations API для простой работы с официальной функцией генерации изображений OpenAI DALL-E. Надеемся, что этот материал поможет вам эффективно интегрировать и использовать API. Если возникнут вопросы, пожалуйста, обращайтесь в нашу техническую поддержку.