dall-e-2, gpt-image-1, новейшую gpt-image-2, а также модели из серии nano-banana / nano-banana-2-lite / nano-banana-2 / nano-banana-pro, подключаемые через тот же интерфейс.
В этом документе в основном описывается процесс использования OpenAI Images Edits API, с помощью которого мы можем легко использовать официальные функции редактирования изображений OpenAI.
Процесс заявки
Чтобы использовать OpenAI Images Edits API, сначала перейдите в консоль Ace Data Cloud и получите ваш API Token для резервного копирования.
Если вы еще не вошли в систему или не зарегистрированы, вы будете автоматически перенаправлены на страницу входа, где вас пригласят зарегистрироваться и войти. После завершения вы будете автоматически возвращены на текущую страницу.
Один API Token позволяет вызывать все услуги платформы, не нужно отдельно запрашивать для каждой услуги. При первой заявке предоставляется бесплатный лимит, чтобы вы могли попробовать; при недостатке лимита можно пополнить общий баланс в консоли.
📘 Полная документация: OpenAI Images Edits API →
Модель GPT-Image-2
gpt-image-2 в сценариях редактирования изображений имеет очень заметные улучшения по сравнению с gpt-image-1:
- Структура остается более стабильной: при смене кожи, цветовой гаммы или фона почти не нарушается оригинальная компоновка и композиция изображения.
- Текст сохраняется более точно: изображения с текстом, такие как инфографика, постеры, меню и т.д., остаются четкими и читаемыми после редактирования.
- Поддержка прямой передачи URL: помимо традиционной загрузки файлов
multipart/form-data,gpt-image-2также дополнительно поддерживает передачу URL изображений в формате JSON, что позволяет не загружать изображения на локальный компьютер, что идеально подходит для интеграции на сервере. - Поддержка прямой передачи base64: как и в официальной версии, поле
imageтакже может принимать base64 (например,data:image/png;base64,...или чистый base64), что позволяет редактировать локальные изображения без предварительной загрузки на хостинг. - Поддержка высококачественной перерисовки: можно передать оригинальное изображение 1K и запросить вывод 2K / 4K с помощью параметра
size, модель будет одновременно увеличивать изображение в процессе редактирования.
Официальный маршрут / Обратный вариант (: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
Ограничения интерфейса редактирования по size полностью совпадают с интерфейсом генерации — gpt-image-2 требует, чтобы size был auto, пустым или соответствовал формату WIDTHxHEIGHT, любые другие формы вернут 400. Все размеры (1K / 2K / 4K / пользовательские) оплачиваются за каждое изображение независимо от разрешения оригинала и запрашиваемого значения size.
Жесткие ограничения на пользовательские размеры также применимы: ширина и высота должны быть кратны 16, длина стороны ≤ 3840, общее количество пикселей ≤ 8,294,400.
Например: если оригинальное изображение1024x1024, при передачеsizeкак2048x2048, модель перерисует и выведет 2K изображение; при передачеsizeкак3840x2160будет выведено 4K горизонтальное изображение; передачаautoили пропуск приведет к выбору модели. Все три случая имеют одинаковую стоимость.
О параметреНиже приведены два различных примера, чтобы почувствовать возможности редактированияnИнтерфейс редактированияgpt-image-2в настоящее время не поддерживаетn > 1: этот параметр будет тихо проигнорирован, независимо от того, передаете ли выn=1илиn=10, один запрос всегда вернет 1 изображение и будет взиматься плата только за 1 изображение. Если вам нужно получить несколько вариантов редактирования, пожалуйста, инициируйте несколько запросов параллельно. Это ограничение также применимо кgpt-image-1/gpt-image-1.5, а также к сериямnano-banana/nano-banana-2-lite/nano-banana-2/nano-banana-pro.dall-e-2в настоящее время является единственной моделью редактирования, которая изначально поддерживаетn > 1.
gpt-image-2.
Способ вызова 1: JSON + URL изображения (рекомендуется)
Прямо отправьте запрос в форматеapplication/json, поле image заполните URL одной картинки, модель загрузит это изображение и отредактирует его в соответствии с prompt.
Например, вот это оригинальное изображение, созданное с помощью gpt-image-2 в качестве научно-популярного справочника:


Подсказка: полеimageтакже поддерживает передачу массива, например,"image": ["url1", "url2", "url3"], максимум можно передать 16 изображений для одновременного редактирования.
Прямой ввод base64:image(и каждый элемент массива) может быть не только URL, но и base64 —data:image/png;base64,...или чистый base64, что подходит для локальных изображений, которые не нужно загружать на хостинг. Например:
Способ вызова два: JSON + несколько изображений
gpt-image-2 поддерживает одновременное использование нескольких изображений для генерации конечного результата, например, объединение нескольких фотографий продуктов в одну корзину подарков:
Пример сценария: смена стиля + сохранение структуры
Вот еще один пример, где деревянная полка заменяется на современную плавающую полку, но строго сохраняется количество и расположение книг на каждом уровне. Исходное изображение (деревянная полка, сгенерированная с помощьюgpt-image-2):

task_id: e9544dba-727e-44a2-81e1-223d49869380):

