메인 콘텐츠로 건너뛰기
POST
Image Editing / Multi-image Fusion / Batch Sequence
하나의 엔드포인트, 여러 모드: Seedream에는 별도의 /v1/images/edits 엔드포인트가 없습니다. 편집, 다중 이미지 융합, 배치 시퀀스는 모두 POST /v1/images/generations를 통해 실행됩니다. 이 페이지의 Playground는 Text-to-Image와 동일한 엔드포인트를 사용하며, 차이는 본문에 있는 image 및 sequential_image_generation 파라미터뿐입니다.
모드:
  • 단일 이미지 편집 — image: ["url"] + sequential_image_generation: "disabled"
  • 다중 이미지 융합 — image: ["url1", "url2", ...] + disabled
  • 배치 시퀀스 — sequential_image_generation: "auto" + sequential_image_generation_options.max_images: N
  • 이미지-시퀀스 — 두 가지를 결합합니다: image 배열 + auto + max_images
🖥️ 브라우저 Playground 제한 (b64_json 모드만 해당)기본 response_format: "url" 모드에서는 Playground가 정상적으로 작동합니다(응답은 임시 BytePlus TOS 링크일 뿐입니다). response_format: "b64_json"로 전환하면 응답에 수 MB의 base64 문자열이 포함되어 브라우저 Playground에 请求时发生错误: unable to complete request가 표시될 수 있습니다 — 실제로 요청은 성공한 것입니다; 브라우저가 이렇게 긴 base64 문자열을 렌더링하지 못할 뿐입니다.권장 작업 흐름:
  • 이미지만 보고 싶으신가요? 기본 url 모드를 유지하십시오 — Playground가 링크를 직접 반환합니다(24시간 이내에 자체 저장소로 다운로드해야 합니다).
  • b64_json이 필요하신가요? 아래 코드 샘플을 복사하여 로컬에서 실행하십시오 — 코드는 이미지를 자동으로 디코딩하여 파일로 저장합니다.
⚠️ OpenAI gpt-image-2 편집과의 주요 차이점
  • multipart/form-data 업로드는 없습니다 — 먼저 이미지를 OSS 또는 공개 이미지 호스트에 업로드한 다음, image 배열에 URL을 전달하십시오
  • image는 URL 배열이며, 반복되는 image[] 필드가 아닙니다(OpenAI의 multipart/form-data 형식과는 다릅니다)
  • mask 필드가 없습니다 — Seedream은 알파 채널 마스크 인페인팅을 지원하지 않으며, 전체 이미지는 프롬프트에 의해 다시 작성됩니다
  • 총 개수의 하드 제한: 입력 참조 + 출력 ≤ 15개 이미지
📎 다중 이미지 순서는 중요합니다image 배열에 있는 URL의 순서가 프롬프트에서 참조하는 「이미지 1 / 이미지 2 / 이미지 3」이 됩니다. 순서를 명시적으로 지정하십시오:
이미지 1의 의상을 이미지 2의 복장으로 바꾸고, 이미지 3의 조명을 유지하십시오.
영어 프롬프트가 가장 잘 작동합니다(모델은 주로 영어로 학습되었습니다). 다만 표현이 모호하지 않다면 중국어도 지원됩니다.

코드 예시

extra_body에 대한 설명(중요 — 추가 중첩 레이어로 오해하지 마십시오)image, sequential_image_generation 및 watermark는 OpenAI SDK의 images.generate()에서 표준 매개변수가 아니므로, Python SDK에서는 이를 전송하려면 반드시 extra_body 내부에 넣어야 합니다.하지만 extra_body은 SDK의 매개변수 컨테이너일 뿐이며, 해당 필드는 요청 본문의 최상위 수준에서 model 및 prompt과 동일한 수준으로 평탄화되고 병합됩니다. 실제로 전송되는 JSON은 아래 cURL 예시와 동일하며(image은 최상위 수준에 위치합니다), 요청에 실제 "extra_body": {...} 중첩은 없습니다.OpenAI SDK를 사용하지 않고 대신 JSON을 직접 구성하는 경우(requests / fetch / 기타), extra_body을 작성하지 마십시오. 대신 image 및 다른 필드를 model와 동일한 수준에 배치하십시오.

