작성자 주석: 장면 생성, 연속 편집, 투명 소재, 포스터 레이어 분리라는 네 가지 작업을 조합하고 외부 오케스트레이션과 품질 검사를 더하면, 재사용 가능한 상품 이미지 제작 프로세스를 만들 수 있습니다.
이커머스 팀이 상품 이미지를 만들 때 어려운 점은 대개 “그럴듯한 이미지 한 장을 뽑아내는 것”이 아니라 그다음 단계에 있습니다. 운영팀은 배경을 바꿔야 하고, 디자인팀은 투명한 피사체가 필요하고, 광고 집행팀은 가격을 수정해야 하죠. 그때마다 이미지 전체를 다시 만들어야 할 수 있습니다. 바이트댄스가 2026년 11월 9일에 공개한 Seedream 5.5는 연속 편집, 네이티브 RGBA 투명 출력, 최대 99개 레이어 분리, 리치 텍스트 OCR을 하나의 모델에 담았습니다. 이 기능들은 상품 이미지 제작의 여러 단계와 정확히 맞닿아 있어요.
이 글은 발표회에서 나온 기능 목록을 그대로 옮긴 글이 아닙니다. 스테인리스 보온컵 하나를 예로 삼아 전 과정을 설명하면서, 실제 작업 순서에 따라 각 단계에서 어떻게 호출하고, 이전 단계의 출력을 어떻게 받아 쓰며, 최종적으로 무엇을 전달하는지 살펴봅니다. 글에서는 세 종류의 정보를 구분합니다. 공식적으로 공개한 기능, 제3자 실측 관찰, 그리고 이 글에서 설계한 자동화 워크플로예요.
핵심 가치: 이 글을 끝까지 읽으면 상품 원본 이미지에서 바로 전달 가능한 소재까지 이어지는 프로세스 설계를 얻을 수 있습니다. 여기에는 네 단계의 핵심 파라미터, 바로 고쳐 쓸 수 있는 중국어 프롬프트, 레이어 응답 필드를 재구성하는 방법, 출시 전에 설정해야 할 품질 검사 지점이 포함됩니다.

한 줄 요약: Seedream 5.5의 가치는 단순히 상품 이미지를 생성하는 데 있지 않습니다. 상품 비주얼 제작을 서로 이어 붙일 수 있는 여러 단계로 나누고, API 오케스트레이션과 다운스트림 디자인 도구로 완전한 프로세스를 조립할 수 있게 해 줍니다.
알아두기: 이 글에서 다루는 5개 용어
- 다중轮 편집: 이전 라운드에서 생성한 이미지를 다음 라운드의 입력으로 삼아, 조금씩 수정하는 방식입니다.
- 알파 채널: 이미지에서 각 픽셀의 투명도를 기록하는 채널입니다. RGBA의 A가 바로 이것이며, JPEG는 이 채널을 지원하지 않습니다.
- OCR: 이미지에서 텍스트 내용을 인식합니다. Seedream 5.5는 레이어를 분리할 때 텍스트의 위치와 대략적인 스타일도 추정합니다.
- z_index: 레이어 분리 시 반환되는 필드로, 레이어가 쌓이는 순서를 나타냅니다. 바탕 이미지가 0입니다.
- API: 프로그램이 서비스를 호출할 수 있게 해 주는 인터페이스입니다. 이 글의 자동화 워크플로는 모두 API 호출을 기반으로 합니다.
Seedream 5.5 상품 이미지 자동화가 한 번의 이미지 생성에만 의존할 수 없는 이유
보온병 상품 등록 사례를 들어 보면, 상품 하나에는 보통 다섯 가지 유형의 시각 자료가 필요해요. 흰색이나 단순한 배경의 대표 이미지, 라이프스타일 연출 이미지, 어떤 레이아웃에도 넣을 수 있는 투명 피사체, 제목과 가격이 포함된 마케팅 포스터, 그리고 대규모 프로모션 기간에 반복적으로 조정되는 버전입니다. 각 자료를 한 번의 이미지 생성으로 평면 이미지 전체 형태로 출력한다면, 이후 수정할 때마다 다시 생성해야 하고 상품 외관도 버전마다 달라질 수 있어요.
한 번의 이미지 생성에는 두 가지 구조적 문제가 있어요. 첫째, 변경을 제어할 수 없습니다. 배경만 바꾸고 싶은데 컵 뚜껑 구조나 로고까지 함께 다시 그려지는 경우가 있죠. 둘째, 소재를 재사용할 수 없어요. 포스터가 한 번 생성되면 상품, 텍스트, 장식이 같은 픽셀 레이어에 붙어 있어서 가격을 바꾸려면 전체를 다시 만들어야 합니다. 이는 바이트댄스가 발표 글에서 나열한 문제점이기도 해요. 부분 수정이 다른 영역에 영향을 주고, 여러 번 수정하면 주요 피사체가 달라지며, 수동 배경 제거가 필요하고, 평면 이미지는 레이어를 분리하기 어렵다는 점입니다.
Seedream 5.5의 접근 방식은 이런 문제들을 분리해서 다루는 거예요. 편집 단계에서는 수정하지 않은 영역을 유지하는 데 중점을 두고, 투명 출력으로 배경 제거 작업을 생략하며, 레이어 분리를 통해 평면 포스터를 재구성 가능한 소재로 되돌립니다. 하지만 모델은 “생성과 분해”만 담당하고, 오케스트레이션, 저장, 품질 검사, 최종 합성은 여전히 애플리케이션과 디자인 도구가 맡아야 해요.
Seedream 5.5 상품 이미지 자동화 전체 흐름: 한 장의 이미지가 어떻게 재사용 가능한 소재가 될까요?
먼저 전체를 살펴볼게요. 아래 흐름은 이 글에서 공식 API 기능을 기반으로 설계한 비즈니스 워크플로이며, 공식에서 제공하는 원클릭 기능이 아니에요:
- 상품 원본 사진 등록: 업무 시스템이 실제 상품 이미지, 상품 설명, 시각적 요구사항을 제공하고, 원본 이미지는 영구 보관해요.
- 장면 생성: 원본 이미지를 참조 이미지로 사용해 상품 메인 비주얼을 출력해요.
- 다중 라운드 편집: 이전 라운드의 출력이 다음 라운드의 입력이 되어 배경 교체, 조명 교체 같은 수정을 처리해요.
- 두 갈래 분기: 투명 소재 분기는 상품 원본에서 바로 RGBA PNG를 출력하고, 레이어 분할 분기는 완성된 포스터를 레이어로 나눠 레이어와 좌표를 얻어요.
- 디자인 합성: 다운스트림 프로그램이나 디자인 도구가 레이어, 좌표, OCR 정보를 읽어 다시 배치해요.
- 품질 검사 및 소재 아카이빙: 수동 검사나 규칙 기반 검사를 거친 뒤 버전별로 아카이빙해서 전달해요.

