소개
Seedream 5.5 레이어는 완성된 PNG 또는 JPEG를 불투명 베이스 이미지와 별도의 투명 요소로 나눕니다. 디자인이 이미 있고 요소를 개별적으로 다루고 싶을 때 이미지 레이어 분해를 사용하세요. 편집에서 사용하는 여러 레퍼런스 대신 하나의 원본을 받는 엔드포인트입니다.
ByteDance는 베이스 이미지와 편집 가능한 투명 PNG 레이어 최대 99개를 설명합니다. 저희는 잡지 표지, 메뉴와 세 줄짜리 포스터를 분해했습니다. 일부 결과는 요청 상한을 채웠지만 포스터는 더 적은 요소를 반환해 출력 개수가 상한이라는 점을 보여 줍니다.
핵심 기능 및 하이라이트
베이스와 투명 요소
베이스는 불투명하고 분리된 요소는 PNG 투명도를 사용합니다. output_format으로 jpeg를 선택하면 베이스 인코딩이 바뀌지만 레이어는 투명 PNG로 반환됩니다. 합성용 파일을 저장할 때 이 차이를 기억하세요. 반환된 세트에서 베이스와 레이어는 역할이 다릅니다.
각 레이어에는 이름, 경계 상자와 쌓이는 순서를 나타내는 zIndex가 있습니다. 베이스에는 경계 상자가 없습니다. 디자인 도구에서 분리된 요소를 배치할 때 이 정보를 이미지 파일과 함께 보관하세요. 반환된 이미지는 각각 고유한 화면비를 유지합니다.
베이스를 포함한 상한
num_outputs는 2~100을 받으며 기본값은 10입니다. 분해를 계획할 때 베이스도 출력 1장으로 세세요. 상한이 6이면 베이스와 투명 레이어 5장까지 가능합니다. 값을 높이면 보통 더 세밀하게 나뉘지만 실제 반환 장수는 더 적을 수 있습니다.
저희 테스트에서 메뉴는 상한 6장에 베이스 1장과 레이어 5장을 반환했습니다. 세 줄 포스터는 상한 5장에 베이스 1장과 텍스트 레이어 3장을 반환했습니다. 상한을 높여도 모든 출력 자리를 채워야 하는 것은 아니라는 사례입니다.
요청하면 영어 이름 사용
이 페이지의 예시는 모든 레이어 이름과 설명을 영어로 요청합니다. 저희 테스트에서도 이 지시로 영어 이름을 받았습니다. 디자인 작업에 영어가 필요하면 “모든 레이어 이름과 설명을 영어로 작성하세요”라고 적으세요. 이름 언어에 관한 요청과 분리할 요소 목록을 구분하세요.
원본과 해상도 설정
512 x 512픽셀 이상의 PNG 또는 JPEG 1장을 제공하세요. 해상도는 auto, 1k, 1.5k, 2k 중 선택하며 기본값은 auto입니다. 이는 레이어 엔드포인트의 선택 항목이며 생성·편집에서 지원하는 4k는 레이어 해상도에 포함되지 않습니다.
| 설정 | 분해에서 하는 역할 |
|---|---|
image_url | 완성된 원본 이미지 제공 |
| prompt | 선택적으로 요소나 대상 영역 지정 |
| resolution | auto, 1k, 1.5k, 2k 중 선택 |
num_outputs | 베이스를 포함한 전체 반환 장수 제한 |
output_format | 베이스 이미지에 PNG 또는 JPEG 선택 |
요청 파라미터
| 파라미터 | 필수 | 설명 |
|---|---|---|
image_url | 예 | 현재는 검수가 적용되며, 검수 없는 버전도 곧 제공됩니다. 검수에서 차단된 요청은 거절되며 과금되지 않습니다. 1자 이상 |
prompt | 아니요 | 선택 입력입니다. 분리할 요소를 최대 5,000자까지 지정하세요. 3자 이상 · 5000자 이하 |
num_outputs | 아니요 | 베이스를 포함한 전체 반환 이미지 수의 상한을 정합니다. 2~100장 중 선택하며 기본값은 10장입니다. |
resolution | 아니요 | auto, 1k, 1.5k, 2k 중에서 선택하며 기본값은 auto입니다. 반환되는 이미지는 각각 고유한 화면비를 유지합니다. |
output_format | 아니요 | 불투명 베이스의 형식을 png(기본값) 또는 jpeg로 고릅니다. 어느 쪽을 선택해도 분리된 레이어는 투명 PNG로 유지됩니다. |
요금
해상도 등급과 베이스를 포함한 실제 반환 장수에 따라 과금합니다. 견적 시 요청한 출력 상한에 해당하는 최대 금액을 확보하고, 정산 시 차액을 해제합니다. auto 설정은 2k 요율로 확보합니다.
| 사양 | 요금 |
|---|---|
| $0.0195 / 장 |
| $0.0195 / 장 |
| $0.027 / 장 |
| $0.027 / 장 |
활용 사례
잡지 표지를 디자인 요소로 분리
저희 NOIR 표지는 상한 6장에서 6장을 반환했습니다. 배경, 인물, 제호, 일본어 문구, 호수 정보와 바코드로 나뉘었습니다. 사진과 글자가 함께 있는 표지에 Seedream 5.5 레이어를 사용하는 구체적인 사례입니다.
디자인에 따로 필요한 요소가 구분돼 있다면 이 결과를 계획의 참고 자료로 삼으세요. 중요한 부분은 선택 입력인 지시문에 명시하세요. 원본 이미지도 보관하면 반환된 요소를 원래 레이아웃과 비교할 수 있습니다.
추가 합성을 위해 메뉴 분해
KAZE RAMEN 레이어 예시는 완성된 메뉴 이미지에서 시작합니다. 저희 테스트는 상한 6장에서 불투명 베이스와 투명 레이어 5장을 반환했습니다. 나중에 메뉴 요소를 함께 배치하려면 한 요소만 고르지 말고 반환된 전체 세트를 저장하세요.
포스터의 문구 줄 분리
저희 세 줄 포스터 테스트에서는 각 줄에 해당하는 투명 레이어와 베이스가 나왔습니다. 요청 상한은 5장이었지만 총 4장이었습니다. 상한을 보장된 파일 목록으로 생각하지 말고 완료 후 반환된 요소 수를 확인하세요.
반환된 메타데이터로 요소 정리
이름으로 레이어를 식별하고 경계 상자로 위치를 파악하며 zIndex로 쌓이는 순서를 확인하세요. 이 값을 해당 파일과 연결해 보관하세요. 주변 디자인 작업에서 영어 라벨을 쓴다면 영어 이름을 요청해 정리할 수 있습니다.
프롬프트 가이드 및 실전 팁
요소를 파악한 완성 원본 선택
파일이 PNG 또는 JPEG이고 최소 512 x 512픽셀인지 먼저 확인하세요. 개수를 설정하기 전에 따로 필요한 요소를 정하세요. 표지라면 배경, 인물, 제목, 보조 문구와 바코드 등 필요한 부분을 나열하세요.
원하는 분리 방식 명시
prompt는 선택 입력이므로 요소 목록 없이 원본만 제출할 수 있습니다. 특정 분리가 중요하면 “제호, 부제, 호수 정보와 바코드를 분리하세요”처럼 짧게 적으세요. 분해 후 어떤 요소를 다룰지 전달할 수 있습니다.
라벨 언어 직접 요청
영어 라벨이 필요하면 “레이어 이름을 영어로 반환하세요”라고 덧붙이세요. 표지와 메뉴 예시도 이런 지시를 사용합니다. 저희가 확인한 언어 결과는 반환된 레이어 이름에 관한 것이며 원본의 인쇄 문구를 번역하거나 바꿔야 한다는 뜻은 아닙니다.
경계 상자 태그로 영역 지정
대상 영역은 0~1000 좌표와 <bbox>x1 y1 x2 y2</bbox> 형식으로 지정하세요. 예를 들어 <bbox>0 0 1000 300</bbox>은 이미지 상단을 가로지르는 영역을 가리킵니다. 태그 뒤에 분리할 요소를 설명해 영역과 용도를 분명히 하세요.
필요한 요소에 맞춰 개수 선택
베이스와 레이어 5장을 계획했다면 상한을 6으로 고르세요. 더 세밀한 요소가 필요하면 상한을 높일 수 있습니다. 일반적으로 더 잘게 나뉘지만 이 설정은 보장 장수가 아닌 제한입니다. 다음 디자인 작업을 시작하기 전에 실제 반환 세트를 의도한 요소 목록과 비교하세요.
베이스 형식과 레이어 투명도 구분
필요한 베이스 파일에 맞춰 png 또는 jpeg를 고르세요. 이 선택이 분리된 레이어를 JPEG로 바꾸지는 않습니다. 어느 베이스 형식을 선택해도 레이어는 투명 PNG를 유지합니다. 전체 합성에 바탕 이미지가 필요하면 불투명 베이스를 보관하세요.
정산에 쓰이는 출력 개수 이해
레이어 요금은 해상도 등급과 베이스를 포함한 실제 반환 장수로 정해집니다. 견적 시 요청한 출력 상한에 해당하는 최대 금액을 확보하고 정산 시 차액을 해제합니다. 해상도 auto는 2k 요율로 확보합니다. 요청 설정을 고를 때 페이지에 표시된 요금을 확인하세요.
레이어 결과 전체 저장
베이스, 투명 PNG와 위치 정보를 함께 다운로드하세요. 선택 입력한 지시문과 출력 상한도 기록하세요. 원본 디자인, 분리 파일, 이름과 쌓이는 순서의 관계를 보존하면 다음 합성 작업에서 활용할 수 있습니다.
API 빠른 시작
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "bytedance/seedream-5.5/layer-decomposition",
"input": {
"image_url": "https://example.com/reference.png",
"num_outputs": 10,
"output_format": "png",
"resolution": "auto"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
인증, 전체 스키마, 폴링과 오류 처리는 API 레퍼런스에서 확인하세요.














