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

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

Чтобы использовать OpenAI Images Generations API, сначала перейдите в консоль Ace Data Cloud, чтобы получить ваш API Token, который следует сохранить на всякий случай. Если вы еще не вошли в систему или не зарегистрированы, вы будете автоматически перенаправлены на страницу входа, где вас пригласят зарегистрироваться и войти. После завершения вы будете автоматически возвращены на текущую страницу. Один API Token позволяет вызывать все услуги платформы, не нужно отдельно запрашивать для каждой услуги. При первой заявке предоставляется бесплатный лимит, чтобы вы могли попробовать; если лимит исчерпан, вы можете пополнить общий баланс в консоли.
📘 Полная документация: OpenAI Images Generations 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).
Способ вызова полностью аналогичен другим моделям, просто установите поле model в gpt-image-2. В возвращаемом результате url — это постоянная ссылка на изображение, размещенная на platform.cdn.acedata.cloud, которую можно открыть в браузере или встроить на веб-страницу.

Официальный маршрут / Обратный вариант (:official / :reverse)

gpt-image-2 по умолчанию использует обратный маршрут. С помощью суффикса имени модели можно явно выбрать маршрут:
  • gpt-image-2:official: официальный маршрут. Поддерживает n > 1 (возвращает несколько изображений за раз) и истинное разрешение 2K / 4K, оплата за каждое изображение, цена составляет 2 раза больше, чем у стандартного gpt-image-2. В настоящее время доступно только через канал openai-hk, при недоступности маршрута возвращается ошибка, не происходит понижения до обратного маршрута.
  • gpt-image-2:reverse: полностью эквивалентно стандартному gpt-image-2 (обратный маршрут), используется для явного указания на использование обратного маршрута, цена остается неизменной.
Ограничения, упомянутые ниже в разделе “О параметре n”, применимы только к стандартному / обратному маршруту; gpt-image-2:official поддерживает n > 1 и оплату за изображение.

Поддерживаемые значения size

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

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

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

Сцена 2: Ретро-путешествие постер (с текстовой отрисовкой)

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

Можно увидеть, что модель не только точно воспроизвела визуальный стиль постера в стиле Арт Деко, но и текст заголовка 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 через адаптер и, по сравнению с gpt-image-*, поддерживает только следующие параметры: 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, процесс вызова полностью аналогичен другим моделям, подробности смотрите в разделе асинхронный обратный вызов.

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

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

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

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

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

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

Также вы можете заметить, что справа есть соответствующий код вызова, который вы можете скопировать и запустить, или просто нажать кнопку «Try» для тестирования.

Пример кода вызова на Python:
После вызова мы получаем следующий результат:
Возвращаемый результат соответствует содержимому основного использования, можно увидеть, что изображение с параметром качества standard выглядит следующим образом:

与上述相同操作,仅需将图片质量参数设置为 hd ,可以得到如下图所示的图片:

可以看到 hdstandard 生成的图片具有更精细的细节和更大的一致性。

图片大小尺寸参数 size

我们还可以设置生成图片的尺寸大小,我们可以进行下面的设置。 下面设置图片的尺寸大小为 1024 * 1024 ,具体设置如下图:

同时您可以注意到右侧有对应的调用代码生成,您可以复制代码直接运行,也可以直接点击「Try」按钮进行测试。

Python 样例调用代码:
调用之后,我们发现返回结果如下:
返回的结果与基本使用的内容一致,可以看到图片的尺寸大小为 1024 * 1024 的生成图片如下图所示:

与上述相同操作,仅需将图片的尺寸大小为 1792 * 1024 ,可以得到如下图所示的图片: 可以看到图片的尺寸大小很明显不一样,另外还可以设置更多尺寸大小,详情信息参考我们官网文档。

图片风格参数 style

图片风格参数 style 包含俩个参数,第一种 vivid 表示生成的图片是更加生动的,另一种 natural 表示生成的图片更加的自然一点。 下面设置图片风格参数为 vivid ,具体设置如下图:

同时您可以注意到右侧有对应的调用代码生成,您可以复制代码直接运行,也可以直接点击「Try」按钮进行测试。

Python 样例调用代码:
调用之后,我们发现返回结果如下:
返回的结果与基本使用的内容一致,可以看到图片风格参数为 vivid 的生成图片如下图所示:

与上述相同操作,仅需将图片风格参数为 natural ,可以得到如下图所示的图片:

可以看到 vividnatural 生成的图片具有更加生动逼真。

图片链接的格式参数 response_format

最后一个图片链接的格式参数 response_format 也有俩种,第一种 b64_json 是对图片链接进行 Base64 编码,另一种 url 就是普通的图片链接,可以直接查看图片。 下面设置图片链接的格式参数为 url ,具体设置如下图:

同时您可以注意到右侧有对应的调用代码生成,您可以复制代码直接运行,也可以直接点击「Try」按钮进行测试。

Python 样例调用代码:
После вызова мы обнаружили, что возвращаемый результат выглядит следующим образом:
Возвращаемый результат соответствует основному использованию, можно увидеть, что формат параметра ссылки на изображение url для сгенерированного изображения URL изображения доступен для прямого доступа, содержание изображения показано на следующем рисунке:

При аналогичной операции, просто изменив формат параметра ссылки на изображение на b64_json, можно получить результат с закодированной в Base64 ссылкой на изображение, конкретный результат показан на следующем рисунке:

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

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

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

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

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

Заключение

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