여기서 가장 중요한 설계 결론은 투명 소재와 레이어 분할은 각각 독립적으로 호출할 수 있는 두 갈래 분기이며, 반드시 순차적으로 실행할 필요가 없다는 점이에요. 텀블러의 투명 본체만 필요하다면 원본 상품 사진으로 바로 RGBA 소재를 생성하면 되고, 먼저 포스터를 만든 뒤에 분할할 필요가 없어요. 이미 상품, 제목, 가격, 장식이 모두 담긴 완성 포스터를 갖고 있고 그 안의 요소를 재사용하고 싶을 때만 레이어 분할을 호출하면 돼요.
📌 흐름 검증 제안: 구축 전에 APIYI apiyi.com의 통합 인터페이스로 각 단계의 요청을 한 번씩 실행해 보고, 파라미터와 반환 구조를 확인한 뒤 정식 오케스트레이션 시스템에 연결할지 결정하면 좋아요. 실제로 호출 가능한 이미지 모델은 플랫폼의 모델 목록을 기준으로 해요.
Seedream 5.5 상품 이미지 자동화 첫 단계: 참조 이미지로 상품 scene 생성하기
첫 단계의 입력은 보온병 원본 사진이고, 출력은 상세 페이지에 쓸 수 있는 scene 메인 비주얼이에요. 화산 방주(火山方舟)의 인터페이스 주소는 https://ark.cn-beijing.volces.com/api/v3/images/generations, 모델 ID는 doubao-seedream-5-5-261028이에요. BytePlus 국제판 문서에 나오는 모델 ID는 dola-seedream-5-5-261028이고, 서드파티 플랫폼의 모델명과 파라미터 지원 여부도 다를 수 있으니 호출 전에 꼭 확인해야 해요.
네 단계의 핵심 설정은 표 하나로 먼저 파악할 수 있어요:
| 단계 | 핵심 요청 필드 | 입력 | 출력 |
|---|---|---|---|
| Scene 생성 | image, prompt, size, background:"opaque" |
상품 원본 사진 | 완성된 scene 이미지 |
| 연속 편집 | 이전 라운드 data[].url을 이번 라운드 image로 사용 |
이전 라운드 출력 | 수정된 scene 이미지 |
| 투명 소재 | background:"transparent", output_format:"png" |
상품 원본 사진 | 알파 채널이 있는 PNG |
| 레이어 분리 | layer_decomposition:true, layer_decomposition_options |
완성된 포스터 한 장 | 배경 이미지 + 각 독립 레이어 |
일반 생성 작업의 기본 size는 2K이고, 1K나 1.5K를 지정할 수도 있으며, 제약 범위 안에서 너비와 높이를 직접 정할 수도 있어요(총 픽셀 약 92만~462만, 가로세로 비 1:16~16:1). 현재 공식 문서에는 4K 단계가 없어요. watermark의 기본값은 true이고 우측 하단에 “AI 생성” 표시를 붙여요. 끌지 말지는 여러분의 컴플라이언스 요구사항에 맞춰 결정해야 해요.
scene 생성 프롬프트(교육용 예시이며 실제 테스트 결과는 아니에요):
使用参考图中的不锈钢保温杯作为唯一商品主体,生成一张用于电商详情页的高端生活方式场景图。保温杯置于现代风格的浅色办公桌上,侧面自然窗光,真实摄影质感。严格保留商品原有杯身形状、杯盖结构、材质、颜色和标识。画面为 1:1,不添加额外商品。
프롬프트에 있는 “유일한 상품 주체”, “추가 상품을 넣지 말 것”은 없어도 되는 수식어가 아니에요. Segmind가 2026년 11월 11일 테스트에서 관찰한 바에 따르면, 운동화 한 켤레를 생활 scene에 넣었더니 결과가 두 켤레로 바뀌고 촬영 각도도 달라졌어요. 상품 이미지는 수량과 구조에 극도로 민감하기 때문에, 제약은 프롬프트에도 써야 하고 품질 검사에도 넣어야 해요.
Seedream 5.5 장면 생성 초간단 호출 예시
아래에서 Python으로 첫 번째 단계를 시연합니다. 이 예시는 OpenAI 호환 이미지 생성 경로를 사용하며, layer_decomposition 같은 확장 필드가 그대로 전달되는지, 모델명이 일치하는지는 사용하는 플랫폼의 문서를 기준으로 확인해야 합니다:
import requests
resp = requests.post(
"https://api.apiyi.com/v1/images/generations", # APIYI 통합 인터페이스
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"model": "doubao-seedream-5-5-261028", # 플랫폼 모델 목록 기준으로 확인
"prompt": "참조 이미지의 스테인리스 보온컵을 유일한 상품 주체로 사용……추가 상품을 추가하지 마세요.",
"image": "https://your-cdn.com/cup_original.png",
"size": "2K",
"background": "opaque",
"output_format": "png",
"response_format": "url",
"watermark": False,
},
timeout=120,
)
print(resp.json()["data"][0]["url"])
timeout을 넉넉하게 설정한 데는 이유가 있어요. 서드파티 관찰 결과에 따르면 단일 호출 소요 시간 편차가 매우 큽니다. Segmind는 이미지 한 장당 평균 약 24초를 보고했고, SeedRouter는 1K 출력이 29~47초, 2K 포스터 레이어 분해는 약 59초로 측정했어요. 이는 특정 플랫폼의 관찰일 뿐 통일된 기준으로 삼을 수는 없지만, 동기 블로킹 호출이 배치 작업에 적합하지 않다는 점을 충분히 보여줍니다.
🚀 빠른 시작: 팀에서 이미 OpenAI 호환 SDK를 사용하고 있다면, APIYI apiyi.com을 통해 API 키와 신규 사용자 무료 테스트 크레딧을 받을 수 있어요. 먼저 소량의 상품 이미지로 프롬프트 효과를 검증한 뒤 배치 규모를 확대하세요.
Seedream 5.5 상품 이미지 자동화 2단계: 연속 이미지 편집으로 반복 수정 처리
운영 담당자가 사무용 책상 장면을 보고 카페로 바꾸자고 제안했어요. 이 단계의 입력은 원본 사진이 아니라 1단계에서 이미 확정한 메인 비주얼이에요. 이전 라운드에서 반환된 data[].url을 다운로드해 저장한 뒤, 이번 라운드의 image로 제출하죠. 텍스트-이미지 변환과 단일 이미지 편집은 한 번에 한 장의 결과만 생성해요. 이른바 “연속 100회 편집”은 공식에서 시연한 기능일 뿐이고, 각 라운드는 독립적인 생성 호출이라서 워크플로가 매번 차례대로 제출해야 해요.
연속 편집 프롬프트를 쓸 때의 원칙은 이번 라운드에서 바뀌는 것만 쓰고, 반드시 유지해야 할 객체를 분명히 나열하는 것이에요.
사무용 책상 배경을 따뜻한 목재 카페 장면으로 바꾸고, 환경 배경과 환경 조명만 수정하세요. 보온 텀블러의 형태, 크기 비율, 색상, 뚜껑, 로고, 놓인 각도와 전체 구도를 그대로 유지하고, 상품이 항상 단일 주체가 되도록 하세요.
공식 문서에서는 RGB 이미지로 연속 편집을 할 때 background를 opaque로 설정하면 일반적으로 편집 일관성에 더 도움이 된다고 권장해요. 이유는 이렇게 이해하면 돼요. 편집 체인에서는 완전한 장면 이미지가 전달되는데, 투명 채널이 들어가면 라운드마다 불확실성이 한 겹 더 생기거든요. 그래서 이 글의 흐름에서는 투명 소재를 별도 브랜치에 두고, 편집 체인에는 넣지 않아요.
서드파티 실측에서는 양면의 신호가 나왔어요. 싱하이정보국(星海情报局)은 11월 11일 도우바오(Doubao) 웹 버전으로 외투 색상 변경과 배경 교체를 세 라운드 테스트했는데, 인물 자세와 의상에는 뚜렷한 드리프트가 없었어요. 다만 작성자는 100라운드까지는 테스트하지 못했다고 분명히 밝혔죠. Segmind는 단일 상품 이미지에 12라운드 편집을 했고, 배경 영역에서는 32레벨 임계값을 넘는 뚜렷한 픽셀 변화가 없었어요. 하지만 이미지 전체가 점점 어두워져서 12라운드는 2라운드 대비 평균 약 5.1 색상 레벨만큼 이동했어요. 또 다른 사례에서는 신발의 좁은 뒤꿈치 풀 루프에 글자를 넣을 때, 모델이 텍스트를 수용하려고 루프 구조를 바꿔버렸어요.
보온 텀블러 워크플로에 대입해 보면, 두 가지 엔지니어링 제안을 얻을 수 있어요.
- 각 라운드는 “확정된 버전”에서 출발하기, 무한정 이어 붙이지 않기. 확정한 메인 비주얼은 따로 보관하고, 문제가 생기면 해당 버전으로 되돌아가 다시 편집해야 해요.
- 편집 체인 길이를 제어하기. 예를 들어 라운드 수 상한을 정하고, 넘어서면 원본 이미지로 돌아가 장면을 다시 생성해서 색상 누적 드리프트를 피하는 거예요.
Seedream 5.5 상품 이미지 자동화 3단계: 투명 상품 에셋 직접 추출
투명 에셋 분기의 입력은 상품 원본 사진이며, 편집된 연출 이미지가 아니에요. 이렇게 얻은 피사체가 실제 상품에 가장 가까워서 상세 페이지 템플릿, 광고 레이아웃, 기타 합성 작업에 넣을 수 있어요. 핵심 설정은 단 두 가지예요:
{
"model": "doubao-seedream-5-5-261028",
"image": "https://your-cdn.com/cup_original.png",
"prompt": "提取参考图中的保温杯主体,去除桌面、背景、其他物品及其投影,保留完整杯身、杯盖和产品细节。输出单个独立商品素材,边缘自然清晰,背景完全透明,PNG 格式。",
"background": "transparent",
"output_format": "png",
"response_format": "url"
}
output_format은 반드시 png여야 한다는 점에 주의하세요. JPEG는 알파 채널을 지원하지 않아요. 이전 세대와 비교해 보면 Seedream 5.5는 텍스트 기반 투명 이미지 생성을 지원하고, 이미지 기반 투명 이미지 생성에는 참조 이미지를 최대 10장까지 사용할 수 있으며, 참조 이미지 자체에 알파 채널이 없어도 돼요. 반면 Seedream 5.0 Pro / Flash는 투명 출력 시나리오에서 알파 채널이 포함된 PNG 참조 이미지 단 한 장만 지원해요.