Python (OpenAI SDK · 단일 이미지 편집)

Python (OpenAI SDK · 다중 이미지 융합)

Python (OpenAI SDK · 일괄 시퀀스)

cURL (다중 이미지 융합)

Node.js (fetch · 일괄 시퀀스)

참조 이미지는 base64가 아닌 공개 URL로 전달하십시오(2026-09-11부터 강조)image 배열의 항목이 URL인 경우 요청 본문은 몇 KB에 불과하며, BytePlus가 싱가포르 리전에서 사용자의 이미지를 직접 다운로드합니다(확인 결과: 가져오기에 사용된 IP는 BytePlus에 속하며 APIYI 게이트웨이는 관여하지 않습니다). 항목이 data:image/...;base64,... 문자열인 경우 고해상도 참조 이미지 몇 장만으로도 본문 크기가 20~30MB에 쉽게 도달합니다. 이 본문은 먼저 APIYI 게이트웨이에 전체 업로드된 다음 싱가포르로 전달되어야 합니다. 국경 간 업로드가 느리면 요청 본문을 읽는 제공업체의 수신 제한 시간인 600초를 초과하여 400 Error when parsing request과 함께 실패합니다. 게이트웨이가 base64를 사용자가 다운로드할 수 있는 링크로 변환해 주지 않으므로 전체 요청이 실패하며 URL 모드로 대체되지도 않습니다.
  • ✅ 이미지를 자체 객체 스토리지 또는 이미지 호스팅 서비스에 호스팅하고, 인증 없이 일반 GET으로 가져올 수 있는 공개 URL을 전달하십시오. 각 이미지는 약 10MB 이하로 유지하십시오.
  • ⚠️ base64가 불가피한 경우 먼저 압축하십시오. 긴 변은 2048px 이내로 유지하고, 품질 0.9로 다시 인코딩하며, 여러 이미지의 총 크기는 6MB 이하로 유지하십시오.
  • ❌ 20MB를 초과하는 base64 본문을 전송하지 말고, 사설 네트워크 주소나 로그인이 필요한 링크를 전달하지 마십시오(BytePlus는 가져오기에 실패하면 InvalidParameter: Error while downloading을 반환합니다).

파라미터 참조

다중 이미지 및 시퀀스 모드의 개수 제약

반복적 정제: 이전 출력의 URL을 다음 입력으로 넣고, 새 편집 지시와 함께 제공하여 점진적으로 정제합니다. 각 라운드는 이미지당 과금되므로 누적 비용에 유의하십시오.

5.0 Flash 레이어 분리 (투명 레이어)

seedream-5-0-flash-260915은(는) 완성된 이미지를 배경 베이스와 투명 레이어로 분리된 개별 요소로 분리할 수 있어, 재배치, 배경 교체 및 에셋 재사용에 유용합니다. prompt에 투명 배경을 요청해도 알파 채널이 생성되지 않으므로, 투명 에셋이 필요한 경우 이 기능을 사용하십시오.
테스트 결과 (2026-09-24, UTC+8):
  • 1개의 참조 이미지를 사용했을 때, data 배열은 12개의 이미지를 반환했습니다. 첫 번째는 요소가 제거되고 채워진 배경 베이스(파일명 끝부분: _base.png, RGB)이며, 나머지 11개는 각각 고유 크기로 잘라낸 하나의 요소를 담고 있는 RGBA 투명 레이어(_layer_1.png부터)입니다
  • 1K에서는 약 78초가 소요되었으며, 2K에서 동일한 요청을 수행했을 때는 15분이 지나도 아무것도 반환되지 않았지만 12개 이미지에 대해 $0.216가 여전히 과금되었습니다. 1K을(를) 사용하고 클라이언트 타임아웃을 300초 이상으로 설정하십시오
  • 레이어 분리는 실패할 수 있습니다. 동일한 이미지로 시도했을 때 약 60초 후 400 오류가 반환된 적이 있습니다(the image content could not be processed for layer decomposition). 실패 시에는 과금되지 않으므로, 다시 시도하시면 됩니다
  • 베이스에서 제거된 영역은 모델에 의해 채워지므로 상업적 사용 전에 검토하십시오
