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).
Виклик здійснюється так само, як і для інших моделей, достатньо встановити поле 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 у 1K діапазоні, і вони не призведуть до зміни тарифу).
  • Інші рівні (1.5×): будь-які розміри, що не входять до вищезазначеного набору 1K, включно з рекомендованими 2K / 4K та будь-якими користувацькими WIDTHxHEIGHT.
Обмеження upstream для користувацьких розмірів: ширина і висота повинні бути кратними 16, довга сторона ≤ 3840, загальна кількість пікселів ≤ 8,294,400. Перевищення призведе до відмови з кодом 4xx.
Ви також можете передати size: "auto" або пропустити поле size, тоді модель вибере розмір за замовчуванням і тарифуватиметься за 1K. Вихідні розміри upstream у 1K діапазоні не гарантують точну відповідність пікселям — наприклад, якщо ви передали 1024x1024, може бути повернуто 1254x1254 з тим самим співвідношенням. Якщо повторно передати цей розмір, тарифікація залишиться 1K. Виклик у 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. dall-e-2 — єдина модель з нативною підтримкою n > 1; dall-e-3 підтримує лише n = 1.
Нижче наведено кілька реальних прикладів, що демонструють можливості gpt-image-2.

Сценарій 1: Кіно-портрет

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

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

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

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

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

Цей prompt перевіряє здатність моделі виконувати структуровані інструкції щодо кількості та розташування.
Згенероване зображення:

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

Сценарій 4: Ілюстративний стиль (горизонтальна орієнтація)

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

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

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

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

Серія nano-banana — це моделі генерації зображень на базі Gemini, підключені через той самий інтерфейс /openai/images/generations, без необхідності змінювати endpoint. Достатньо вказати у полі 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, процес виклику такий самий, як і для інших моделей (див. розділ Асинхронний зворотний виклик).

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

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

При першому використанні інтерфейсу потрібно заповнити принаймні три поля: authorization (вибирається зі списку), model (вибір моделі OpenAI DALL-E, тут доступна 1 модель, див. опис моделей), та prompt — текстову підказку для генерації зображення. Зверніть увагу, що праворуч відображається згенерований код виклику, який можна скопіювати та виконати, або натиснути кнопку «Try» для тестування.

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

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

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

Знову ж таки, праворуч доступний код виклику, який можна скопіювати або натиснути «Try» для тесту.

Приклад виклику на Python:
Відповідь:
Зображення з якістю standard:

Якщо встановити параметр якості в hd, отримаємо таке зображення:

hd забезпечує більш деталізовані та послідовні зображення порівняно зі standard.

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

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

Праворуч доступний код виклику:

Приклад виклику на Python:
Відповідь:
Зображення розміром 1024x1024:

Якщо встановити розмір 1792x1024, отримаємо інше зображення: Розмір зображення явно відрізняється. Можна встановлювати й інші розміри, деталі див. у документації.

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

Параметр стилю має два значення: vivid — більш яскраве, живе зображення, та natural — більш природне. Приклад встановлення стилю vivid:

Код виклику:

Приклад виклику:
Відповідь:
Зображення зі стилем vivid:

Якщо встановити стиль natural, отримаємо таке зображення:

vivid виглядає більш живим і яскравим, ніж natural.

Параметр формату посилання на зображення response_format

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

Код виклику:

Приклад виклику:
Відповідь:
Посилання на зображення у форматі url можна безпосередньо відкрити: зображення URL. Зображення:

Якщо встановити response_format в b64_json, отримаємо Base64-кодоване зображення:

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

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

Обробка помилок

Якщо при виклику API виникають помилки, 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. Якщо виникнуть питання, звертайтеся до нашої технічної підтримки.