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.

Сценарій один: кінематографічний портрет

У підказках можна використовувати кінематографічні терміни (35mm плівка, мала глибина різкості, неонове світло тощо), щоб точно контролювати атмосферу та якість текстури. Приклад виклику коду Python:
Згенероване зображення можна напряму отримати через поле url у відповіді:

Оновлення до флагманської моделі nano-banana-pro

Потрібно лише змінити model на nano-banana-pro, інші параметри повністю залишаються такими ж:
Приклад відповіді:

Асинхронний зворотний виклик

Механізм асинхронного зворотного виклику callback_url також ефективний для nano-banana, процес виклику повністю такий самий, як і для інших моделей. Детальніше дивіться розділ Асинхронний зворотний виклик нижче.

Базове використання

Далі можна заповнити відповідний вміст у інтерфейсі, як показано на зображенні:

Під час першого використання цього API нам потрібно заповнити щонайменше три поля: одне з них — 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 , чтобы получить изображение, показанное ниже:

Можно увидеть, что изображения, созданные с помощью vivid, имеют более яркий и реалистичный вид по сравнению с natural.

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

Последний параметр формата ссылки на изображение response_format также имеет два варианта, первый b64_json — это кодирование ссылки на изображение в Base64, другой url — это обычная ссылка на изображение, которую можно просмотреть напрямую. Ниже параметр формата ссылки на изображение установлен как url , конкретная настройка показана на рисунке ниже:

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

Пример кода вызова Python:
Після виклику ми виявили, що результат повернення виглядає наступним чином:
Повернений результат відповідає вмісту базового використання. Можна побачити, що посилання на згенероване зображення з параметром формату зображення url має вигляд URL зображення, який можна безпосередньо відкрити, а вміст зображення показано нижче:

Виконуючи ті самі дії, достатньо лише змінити параметр формату посилання на зображення на b64_json, і можна отримати посилання на зображення після кодування Base64. Конкретний результат показано нижче:

Асинхронний зворотний виклик

Оскільки час генерації зображень через OpenAI Images Generations API може бути відносно довгим, якщо API протягом тривалого часу не відповідає, HTTP-запит буде постійно підтримувати з’єднання, що призведе до додаткового споживання системних ресурсів. Тому цей API також підтримує асинхронний зворотний виклик. Загальний процес такий: коли клієнт надсилає запит, додатково вказується поле callback_url. Після того як клієнт надсилає API-запит, API одразу повертає результат, що містить поле task_id, яке представляє поточний ідентифікатор завдання. Коли завдання буде завершено, результат генерації зображення буде надіслано клієнту через POST JSON на вказаний клієнтом callback_url, де також буде міститися поле task_id, таким чином результат завдання можна буде пов’язати за ідентифікатором. Нижче ми розглянемо, як виконати конкретні операції за допомогою прикладу. Перш за все, Webhook-зворотний виклик — це сервіс, який може приймати HTTP-запити. Розробник повинен замінити його на URL власного HTTP-сервера. Для зручності демонстрації тут використовується відкритий приклад вебсайту Webhook https://webhook.site/. Відкривши цей сайт, можна отримати Webhook URL, як показано на рисунку: Скопіювавши цей URL, його можна використовувати як Webhook. У цьому прикладі використовується https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab. Далі ми можемо встановити поле callback_url як наведений вище Webhook URL і одночасно заповнити відповідні параметри, як показано в наступному коді:
Після натискання кнопки запуску можна побачити, що результат буде отримано негайно, як показано нижче:
Трохи зачекавши, ми можемо побачити результат генерації зображення за 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. Якщо у вас є будь-які питання, будь ласка, звертайтеся до нашої команди технічної підтримки.