레이어 분리는 출력 이미지당 과금됩니다: 반환된 이미지당 $0.018의 비용이 발생합니다. 한 번의 요청에서 12개의 이미지가 반환되어 $0.216의 비용이 청구되었습니다(usage.generated_images 값은 12였습니다). 레이어 수는 이미지 콘텐츠에 따라 달라지며 사전에 설정할 수 없습니다. 또한 동일한 이미지라도 매번 다르게 분리될 수 있으므로(동일 이미지가 12개로 분리된 후 14개로 분리되어 각각 $0.216 및 $0.252가 과금됨), 12개 이상의 예산을 책정해 두는 것이 좋습니다.

응답 형식

⚠️ data 배열 길이는 실제 출력 개수를 반영합니다
  • sequential_image_generation: "disabled" → 단일 요소 data
  • sequential_image_generation: "auto" + max_images: N → 일반적으로 N개 요소입니다(프롬프트가 더 적은 결과를 생성하면 경우에 따라 더 적을 수 있습니다)
  • 과금은 usage.generated_images 기준이며, max_images 기준이 아닙니다
편집 요청은 텍스트-이미지와 동일하게, 출력 이미지당 과금됩니다. 참조 이미지 입력은 별도로 과금되지 않습니다.

인증

Authorization
string
header
필수

API Key obtained from APIYI Console

본문

application/json
model
enum<string>
기본값:seedream-5-0-260128
필수

Model ID

사용 가능한 옵션:
seedream-5-0-260128,
seedream-5-0-lite-260128,
seedream-4-5-251128,
seedream-4-0-250828,
seedream-5-0-pro-260628,
seedream-5-0-flash-260915
prompt
string
필수

Editing / fusion / sequence instruction. For multi-image scenarios, refer to images explicitly as 'image 1 / image 2'

예시:

"Replace the clothing in image 1 with the outfit from image 2."

image
string<uri>[]

Reference image URL array. Up to 10 images (per official 4.5 / 5.0-pro / 5.0-flash docs; an 11th returns 400 on 5.0-flash in our tests). Note: input + output count ≤ 15

Maximum array length: 10
예시:
sequential_image_generation
enum<string>
기본값:disabled

Generation mode switch. disabled = single output (default); auto = batch sequence, paired with max_images. Not accepted by 5.0-pro / 5.0-flash — any value returns 400

사용 가능한 옵션:
disabled,
auto
sequential_image_generation_options
object

Batch sequence options. Effective only when sequential_image_generation=auto

size
string
기본값:2K

Output size. Preset tiers (vary by version):

  • 1K (4.0 / 5.0-pro / 5.0-flash) / 1.5K (5.0-flash only) / 2K (all) / 3K (5.0 only) / 4K (4.5, 4.0)

Or exact pixel size WxH, total pixels ∈ [1280×720, 4096×4096], aspect ratio ∈ [1/16, 16]

예시:

"2K"

response_format
enum<string>
기본값:url
사용 가능한 옵션:
url,
b64_json
output_format
enum<string>
기본값:jpeg

Output format. The 5.0 series supports png/jpeg; 4.5/4.0 only jpeg

사용 가능한 옵션:
png,
jpeg
watermark
boolean
기본값:false
layer_decomposition
boolean
기본값:false

5.0-flash only: pass 1 reference image to get a background base plus several RGBA transparent layers. Billed per output image (12 in one test); use size 1K and a timeout of 300 seconds or more

stream
boolean
기본값:false

Streaming output. Recommended for long prompts and multi-image sequence scenarios. Not accepted by 5.0-pro / 5.0-flash (returns 400)

응답

Edited image generated successfully

model
string
예시:

"seedream-5-0-260128"

created
integer
예시:

1768518000

data
object[]

Result array. disabled mode returns 1 element; auto mode typically returns max_images elements (may be fewer)

usage
object

Billed by generated_images actual count, NOT by max_images