Skip to main content
POST
Edit or fuse one or more reference images by instruction
플레이그라운드 사용법: API Key를 Authorization에 입력합니다(형식 Bearer sk-xxx). 기준 이미지 1의 공개 URLinput_image에 붙여넣고, 여러 레퍼런스를 사용할 경우 추가 이미지의 URL을 input_image_2input_image_8에 채웁니다. 그런 다음 prompt / model를 채워 전송합니다. 플레이그라운드는 URL만 허용하며, base64 데이터 URL 입력은 아래 코드 예제를 복사해 로컬에서 실행해야 합니다.
이 페이지의 용도는 “하나 이상의 레퍼런스 이미지를 편집하거나 융합”하는 것입니다. FLUX 이미지 편집은 두 가지 옵션을 지원합니다.
  • 옵션 A(이 페이지의 플레이그라운드, 권장): JSON + input_image/v1/images/generations까지(텍스트-이미지와 공유됩니다 — input_image를 보내면 편집 모드가 활성화됩니다). 모든 FLUX 모델(검증된 Kontext 포함)에서 작동하며, 멀티 레퍼런스 융합(input_image_2 ~ input_image_8)을 지원합니다.
  • 옵션 B: OpenAI 호환 멀티파트 엔드포인트 /v1/images/edits(아래 “옵션 B” 섹션 참고) — 단일 이미지 편집용이며, OpenAI SDK의 client.images.edit()와 직접 호환됩니다.
순수 텍스트-이미지는 Text-to-Image 엔드포인트를 참고합니다.
⚠️ 주요 차이점 / 참고 사항(옵션 A)
  • 엔드포인트 경로: /v1/images/generations(텍스트-이미지와 공유됩니다. OpenAI 호환 단일 이미지 /v1/images/edits 엔드포인트도 있습니다 — 옵션 B를 참고하십시오)
  • Content-Type: application/json(옵션 B의 /edits 엔드포인트는 대신 multipart/form-data을 사용합니다)
  • 모든 레퍼런스 이미지 필드는 문자열입니다: input_image / input_image_2input_image_8는 공개 URL(권장) 또는 data:image/...;base64,xxx 데이터 URL을 허용합니다
  • 레퍼런스 이미지 상한은 모델별로 다릅니다: 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”에 사용되는 인덱스와 정확히 동일합니다:
image 1의 사람을 image 2의 장면에 배치하고, image 3의 색상 팔레트를 적용합니다.
각 값은 공개적으로 접근 가능한 URL(20MB 이하 권장) 또는 data:image/png;base64,xxx 데이터 URL이어야 합니다.

코드 예제

cURL (두 이미지 융합 · URL)

cURL (세 이미지 융합 · URL)

cURL (단일 이미지 편집 · Kontext)

cURL (로컬 파일 · base64 data URL)

Python (requests · 두 이미지 융합)

Python (requests · 로컬 파일을 base64로)

Python (OpenAI SDK · extra_body를 통해 input_image 전달)

Node.js (fetch · 다중 참조 융합)

옵션 B: OpenAI 호환 편집 엔드포인트 (멀티파트)

위의 JSON 옵션 외에도, FLUX 이미지 편집은 표준 OpenAI Images API 편집 엔드포인트도 지원하며, client.images.edit()와 직접 호환됩니다(flux-kontext-max로 2026-07-04 검증, 생성 성공):
  • 엔드포인트: POST https://api.apiyi.com/v1/images/edits
  • Content-Type: multipart/form-data(SDK와 curl -F에서 자동으로 설정됩니다 — 수동으로 설정하지 마십시오, 그렇지 않으면 바운더리가 손실되어 파싱에 실패합니다)
FLUX.1 Kontext 시리즈는 입력 이미지 1장만 허용합니다. 여러 참조를 융합하려면 옵션 A(input_image ~ input_image_8)를 사용하십시오. 옵션 B는 현재 Kontext 시리즈에서 검증되었습니다.

요청 매개변수 (폼 필드)

cURL 예시

Python (OpenAI SDK) 예시

Node.js (fetch + FormData) 예시

응답 형식은 옵션 A(data[0].url, 10분 동안 유효한 BFL 서명 URL — 운영 환경에서는 서버 측에서 자체 저장소로 다운로드)와 동일합니다.

어떤 옵션을 사용해야 합니까?

매개변수 참조

다중 참조 전략

동일한 캐릭터의 여러 샷을 참조로 업로드하면 모델이 신원 특징을 자동으로 보존합니다. 광고 캠페인, 만화 패널, 패션 화보에 적합합니다.
콘텐츠 이미지 1장 + 스타일 이미지 1장, prompt에 명시적으로 참조를 넣습니다:
여러 이미지의 오브젝트를 하나의 새로운 장면으로 결합합니다:
한 이미지의 의상을 다른 대상에 교체합니다:
반복 편집: data[0].url를 다운로드한 뒤, 다음 호출에서 새 지시와 함께 input_image로 다시 전달하고 점진적으로 다듬습니다. 각 라운드는 이미지 1장으로 과금됩니다.

응답 형식

⚠️ data[0].url은 유효 기간이 10분뿐입니다
  • URL은 delivery-eu.bfl.ai / delivery-us.bfl.ai에 호스팅되며, 서명은 10분 후 만료됩니다
  • CORS is disabled — 브라우저 fetch는 차단됩니다
  • 프로덕션에서는 서버 측에서 자체 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)