Skip to main content
POST
Image editing: edit a reference image or fuse two images
Интерактивный Playground справа поддерживает загрузку локальных изображений. Введите свой API-ключ в поле Authorization (формат: Bearer sk-xxx), выберите файл image, заполните prompt и model и отправьте запрос.
🔴 Этот эндпоинт принимает только загрузку файлов multipart/form-dataОтправка JSON на /v1/images/edits (с image в виде URL, data URI или чистого base64) возвращает 400:
URL изображений не поддерживаются в качестве входных данных. Если у вас есть только URL, сначала скачайте его на свой сервер, а затем загрузите файл. Для загрузки файла хостинг изображений не требуется — просто отправьте локальный файл.
Сценарий использования: эта страница предназначена для редактирования референсного изображения или объединения двух изображений. Чтобы генерировать только по тексту, используйте Text-to-Image API.
⚠️ Для двух изображений имена полей должны быть image + image2, а не image[]При использовании двух референсных изображений назовите первое поле image, а второе — image2. Повторение image[], повторение image или добавление поля mask вернут ошибку 400 File must be attached in a form field with a name starting with 'image'.Это означает, что отправка нескольких изображений через OpenAI SDK с помощью client.images.edit(image=[f1, f2]) не работает (он отправляет image[]). Редактирование одного изображения через SDK работает корректно.
Те же запрещенные параметры, что и для text-to-image: не отправляйте response_format, seed или negative_prompt (400). Ответ всегда data[0].b64_json (PNG).

Примеры кода

Python (OpenAI SDK · одно изображение)

Python (requests · одно изображение)

Python (слияние двух изображений · image + image2)

cURL

Node.js (fetch + FormData)

Справочник параметров

Размер на выходе, если параметр опущен: результат сохраняет соотношение сторон оригинала с привязкой к значениям, кратным 16, например, при входном разрешении 1344×756 на выходе будет 1360×768. Для локальных правок, где необходимо сохранить композицию, не передавайте width / height.

Результаты редактирования и составление prompt

Эндпоинт редактирования сохраняет композицию, цвета и детали оригинала и изменяет только то, что указано в prompt:
Пример редактирования с помощью MAI-Image-2.6-Flash: цвет чайника изменен с кремового на кобальтово-синий, все остальное без изменений
Для слияния двух изображений ссылайтесь на image / image2 как на «image 1 / image 2» в prompt. В наших тестах сохранение сходства людей лишь умеренное (черты лица могут смещаться), поэтому сначала проверьте работу на небольшой выборке, если важно портретное сходство.

Формат ответа

Поля ответа
  • b64_json — это обычный base64 без префикса data:, который декодируется в PNG.
  • При n > 1 массив data содержит несколько элементов; не считывайте только data[0].
  • url и revised_prompt не возвращаются.
Не сверяйте тарификацию с usage: он содержит плейсхолдеры (prompt_tokens всегда равен 1000 × количество изображений). Редактирование стоит столько же, сколько text-to-image, и тарифицируется за каждое изображение; определяющим является счет в консоли APIYI.

Авторизации

Authorization
string
header
обязательно

API key from the APIYI console

Тело

multipart/form-data
model
enum<string>
по умолчанию:MAI-Image-2.6-Flash
обязательно

Model ID (case-sensitive)

Доступные опции:
MAI-Image-2.6-Flash,
MAI-Image-2.6
prompt
string
обязательно

Edit instruction. State what to change and that everything else stays the same

Пример:

"Change the teapot to a deep cobalt blue glaze, keep everything else identical"

image
file
обязательно

Reference image file (the first one, "image 1" in the prompt). png / jpg / webp

image2
file

Optional second reference image ("image 2" in the prompt), for two-image fusion

width
integer

Optional output width. Same rules as text-to-image: each side ≥ 768, width × height ≤ 2,359,296, sent together with height

Требуемый диапазон: x >= 768
height
integer

Optional output height, same rules as width

Требуемый диапазон: x >= 768
n
integer
по умолчанию:1

Number of images. Works on this endpoint, billed per image

Требуемый диапазон: x >= 1
Пример:

1

Ответ

Image generated

created
integer

Creation timestamp

Пример:

1791000788

data
object[]

Image results; length equals n

usage
object

Placeholder values, not for billing reconciliation. prompt_tokens is always 1000 × images