Способ вызова три: multipart/form-data (совместимо с OpenAI SDK)
Если вы уже используете официальный OpenAI Python SDK, прежний способ загрузкиmultipart/form-data также применим, просто измените model на gpt-image-2:
OPENAI_BASE_URL установить на https://api.acedata.cloud/openai, а OPENAI_API_KEY установить на полученный токен:
Модели серии Nano Banana
Серияnano-banana также подключена к /openai/images/edits в сценариях редактирования, просто измените model на любое из значений в таблице ниже.
Важно: Поддерживаемые параметры Nano Banana подключается к протоколу OpenAI через адаптер, поддерживает только следующие параметры:model,prompt,image.
imageможно загрузить черезmultipart/form-data(внутри worker будет преобразован вdata:<mime>;base64,...для передачи вверх), также можно передать строку URL изображения через поле формы.- Параметры
mask,n,size,response_formatне поддерживаются; если они указаны, будут проигнорированы.- Структура ответа соответствует формату OpenAI (
data[].url), ноcreatedфиксирован на0, и не будет возвращеноb64_json,revised_promptвсегда равен исходномуprompt.
Вызов через форму + URL изображения

Вызов через форму + локальный файл
Асинхронный обратный вызов
Механизм асинхронного обратного вызоваcallback_url также работает для nano-banana, процесс вызова полностью аналогичен другим моделям, подробности см. в разделе Асинхронный обратный вызов.
Основное использование
Теперь можно использовать код для вызова, ниже приведен пример вызова через CURL:authorization, которое можно выбрать из выпадающего списка. Другой параметр — это model, model — это категория модели OpenAI, которую мы выбираем, здесь у нас в основном 1 модель, подробности можно посмотреть в предоставленных моделях. Еще один параметр — это prompt, prompt — это текст, который мы вводим для генерации изображения. Последний параметр — это image, этот параметр требует путь к изображению, которое нужно отредактировать, изображение показано ниже:

OPENAI_BASE_URL, которую можно установить как https://api.acedata.cloud/openai, и другую переменную для учетных данных OPENAI_API_KEY, значение которой берется из authorization, в Mac OS можно установить переменные окружения следующими командами:
gift-basket.png, конкретный результат будет следующим:

dall-e-2, gpt-image-1 и gpt-image-2, из которых gpt-image-2 является рекомендуемой моделью, подробности см. в разделе Модель GPT-Image-2.
Асинхронный обратный вызов
Поскольку время редактирования изображений API OpenAI Images Edits может быть относительно долгим, если API долго не отвечает, HTTP-запрос будет поддерживать соединение, что приведет к дополнительному потреблению системных ресурсов, поэтому этот API также предоставляет поддержку асинхронного обратного вызова. Общий процесс: когда клиент инициирует запрос, дополнительно указывается полеcallback_url, после того как клиент инициирует API-запрос, API немедленно возвращает результат, содержащий информацию о поле task_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 на указанный Webhook URL, а также заполнить соответствующие параметры, как показано в следующем коде:
task_id, поле data содержит такие же результаты редактирования изображения, как и при синхронном вызове, с помощью поля task_id можно связать задачи.
Обработка ошибок
При вызове API, если возникнет ошибка, API вернет соответствующий код ошибки и информацию. Например:400 token_mismatched: Неверный запрос, возможно, из-за отсутствующих или недействительных параметров.400 api_not_implemented: Неверный запрос, возможно, из-за отсутствующих или недействительных параметров.401 invalid_token: Неавторизован, недействительный или отсутствующий токен авторизации.429 too_many_requests: Слишком много запросов, вы превысили лимит частоты.500 api_error: Внутренняя ошибка сервера, что-то пошло не так на сервере.

