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: офіційний канал, стабільний та відповідний. Підтримує реальну роздільну здатність 2K / 4K, оплата за кожне зображення, ціна в 2 рази вища за стандартну gpt-image-2. Якщо лінія недоступна, повертається помилка, автоматичне зниження не відбувається.
  • gpt-image-2:reverse: повністю еквівалентно стандартному gpt-image-2, з кращим співвідношенням ціни та якості, ціна залишається незмінною.

Підтримувані значення size

gpt-image-2 перевіряє лише формат size, якщо це не auto або порожній рядок, то потрібно відповідати формату WIDTHxHEIGHT (наприклад, 1024x1024, 2048x1152, 800x600); будь-яка інша форма поверне 400. Всі розміри (1K / 2K / 4K / індивідуальні) оплачуються за одне зображення, без додаткової плати за розмір. Обмеження розміру: індивідуальні розміри повинні відповідати кратності 16 для ширини та висоти, довга сторона ≤ 3840, загальна кількість пікселів ≤ 8,294,400, перевищення межі поверне 4xx.
Явно передаючи size: "auto", платформа спланує полотно в безперервному пропорційному просторі та визначить за наступним пріоритетом: чіткі пікселі або пропорції в підказках, стандарт найменування (папір / друк / позиція платформи / реклама / пристрій / фотографія / кіно), звичаї медіа, і лише в останню чергу — інтерпретація композиції. Тому, окрім звичних 1:1, 4:5, 9:16, 21:9, також можуть бути збережені непередбачені пропорції, такі як 1.91:1, 1.85:1, 2.39:1, ISO папір 1:√2; остаточний розмір буде автоматично відкориговано до кратності 16, що підтримується сервісом, та піксельного бюджету. Якщо автоматичне визначення недоступне, буде повернуто до стандартного формату моделі, що не завадить генерації. Якщо пропустити поле size, буде використано стандартний формат моделі; якщо є суворі вимоги до пікселів, все ж рекомендується передавати WIDTHxHEIGHT безпосередньо. Вихід у 1K не гарантує суворе вирівнювання пікселів — ви передаєте 1024x1024, але можете отримати 1254x1254, пропорція залишається незмінною. Якщо ви знову передасте це як size, оплата залишиться незмінною. Одноразовий виклик 4K зазвичай потребує 4–8 хвилин, рекомендується використовувати асинхронний зворотний виклик callback_url, описаний нижче.
Щодо параметра n gpt-image-2 підтримує n > 1 (значення 1–10): один запит може повернути та оплатити відповідну кількість зображень. Щоб результати відрізнялися, рекомендується одночасно передавати різні prompt або seed. Це також стосується gpt-image-1 / gpt-image-1.5, а також серій nano-banana / nano-banana-2-lite / nano-banana-2 / nano-banana-pro; dall-e-3 підтримує лише n = 1. Зверніть увагу, що response_format=b64_json підтримує лише n=1, при n>1 використовуйте стандартне повернення URL. Якщо деякі зображення не вдалося згенерувати, буде повернуто та оплачено лише успішні частини.
Нижче наведено кілька різних прикладів, щоб наочно відчути можливості gpt-image-2.

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

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

Сцена друга: Вінтажний туристичний постер (з текстовою обробкою)

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

Можна побачити, що модель не лише точно відтворила візуальний стиль постера в стилі Art Deco, але й текст заголовка AMALFI та ITALIA 1958 був чітко та правильно відрендерений.

Сцена третя: Складна композиція та підрахунок

Наступна підказка використовується для тестування здатності моделі дотримуватись структурованих інструкцій, таких як “кількість” та “позиція”.
Згенероване зображення виглядає так:

Можна побачити, що кількість книг на трьох полицях (1 / 3 / 7) повністю відповідає підказці, що є важким завданням для dall-e-3.

Сцена четверта: Стиль ілюстрації (горизонтальний)

Вказуючи художні медіа та емоційні ключові слова, можна направити модель на створення стилізованої ілюстрації.
Згенерована горизонтальна ілюстрація виглядає так:

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

gpt-image-2 зазвичай потребує 60–90 секунд для одного виклику. Якщо ви не хочете підтримувати довге з’єднання, можна використовувати механізм асинхронного зворотного виклику callback_url, процес виклику такий же, як і для інших моделей.

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

Серія nano-banana є моделлю генерації зображень на базі Gemini, яка підключена через той же інтерфейс /openai/images/generations, без необхідності перемикати кінцеву точку, просто змініть model на будь-який з наведених нижче.
Важливо: Діапазон підтримуваних параметрів Nano Banana підключається до протоколу OpenAI через адаптаційний шар, у порівнянні з gpt-image-* підтримує лише такі параметри: model, prompt, size, n.
  • size буде відображено на внутрішній aspect_ratio, не вказані розміри зменшаться до 1:1:
    • 1024x1024 / 512x512 / 256x2561:1
    • 1792x102416:9
    • 1024x17929:16
  • Не підтримуються параметри quality, style, response_format, background, output_format тощо; якщо їх вказати, вони будуть проігноровані. n > 1 підтримується (1–10), поверне та нарахує відповідну кількість зображень.
  • Структура повернення дотримується формату 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 - це підказка, яку ми вводимо для генерації зображення. Ви також можете помітити, що праворуч є відповідний код виклику, ви можете скопіювати код і безпосередньо виконати його, або просто натиснути кнопку «Спробувати» для тестування.

Приклад коду виклику на Python:
Після виклику ми отримали наступний результат:
У відповіді є кілька полів, описаних нижче:
  • created, ID, що генерує це зображення, використовується для унікальної ідентифікації цього завдання.
  • data, містить інформацію про результати генерації зображення.
Серед data є конкретна інформація про згенероване зображення, де url - це детальне посилання на згенероване зображення, як показано на малюнку.

Параметр якості зображення quality

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

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

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

З аналогічною операцією, просто встановивши параметр якості зображення на hd, можна отримати зображення, як показано на малюнку нижче:

Можна побачити, що hd генерує зображення з більш детальними і більш узгодженими характеристиками, ніж standard.

Параметр розміру зображення 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, конкретний результат виглядає так:

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

Оскільки час генерації зображень API OpenAI може бути відносно довгим, якщо API довго не відповідає, HTTP запит буде постійно підтримувати з’єднання, що призводить до додаткових витрат системних ресурсів, тому цей API також надає підтримку асинхронних зворотних викликів. Загальний процес: коли клієнт ініціює запит, додатково вказується поле callback_url, після ініціювання запиту API негайно повертає результат, що містить інформацію про поле task_id, що представляє поточний ID завдання. Коли завдання завершено, результат генерації зображення буде надіслано на вказаний клієнтом callback_url у форматі POST JSON, в якому також міститься поле task_id, таким чином результати завдання можна пов’язати за 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. Якщо у вас є будь-які питання, будь ласка, звертайтеся до нашої команди технічної підтримки.