투명 에셋의 품질 검사는 눈으로 대충 훑어보는 것보다 더 세밀해야 해요. 공식 사례에는 눈올빼미 깃털 같은 복잡한 가장자리가 등장하지만, Segmind 테스트에서는 백팩이나 단단한 소재 상품의 투명 가장자리는 비교적 깔끔했고, 유리 제품에서 실제로 비쳐 보이는 투명함을 요구한 경우에는 두 번 모두 성공하지 못했어요. 보온병은 단단한 스테인리스라 난도가 비교적 낮지만, 유리컵이거나 투명 뚜껑이 있는 제품이라면 특히 꼼꼼히 확인해야 해요. 권장 검사 방법은 다음과 같아요:
- PNG를 각각 순수 검정, 순수 흰색, 컬러 배경 위에 겹쳐 보고 가장자리의 거친 부분과 남아 있는 그림자를 확인해요.
- 프로그램으로 알파 채널을 읽어 배경 영역이 완전히 0인지, 피사체 영역에 예상치 못한 반투명 구멍이 없는지 확인해요.
- 원본 이미지와 대조해 뚜껑, 손잡이, 로고 등 구조가 온전한지 확인해요.
Seedream 5.5 상품 이미지 자동화 4단계: 마케팅 포스터를 개별 레이어로 분리하기
프로모션 포스터는 이미 완성됐어요. 보온병 본체, 메인 제목, 서브 제목, 가격, 장식 그래픽, 배경이 모두 하나의 플랫 이미지 안에 들어 있죠. 이제 가격을 129에서 99로 바꾸거나, 중국어 포스터를 영어 버전으로 바꾸고 싶다고 해봐요. 이럴 때 레이어 분리를 호출합니다:
{
"model": "doubao-seedream-5-5-261028",
"image": "https://your-cdn.com/cup_poster.png",
"prompt": "将商品海报拆分为独立图层:商品主体、主标题、副标题、价格文字、装饰图形和背景。保持各元素原有位置、尺寸比例和视觉样式。商品主体及文字分别作为独立图层,其他背景元素保留在底图中,并自然补全被移除元素覆盖的区域。",
"layer_decomposition": true,
"layer_decomposition_options": {
"max_images": 15,
"text_recognition": true
}
}
자주 틀리는 제약 조건이 몇 가지 있어요. 레이어 분리는 PNG 또는 JPEG 입력 1장만 받고, 픽셀 범위는 512×512에서 6000×6000 사이예요. background 파라미터를 함께 넣으면 안 되는데, 넣으면 오류가 발생합니다. 기본 size는 auto이고, 출력 레이어는 항상 PNG이며 output_format은 베이스 이미지 형식만 결정해요. max_images는 2—100 값을 가지며 기본값은 30(베이스 이미지 포함)인데, 이건 상한선일 뿐 보장되는 개수는 아니에요. 공식 포스터 사례에서는 최대 15장으로 설정했지만 실제로는 13장(베이스 이미지 1장 + 레이어 12개)이 반환됐고, 그중 9개 텍스트 레이어에 OCR 결과가 담겨 있었어요.
Seedream 5.5 레이어 반환 필드 활용법
레이어를 분리하는 이유는 반환 필드를 프로그램에서 그대로 활용할 수 있기 때문이에요.
| 반환 필드 | 실제 용도 | 다운스트림 활용 방법 |
|---|---|---|
data[].url |
기본 이미지와 각 레이어 다운로드 | 24시간 이내에 자체 스토리지로 이전 |
data[].z_index |
중첩 순서, 기본 이미지는 0 | 오름차순으로 차례로 겹쳐 놓기 |
data[].name / description |
레이어 이름과 의미 설명 | “상품 본체”, “가격” 등의 레이어 자동 식별 |
bounding_box.absolute |
[left, top, right, bottom] 픽셀 좌표 |
원본 크기 캔버스에 위치 복원 |
bounding_box.normalized |
0—1000 정규화 좌표 | 새 캔버스 너비와 높이에 맞춰 위치 환산 |
text_recognition |
텍스트 레이어의 OCR 정보 정리 | 텍스트, 줄 위치, 대략적인 스타일 읽기 |
공식에서 제시하는 재조립 방법은 먼저 z_index=0인 기본 이미지를 놓고, 그다음 z_index 오름차순으로 투명 레이어를 겹치는 거예요. 레이어 너비는 right-left, 높이는 bottom-top이에요. 대상 캔버스가 1080×1350이라면 정규화 좌표의 left는 left / 1000 × 1080으로 환산해요.
OCR 구조는 text_recognition → text / lines[] → bounding_box / runs[] → style이고, style에는 similar_font_family, foreground_color, bold, italic, underline, strikethrough, shadow, translucent 등의 필드가 들어 있어요. 가격을 바꾸는 방법은 원래 가격 레이어를 숨기고, 그 위치와 색상, 유사 글꼴을 읽은 뒤 디자인 프로그램이 새 문구로 다시 그리는 거예요.
경계를 분명히 짚어둘게요: 이것은 PSD를 자동 생성하는 게 아니에요. similar_font_family는 단지 유사 글꼴을 판단한 결과라서 필기체나 아트 워드는 OCR 결과가 없을 수 있고, 모든 텍스트가 독립 레이어로 분리된다고 보장하지 않아요. 또한 레이어 분리는 실제 출력된 이미지 한 장마다 각각 과금되므로, 13장을 출력하면 13장으로 계산해요.

