Skip to main content
POST
Edit or fuse one or more reference images by instruction
Использование Playground: введите свой API Key в Authorization (формат Bearer sk-xxx). Вставьте публичный URL референсного изображения 1 в input_image; для нескольких референсов заполните URL дополнительных изображений в input_image_2input_image_8. Затем заполните prompt / model и отправьте. Playground принимает только URL; для входных данных base64 data URL скопируйте приведенные ниже примеры кода и запустите их локально.
Используйте эту страницу для «редактирования или объединения одного или нескольких reference images». Редактирование изображений FLUX поддерживает два варианта:
  • Вариант A (Playground этой страницы, рекомендуется): JSON + input_image до /v1/images/generations (общий с text-to-image — отправка input_image активирует режим редактирования). Работает для всех моделей FLUX (включая Kontext, подтверждено) и поддерживает объединение нескольких референсов (input_image_2 ~ input_image_8).
  • Вариант B: multipart-эндпоинт /v1/images/edits, совместимый с OpenAI (см. раздел «Вариант B» ниже) — редактирование одного изображения, напрямую совместимое с client.images.edit() в OpenAI SDK.
Для чистого text-to-image см. эндпоинт Text-to-Image.
⚠️ Ключевые различия / примечания (Вариант A)
  • Путь эндпоинта: /v1/images/generations (общий с text-to-image; также существует совместимый с OpenAI однокадровый /v1/images/edits эндпоинт — см. Вариант B)
  • Content-Type: application/json (эндпоинт /edits в Варианте B вместо этого использует multipart/form-data)
  • Каждое поле референсного изображения является строкой: input_image / input_image_2input_image_8 принимают публичный URL (рекомендуется) или data URL data:image/...;base64,xxx
  • Максимальное число референсных изображений зависит от модели: FLUX.2 [pro/max/flex] до 8, FLUX.2 [klein] до 4, FLUX.1 Kontext нативно поддерживает 1
  • Каждое изображение ≤ 20MB или 20MP, форматы png / jpg / webp
  • Входное разрешение: минимум 64×64, максимум 4MP; размеры должны быть кратны 16
  • URL результата действителен только 10 минутdata[0].url необходимо скачать немедленно
  • Если aspect_ratio не указан, размеры выхода будут соответствовать первому входному изображению
📎 Порядок нескольких референсов важенНумерация input_image / input_image_2 / input_image_3точно соответствует индексу, используемому для “image 1 / image 2 / image 3” в вашем prompt:
Поместите человека из image 1 в сцену из image 2, применив цветовую палитру image 3.
Каждое значение должно быть общедоступным URL (рекомендуется ≤ 20MB) или data URL data:image/png;base64,xxx.

Примеры кода

cURL (слияние двух изображений · URL)

cURL (слияние трёх изображений · URL)

cURL (редактирование одного изображения · Kontext)

cURL (локальный файл · data URL base64)

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

Python (requests · локальный файл как base64)

Python (OpenAI SDK · передача input_image через extra_body)

Node.js (fetch · слияние нескольких референсов)

Вариант B: совместимый с OpenAI эндпоинт редактирования (multipart)

Помимо JSON-варианта выше, редактирование изображений FLUX также поддерживает стандартный эндпоинт редактирования OpenAI Images API, напрямую совместимый с client.images.edit() (проверено 2026-07-04 с flux-kontext-max, генерация выполнена успешно):
  • Эндпоинт: POST https://api.apiyi.com/v1/images/edits
  • Content-Type: multipart/form-data (устанавливается автоматически SDK и curl -Fне задавайте его вручную, иначе boundary будет потерян и разбор завершится с ошибкой)
Серия FLUX.1 Kontext принимает только одно входное изображение; для объединения нескольких референсов используйте Вариант A (input_image ~ input_image_8). Вариант B на данный момент проверен на серии Kontext.

Параметры запроса (поля формы)

Пример cURL

Пример на Python (OpenAI SDK)

Пример на Node.js (fetch + FormData)

Формат ответа идентичен Варианту A (data[0].url, подписанный URL BFL, действительный 10 минут — в production загружайте его на стороне сервера в собственное хранилище).

Какой вариант следует использовать?

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

Стратегии с несколькими референсами