Seedream 5.5 상품 이미지 자동화, 네 단계 연결하기
네 단계가 각각 정상적으로 돌아가게 되면, 그다음에 풀어야 할 문제는 ‘연결’이에요. 각 단계가 무엇을 넘겨주는지, 언제 다음 단계를 실행해야 하는지, 문제가 생기면 어떻게 되돌릴지 말이죠. 아래 표는 입출력과 품질 검사 지점을 한자리에 정리한 거예요(어디까지나 엔지니어링 제안이고, 공식 규격은 아니에요):
| 단계 | 산출물 | 다음 단계 트리거 조건 | 권장 점검 항목 |
|---|---|---|---|
| 원본 이미지 입고 | 원본 사진, 상품 번호, 라이선스 정보 | 자료 완비 | 원본 크기, 라이선스, 번호 |
| 장면 생성 | 장면 키비주얼 PNG | 수동 확인 통과 | 수량, 형태, 색상, Logo |
| 연속 편집 | 라운드별 버전 PNG + 프롬프트 기록 | 운영 확인 또는 라운드 상한 도달 | 미지정 영역 변화, 색상 드리프트 |
| 투명 소재 | RGBA PNG | Alpha 검사 통과 | 피사체 완전성, 잔털(경계 흐림), 투명 재질 |
| 레이어 분리 | 배경 이미지, 레이어, 좌표 JSON, OCR | 레이어 수와 위치 적정 | 누락 분리, 배경 보완, 중첩 순서 |
| 디자인 합성 | 최종 포스터, 상세 페이지 소재 | 텍스트 재검수 통과 | 가격, 모델명, 브랜드 철자 |
| 아카이브 납품 | 버전 번호가 붙은 소재 패키지 | — | 목표 크기, 포맷, 버전 번호 |
몇 가지 엔지니어링 세부 사항은 미리 설계해두어야 해요. 첫째는 영속화예요. 생성된 이미지 URL은 유효 기간이 24시간이라, 제때 내려받아 다른 곳에 저장해두어야 하죠. 둘째는 버전 보존이에요. 최소한 원본 상품 사진, 확정된 키비주얼, 최종 디자인 소재 이렇게 세 가지 버전은 남겨두어야 해요. 셋째는 예외 처리예요. 타임아웃 시 재시도하고, 반환된 레이어 수가 이상하거나 품질 검사를 통과하지 못하면 직전에 확정된 버전으로 되돌려요. 넷째는 속도 제한(레이트 리밋)이에요. Volcano Ark 모델 목록에 표시된 최대 IPM은 500인데, 이건 절대 보장이 아니에요. 레이어 분리는 max_images를 기준으로 쿼터를 미리 차감할 수 있으니, max_images를 무작정 크게 잡으면 안 돼요.
적용 속도는 수동 작업에서 API 오케스트레이션으로 서서히 넘어가면 돼요. 먼저 Jimeng(即梦)이나 Doubao(豆包)에서 텀블러 사례를 손으로 끝까지 돌려보고, 그다음 스크립트로 상품 한 건씩 연결하고, 마지막에 큐와 소재 라이브러리를 붙여 배치 처리하는 흐름이에요. 수동 품질 검사 지점은 계속 남겨두는 걸 권해요. 상품 구조가 정확한지는 ‘그럴듯해 보인다’는 느낌만으로 판단할 수 없으니까요.
전체 오케스트레이션 코드 보기 (장면 생성 → 편집 → 투명 분기 → 레이어 분리·재조립)
import requests, io, time
from PIL import Image
BASE_URL = "https://api.apiyi.com/v1" # APIYI OpenAI 호환 인터페이스
API_KEY = "YOUR_API_KEY"
MODEL = "doubao-seedream-5-5-261028" # 플랫폼의 모델 목록을 기준으로 함
def gen(payload: dict, retries: int = 2) -> dict:
"""통합 호출, 간단한 재시도 포함"""
payload = {"model": MODEL, "response_format": "url", **payload}
for i in range(retries + 1):
try:
r = requests.post(f"{BASE_URL}/images/generations",
headers={"Authorization": f"Bearer {API_KEY}"},
json=payload, timeout=180)
r.raise_for_status()
return r.json()
except Exception as e:
if i == retries:
raise
time.sleep(5 * (i + 1))
def persist(url: str, path: str) -> str:
"""URL은 24시간 후 만료되므로 반드시 저장해야 합니다(여기서는 로컬에 저장하고, 프로덕션 환경에서는 객체 스토리지로 교체)"""
with open(path, "wb") as f:
f.write(requests.get(url, timeout=60).content)
return path
def scene(original_url: str, prompt: str) -> str:
res = gen({"image": original_url, "prompt": prompt, "size": "2K",
"background": "opaque", "output_format": "png", "watermark": False})
return res["data"][0]["url"]
def edit(prev_url: str, prompt: str) -> str:
# 이전 라운드 출력을 이번 라운드 입력으로 사용
return scene(prev_url, prompt)
def transparent(original_url: str, prompt: str) -> str:
res = gen({"image": original_url, "prompt": prompt,
"background": "transparent", "output_format": "png"})
return res["data"][0]["url"]
def decompose(poster_url: str, prompt: str, max_images: int = 15) -> list:
# 주의: 레이어 분해 요청에는 background 파라미터를 포함할 수 없습니다
res = gen({"image": poster_url, "prompt": prompt,
"layer_decomposition": True,
"layer_decomposition_options": {"max_images": max_images,
"text_recognition": True}})
return res["data"]
def recompose(layers: list, canvas_w: int, canvas_h: int, skip=()) -> Image.Image:
"""z_index 오름차순으로 쌓고, 정규화 좌표를 사용해 새 캔버스에 맞춥니다"""
canvas = Image.new("RGBA", (canvas_w, canvas_h))
for layer in sorted(layers, key=lambda x: x["z_index"]):
if layer.get("name") in skip:
continue # 예: 이전 가격 레이어를 건너뛰고 디자인 프로그램이 다시 그리도록 함
img = Image.open(io.BytesIO(requests.get(layer["url"]).content)).convert("RGBA")
l, t, r, b = layer["bounding_box"]["normalized"]
x, y = int(l / 1000 * canvas_w), int(t / 1000 * canvas_h)
w, h = int((r - l) / 1000 * canvas_w), int((b - t) / 1000 * canvas_h)
canvas.alpha_composite(img.resize((w, h)), (x, y))
return canvas
if __name__ == "__main__":
original = "https://your-cdn.com/cup_original.png"
v1 = scene(original, "使用参考图中的不锈钢保温杯作为唯一商品主体……不添加额外商品。")
persist(v1, "cup_v1_office.png") # 사람이 확인한 후 다음 단계로 진행
v2 = edit(v1, "将办公桌背景替换为温暖的木质咖啡厅场景……确保商品始终为单个主体。")
persist(v2, "cup_v2_cafe.png")
persist(transparent(original, "提取参考图中的保温杯主体……背景完全透明,PNG 格式。"),
"cup_alpha.png")
layers = decompose("https://your-cdn.com/cup_poster.png", "将商品海报拆分为独立图层……")
for ly in layers:
ocr = ly.get("text_recognition")
if ocr:
print(ly["z_index"], ocr["text"]) # 디자인 프로그램에 전달해 문구를 교체
recompose(layers, 1080, 1350).save("cup_poster_rebuilt.png")
Seedream 5.5 상품 이미지 자동화 비용 추정
다음은 Volcengine Ark 공식 『모델 가격』(2026년 11월 12일 업데이트)의 위안화 표준 단가를 기준으로 추산한 값이며, 제3자 플랫폼의 추가 비용은 포함하지 않았습니다. 입력 이미지 0.05위안/장, 출력 이미지는 261만 픽셀 이하일 때 0.13위안/장, 261만~463만 픽셀일 때 0.23위안/장입니다.
| 보온컵 워크플로 단계(편집자 추론) | 계산 전제 | 1회 비용 |
|---|---|---|
| 장면 생성 | 참조 이미지 1장, 출력 2048×2048 | 0.05 + 0.23 = 0.28위안 |
| 연속 편집 각 라운드 | 입력 1장, 출력 2048×2048 | 0.28위안 |
| 투명 에셋 | 참조 이미지 1장, 출력 2048×2048 | 0.28위안 |
| 포스터 레이어 분리 | 입력 1장, 출력 6장이며 모두 저가 구간이라고 가정 | 0.05 + 6×0.13 = 0.83위안 |
| 포스터 레이어 분리(상한 시나리오) | 위와 동일, 6장 모두 고가 구간 | 0.05 + 6×0.23 = 1.43위안 |
‘생성 1회 + 편집 2라운드 + 투명 1회 + 레이어 분리 1회(저가 구간 가정)’ 기준으로 계산하면 상품 1개당 약 1.95위안이며, 포스터 자체의 제작 비용은 별도입니다. 레이어 분리 비용은 레이어 수에 따라 선형으로 증가하므로, max_images를 필요에 맞게 설정해야 하는 이유이기도 합니다. 참고로 공식 가격 기준에서 참조 이미지 1장으로 2K 정사각형 이미지를 편집할 때 Seedream 5.0 Pro는 0.60위안, 5.5는 0.28위안이지만, 두 세대의 입력 이미지 과금 규칙이 달라 모든 작업에 일반화할 수는 없습니다.
Seedream 5.5 상품 이미지 자동화 자주 묻는 질문 FAQ
Q1: Seedream 5.5 상품 이미지 자동화 프로세스란 무엇인가요?
본문에서 Seedream 5.5 공식 API 기능을 바탕으로 설계한 비즈니스 워크플로예요. 상품 원본 이미지가 장면 생성과 연속 편집을 거친 뒤, 투명 소재와 레이어 분리라는 두 갈래로 나뉘고, 마지막으로 외부 프로그램이 합성·품질 검사·아카이빙을 처리해요. 모델은 생성과 분해를 담당하며, 프로세스 오케스트레이션은 공식 원클릭 기능이 아니에요.
Q2: 투명 소재와 레이어 분리는 어떤 차이가 있고, 둘 다 꼭 해야 하나요?
둘 다 할 필요는 없어요. 투명 소재는 상품 원본 이미지에서 알파 채널을 포함한 단일 피사체를 바로 출력하는 것이고, 레이어 분리는 완성된 전체 포스터를 배경 이미지와 여러 레이어로 나누면서 좌표와 OCR 정보를 반환하는 거예요. 상품 피사체만 필요하면 전자를, 포스터 속 텍스트와 장식을 재사용해야 하면 후자를 쓰면 돼요.
Q3: Seedream 5.5는 언제 출시되었고, API는 지금 사용할 수 있나요?
ByteDance가 2026년 11월 9일에 정식 출시했어요. 11월 12일 기준으로 Volcengine Ark(火山方舟)의 모델 목록, 호출 튜토리얼, 과금표에 Seedream 5.5가 등록되어 있고, Dreamina(即梦), Doubao(豆包), Doubao Work에도 연동되어 있어요. 계정, 지역, 서드파티 플랫폼에 따라 사용 가능 여부가 다를 수 있으니 실제 콘솔을 기준으로 확인해야 해요.
Q4: 이 프로세스는 어떤 상품 이미지 시나리오에 가장 적합한가요?
– **상세 페이지 장면 이미지**: 동일 상품으로 여러 라이프스타일 장면을 빠르게 생성.
– **다중 버전 메인 이미지**: 배경과 조명을 바꾸는 연속 반복 작업.
– **투명 피사체 소재**: 템플릿형 상세 페이지와 광고 레이아웃에서 재사용.
– **포스터 가격 수정과 현지화**: 레이어를 분리한 뒤 가격을 바꾸거나 외국어 문구로 교체.
Q5: API로 이 프로세스를 빠르게 호출하고 검증하려면 어떻게 해야 하나요?
먼저 소량으로 검증하는 것을 권장해요:
1. APIYI apiyi.com에서 회원가입하고 API 키와 무료 테스트 크레딧을 발급받으세요;
2. 플랫폼 모델 목록에서 사용 가능한 이미지 모델과 파라미터 지원 범위를 확인하세요;
3. 본문 예제 코드(base_url을 `https://api.apiyi.com/v1`로 설정)로 보온컵 사례를 실행해 보세요.
`layer_decomposition` 같은 확장 파라미터 지원 여부는 플랫폼 문서를 기준으로 확인해야 해요.
Q6: Seedream 5.5가 상품 이미지에서 보이는 알려진 제약은 무엇인가요?
서드파티 실측 결과를 보면, 여러 차례 편집을 거치면 점진적인 색상 드리프트가 생길 수 있고, 모델이 텍스트나 구도 요구를 맞추려고 상품 구조를 바꾸거나 피사체 수 자체를 바꿀 수도 있어요. 투명 유리 같은 소재는 알파 채널이 정확하게 나오지 않을 수 있고, 촘촘한 작은 글자는 이후 수정 과정에서 여전히 변형될 수 있어요. 양산 단계에서는 반드시 사람이 품질 검사를 거쳐야 해요. 다른 모델들의 이런 부분 성능도 함께 비교하고 싶다면 APIYI apiyi.com의 통합 인터페이스로 전환하며 테스트할 수 있어요.
Q7: 레이어 분리로 PSD를 바로 출력할 수 있나요?
아니요. 레이어 분리는 배경 이미지와 투명 PNG 레이어, `z_index`, `bounding_box`, OCR 정보를 반환할 뿐이라, 이 데이터를 읽어 재조립하는 프로그램이나 도구가 필요해요. OCR이 알려주는 폰트는 유사 폰트 판별 결과일 뿐, 원본 폰트를 복원한 것은 아니에요.
Q8: 공식 문서에서는 100회 연속 편집이 가능하다고 하는데, 실제 운영에서 무한정 이어서 호출해도 되나요?
권장하지 않아요. 100회는 공식 데모 사례로, 각 회차가 독립적인 호출일 뿐이며 어떤 이미지든 같은 성능에 도달할 수 있다는 뜻은 아니에요. Segmind의 12회 테스트에서는 전체 밝기가 약간 낮아지는 현상이 관찰됐어요. 최대 라운드 수를 설정하고, 이미 검증된 버전에서 다시 편집을 시작하는 게 좋아요.
Seedream 5.5 상품 이미지 자동화 핵심 요점(Key Takeaways)
- 네 단계 역할 분담이 명확해요: 장면 생성으로 키 비주얼을 만들고, 연속 편집으로 수정을 처리하며, 투명 및 레이어 분리가 소재 재사용을 담당해요.
- 두 갈래는 독립적이에요: 투명 소재는 상품 원본에서 가져오고, 레이어 분리는 완성된 포스터에만 적용하며 필요할 때 호출해요.
- 편집 체인에는 opaque 사용: 공식에서는 RGB 연속 편집과
background:"opaque"조합을 권장해요. - 레이어 분리에는 background를 붙이지 않아요: PNG/JPEG 1장만 받으며, 실제 출력 장수에 따라 과금해요.
- 필드 기반 재구성:
z_index오름차순으로 쌓고, 정규화 좌표로 새 캔버스에 맞춰요. - 영속화와 품질 검사는 필수: URL은 24시간 후 만료되며, 상품 구조는 반드시 사람이 다시 확인해야 해요.
- 먼저 소량으로 검증하세요: APIYI apiyi.com을 통해 소량의 상품 이미지로 프롬프트와 반환 구조를 테스트할 수 있어요.
요약: Seedream 5.5 상품 이미지를 단일 제작에서 소재 생산으로
상품 이미지 전달이라는 목표로 돌아가면, Seedream 5.5의 네 가지 능력의 역할 분담은 이렇게 정리할 수 있어요:
- 장면 생성이 메인 비주얼 품질을 결정해요: 참조 이미지 + 강한 제약 프롬프트로 상품 형태, 로고, 수량을 지켜요.
- 연속 편집이 수정 안정성을 결정해요: 이전 라운드 출력을 다음 라운드 입력으로 삼고, 변화만 설명하며 확인된 버전에서 출발해요.
- 투명 소재와 레이어 분리가 재사용성을 결정해요: 하나는 누끼 따기를 생략시키고, 다른 하나는 납작한 포스터를 재조립 가능한 데이터로 되살려요.
- 오케스트레이션과 품질 검사가 통제 가능한 비용을 결정해요: 실제 출력 기준 과금, 라운드 수와
max_images상한 설정, 세 가지 버전 보관.
모델은 흐름 속의 생산 단위일 뿐이고, 소재 관리, 합성, 품질 검사는 여전히 여러분의 시스템이 완수해야 해요. 먼저 실제 상품 하나를 가지고 네 단계를 수동으로 끝까지 돌려본 뒤, 점차 API 오케스트레이션으로 넘어가길 권장해요. APIYI apiyi.com을 통해 빠르게 효과를 검증해보는 것을 추천하는데, 플랫폼은 OpenAI 호환 인터페이스와 신규 사용자 무료 크레딧을 제공해서 정식 출시 전 소규모 테스트를 마치기에 편리해요.
📚 참고 자료
- Seedream 5.5 공식 발표 공지: 핵심 업그레이드, 공식 사례 및 평가
- 링크:
seed.bytedance.com/zh/blog/more-realistic-images-more-stable-editing-across-100-rounds-introducing-seedream-5-5 -
설명: 100라운드 편집, 투명 소재, 레이어 분리의 공식 데모 출처
-
화산방주 Seedream 5.5 공식 튜토리얼: 파라미터, 호출 예시 및 예시 소재 패키지
- 링크:
console.volcengine.com/ark/region:cn-beijing/docs/seedream-5-5 -
설명: 다중 라운드 편집, 투명 출력, 레이어 분리 및 OCR 설정 설명
-
화산방주 이미지 생성 API: 요청 필드와 응답 구조
- 링크:
console.volcengine.com/ark/region:cn-beijing/docs/image-generation-api -
설명:
z_index,bounding_box,text_recognition등 필드 정의 -
화산방주 모델 가격: 위안화 과금 규칙 (2026년 11월 12일 업데이트)
- 링크:
console.volcengine.com/ark/region:cn-beijing/docs/model-pricing -
설명: 본문 비용 추산의 가격 근거
-
Segmind 기술 블로그: 36회 과금 생성과 12라운드 편집 실측
- 링크:
blog.segmind.com/seedream-5-5-is-here-edit-in-rounds-transparent-pngs-and-layers/ -
설명: 색상 드리프트, 투명 재질, 상품 구조 변화 등 제3자 관찰
-
싱하이정보국 실측: 상업 디자인 시나리오 테스트
- 링크:
eet-china.com/mp/a538489.html -
설명: 이커머스 색상 변경, 투명 PNG, 텍스트 문제에 대한 실제 피드백
-
SeedRouter 모델 페이지: API 호출 소요 시간 관찰
- 링크:
seedrouter.ai/zh/models/seedream-5-5 - 설명: 서로 다른 출력과 레이어 분리 작업의 엔드투엔드 소요 시간 참고
저자: APIYI 기술팀
기술 교류: APIYI 웹사이트 첫 페이지에서 문의해주세요. 더 많은 연동 자료는 docs.apiyi.com 문서 센터에서 확인할 수 있어요.