Загрузите несколько снимков одного и того же персонажа в качестве референсов — модель автоматически сохраняет особенности идентичности. Отлично подходит для рекламных кампаний, комиксных панелей, fashion-редакций.
Одно изображение с содержимым + одно изображение стиля, с явным референсом в prompt:
Объедините объекты из нескольких изображений в одну новую сцену:
Перенесите наряд с одного изображения на другого субъекта:
Итеративное редактирование: скачайте data[0].url, передайте его обратно как input_image в следующем вызове с новой инструкцией и постепенно уточняйте результат. Каждый раунд тарифицируется как одно изображение.

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

⚠️ data[0].url действует только 10 минут
  • URL размещен на delivery-eu.bfl.ai / delivery-us.bfl.ai, срок действия подписи истекает через 10 мин
  • CORS отключен — браузер fetch заблокирован
  • В production необходимо выполнять загрузку на стороне сервера в ваш собственный OSS / CDN
  • Эндпоинт редактирования FLUX не возвращает b64_json — только url
Запросы на редактирование стоят столько же, сколько text-to-image (за изображение, а не за token). Multi-reference не взимает дополнительную плату за дополнительные изображения (в отличие от редактирования OpenAI gpt-image-2).

Вопросы и ответы

Запрос дошел до эндпоинта /v1/images/edits (вариант B), но шлюз не смог найти изображение в теле запроса. Типичные причины:
  1. В multipart form нет поля файла image, либо имя поля указано неверно (например, image[], file)
  2. Content-Type: multipart/form-data был установлен вручную без boundary (не задавайте этот заголовок самостоятельно при использовании SDK / fetch / curl)
  3. Конвертация изображения на стороне клиента не удалась, но запрос все равно был отправлен (проверьте, что поле image действительно содержит больше 0 байт)
  4. Вы хотели отправить изображение через JSON, но попали в /edits — JSON + input_image идет в /v1/images/generations (вариант A)

Авторизации

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

API Key from the APIYI Console

Тело

application/json
model
enum<string>
по умолчанию:flux-2-pro
обязательно

FLUX model ID. For multi-reference fusion prefer flux-2-pro / flux-2-max; for single-image edits also flux-kontext-max / flux-kontext-pro.

Доступные опции:
flux-2-pro,
flux-2-max,
flux-2-flex,
flux-2-klein-9b,
flux-2-klein-4b,
flux-kontext-max,
flux-kontext-pro
prompt
string
обязательно

Edit / fusion instruction. In multi-reference scenarios, refer to images by index: 'image 1' / 'image 2' / 'image 3' map to input_image / input_image_2 / input_image_3.

Пример:

"Naturally blend these two images"

input_image
string
обязательно

Public URL for reference image 1 (required). Use plain URLs in the Playground; for local code you can also pass a data:image/png;base64,xxx data URL.

Пример:

"https://static.apiyi.com/apiyi-logo.png"

input_image_2
string

Public URL for reference image 2 (optional)

input_image_3
string

Public URL for reference image 3 (optional)

input_image_4
string

Public URL for reference image 4 (optional)

input_image_5
string

Public URL for reference image 5 (optional)

input_image_6
string

Public URL for reference image 6 (optional)

input_image_7
string

Public URL for reference image 7 (optional)

input_image_8
string

Public URL for reference image 8 (optional, only FLUX.2 [pro/max/flex] supports up to 8)

aspect_ratio
string

Aspect ratio, e.g. 1:1 / 16:9 / 9:16 / 4:3 / 3:4. Defaults to first input image.

seed
integer

Fix for reproducibility.

safety_tolerance
integer

Moderation level. 0 = strictest, 6 = most permissive. Default 2.

Требуемый диапазон: 0 <= x <= 6
output_format
enum<string>

Output format. Default jpeg.

Доступные опции:
jpeg,
png
prompt_upsampling
boolean

Auto-upsample the prompt. Default false.

steps
integer

Only flux-2-flex. Inference steps. Default 50.

Требуемый диапазон: 1 <= x <= 50
guidance
number

Only flux-2-flex. Guidance scale. Default 4.5.

Требуемый диапазон: 1.5 <= x <= 10

Ответ

Image generated

created
integer
Пример:

1776832476

data
object[]

Result array (single image per call)