
Seedream 5.5 레이어 분리 후 재구성과 텍스트 편집
Seedream 5.5 PNG 레이어를 사각형과 쌓임 순서로 재구성하고 제공된 OCR을 편집 가능한 텍스트로 변환하세요. 디자인 변형 전 검수 방법도 설명합니다.
목차
Seedream 5.5의 레이어 분리는 배경 이미지, 투명 PNG 레이어와 배치 메타데이터를 반환합니다. 이를 편집 가능한 디자인으로 만들려면 애플리케이션에서 각 레이어의 크기와 위치를 맞추고, 쌓이는 순서를 유지하며, 제공된 OCR로 텍스트 객체를 만들어야 합니다. PNG 다운로드는 이 작업의 시작입니다.
무엇을 편집 가능한 상태로 유지할지 결정하기
승인된 포스터와 구체적인 변경 한 가지부터 정합니다. 제품을 옮길지, 제목을 바꿀지, 다른 언어 버전을 만들지에 따라 필요한 결과물이 달라집니다.
| 결과물 | 변경할 수 있는 대상 | 애플리케이션에 남는 작업 |
|---|---|---|
| 투명 PNG 한 장 | 전체 이미지의 위치 | 합성과 내보내기 |
| 배경 이미지와 PNG 레이어 | 분리된 요소의 위치와 표시 여부 | 크기 조절, 배치, 쌓임 순서와 검수 |
| 레이어와 서식 있는 OCR | 인식된 텍스트와 유사한 스타일 | 네이티브 텍스트 객체, 글꼴 매핑, 배치와 저장 |
작업에 필요한 요소 요청하기
doubao-seedream-5.5-layerize에 전달합니다. 일반 생성은 입력 조건이 다르므로 여러 참조 이미지를 사용하는 설정을 이 라우트에 그대로 적용하면 안 됩니다. 키는 서버에 보관하세요.model_params.text_recognition: true로 OCR을 요청할 수 있습니다. 특정 요소가 필요하면 문서에 있는 자연어 또는 bbox 지정을 사용하세요. 보이는 모든 객체가 별도 레이어가 된다고 가정하지 마세요. 요청했더라도 응답에 OCR이 없을 수 있습니다.curl -X POST https://api.evolink.ai/v1/images/generations \
-H "Authorization: Bearer $EVOLINK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedream-5.5-layerize",
"image_urls": ["YOUR_PUBLIC_IMAGE_URL"],
"quality": "auto",
"output_format": "png",
"n": 30,
"model_params": {"text_recognition": true}
}'YOUR_PUBLIC_IMAGE_URL을 서버에서 접근할 수 있는 이미지 URL로 바꿉니다. n: 30은 배경을 포함한 출력 상한이며 30장을 보장하지 않습니다. EvoLink는 2~100의 n을 허용하고 실제로는 더 적은 이미지를 반환할 수 있습니다. 해상도는 quality: auto, 1K, 1.5K, 2K로 지정하며 16:9 같은 비율은 사용하지 않습니다.id를 저장하고 GET /v1/tasks/{task_id}로 완료 여부를 조회하거나 실패를 처리합니다. 고정 길이 배열을 가정하지 말고 실제 result_data를 읽으세요. 라우트 문서에 따르면 레이어 하나가 실패해도 전체 요청이 실패하고 환불됩니다. 결과 링크는 24시간 유효하므로 완료된 파일을 빨리 저장하세요. 전체 계약은 Layerize API 문서를 참고하세요.Seedream 5.5 PNG 레이어 재구성하기
z_index: 0이고 큰 값의 레이어가 위에 놓입니다. 배치는 bounding_box를 따르며 좌표 기준은 출력된 배경 이미지입니다. 입력 포스터나 레이어 파일 자체의 좌표계와 바꿔 사용하면 안 됩니다.
[left, top, right, bottom]의 표시 너비는 right - left, 높이는 bottom - top입니다. 레이어를 이 사각형 크기로 조정한 뒤 (left, top)에 놓습니다. 마지막 두 값을 너비와 높이로 해석하거나, 다운로드한 모든 레이어를 원래 파일 크기로 붙이지 마세요.[1142, 528, 1474, 784], 즉 332×256픽셀입니다. 파일 크기만으로 배치를 복원할 수 없는 이유입니다. 이는 공개 예제의 속성이며 다른 결과의 크기를 보장하지 않습니다.z_index를 이 구조로 매핑합니다. 좌표는 설명용이므로 실제 결과 메타데이터로 바꾸세요.results에 이미지 URL을 두고 Layerize 설명은 result_data에 배치와 OCR을 추가합니다. 전체 응답과 파일을 저장한 뒤 검증 가능한 파일·메타데이터 대응 관계를 확인하고 매니페스트를 만드세요. 배경은 추측한 파일명이 아니라 z_index: 0으로 식별합니다. 현재 응답 계약이 명시하지 않았다면 배열 인덱스로 두 정보를 결합하지 마세요. 관계가 불명확하면 실제 작업 문서를 확인하세요. 이 가이드는 EvoLink 생성을 실행하지 않고 예제 파일의 로컬 합성만 수행했습니다.{
"base": "base.png",
"layers": [
{"file": "layer-1.png", "box": [120, 80, 420, 280], "z": 1}
]
}python -m pip install pillow로 Pillow를 설치합니다. 다음 블록을 reassemble.py로 저장하고 layers.json과 이미지를 함께 둔 뒤 python reassemble.py layers.json을 실행하세요. 스크립트는 로컬 기하 정보와 순서를 확인하고 시각 검수용 미리보기를 내보냅니다. 편집 가능한 텍스트를 재구성하거나 모델 품질을 인증하지는 않습니다.import json
import sys
from pathlib import Path
from PIL import Image
manifest = Path(sys.argv[1])
data = json.loads(manifest.read_text())
root = manifest.parent
with Image.open(root / data["base"]) as image:
canvas = image.convert("RGBA")
width, height = canvas.size
layers = data["layers"]
orders = [item["z"] for item in layers]
if any(type(z) is not int or z <= 0 for z in orders):
raise ValueError("Layer order must be a positive integer")
if len(set(orders)) != len(orders):
raise ValueError("Duplicate layer order")
for item in sorted(layers, key=lambda layer: layer["z"]):
box = item["box"]
if len(box) != 4 or any(type(v) is not int for v in box):
raise ValueError("Expected four integer box coordinates")
left, top, right, bottom = box
if not (0 <= left < right <= width and 0 <= top < bottom <= height):
raise ValueError("Box outside the base image or empty")
with Image.open(root / item["file"]) as image:
layer = image.convert("RGBA").resize(
(right - left, bottom - top), Image.Resampling.LANCZOS
)
canvas.alpha_composite(layer, dest=(left, top))
canvas.save(root / "reassembled.png")OCR을 편집 가능한 텍스트로 바꾸기
text_recognition에는 전체 텍스트, lines, 각 줄의 bounding_box와 스타일이 있는 runs가 포함될 수 있습니다. 공식 가이드에서 줄의 사각형 역시 배경 이미지 좌표입니다. 부모 레이어의 위치를 다시 더하지 마세요.similar_font_family를 사용 가능하고 라이선스를 확보한 글꼴로 매핑하고, 편집기가 지원하는 foreground_color와 스타일 속성을 적용하세요. 글꼴과 속성은 추정값입니다. 장식 글자나 손글씨에는 OCR이 없을 수 있으므로 수동으로 텍스트를 재구성하거나 이미지 레이어를 유지합니다.텍스트 레이어를 네이티브 텍스트로 바꿀 때는 해당 래스터 글자를 숨겨 기존 글자와 새 글자가 겹치지 않게 합니다. 여러 줄 중 한 줄만 바꾼다면 그 줄만 가리거나 제거하고 나머지 줄은 보존하세요. 또는 필요한 모든 텍스트를 재구성한 뒤 원래 래스터 레이어 전체를 숨깁니다. 텍스트 객체, 글꼴과 배치를 애플리케이션 문서에 저장해야 합니다. OCR 데이터 자체가 저장된 편집 가능 디자인은 아닙니다.
similar_font_family가 unknown이면 필요한 글리프와 라이선스를 갖춘 대체 글꼴을 명시적으로 선택하고 배치를 확인하세요. 스타일의 false는 모델이 해당 스타일을 인식하지 못했다는 뜻이지 원본에 없다는 증거가 아닙니다. 정확한 디자인 속성이 아니라 인식 힌트로 다루세요.디자인을 왜곡하지 않고 변형하기

x = normalized_x × target_width / 1000, y = normalized_y × target_height / 1000으로 계산합니다. 절대 사각형은 실제 출력 배경 크기를 기준으로 변환합니다. 전체 과정에서 일관된 좌표 변환 방식을 사용하세요.정사각형 포스터를 세로 광고로 바꿀 때는 좌표 곱셈만으로 충분하지 않습니다. 여백을 두고 맞출지, 자를지, 요소를 재배치할지 선택해야 합니다. 가로와 세로를 따로 늘리면 제품과 글자가 왜곡될 수 있습니다. 객체를 옮기면 재구성된 배경의 결함이 드러날 수도 있으므로 새로 보이는 영역을 확인하세요. 원래 가려져 있던 장면이 그대로 복원되었다고 가정하면 안 됩니다.
언어 변형은 제목 하나를 먼저 교체해 보세요. 글리프 지원, 줄바꿈, 텍스트 상자 높이, 시각적 위계와 전경 객체의 겹침을 확인합니다. 검토자가 비교할 수 있도록 원본 상태와 편집 상태를 별도로 보관하세요. 번역과 재배치는 애플리케이션 작업이며 OCR을 받았다고 자동으로 끝나지 않습니다.
변형을 늘리기 전에 결과 검수하기
| 증상 | 먼저 확인할 내용 | 다음 조치 |
|---|---|---|
| 레이어가 너무 크거나 위치가 틀림 | 사각형 규칙, 배경 크기와 파일을 사각형에 맞추는 조절 | 모델을 다시 요청하기 전에 합성 변환 수정 |
| 겹치는 순서가 잘못됨 | z_index 오름차순과 표시 상태 | 의도한 쌓임 순서 복원 |
| 글자가 겹치거나 줄이 사라짐 | 래스터 글자 표시와 교체 범위 | 줄마다 한 가지 표현만 유지 |
| OCR이 없거나 스타일이 부정확함 | 정형 텍스트인지와 실제 OCR 필드 | 수동 텍스트 재구성 또는 래스터 유지 |
변경 전 재구성된 원본을 검토하고, 편집 결과는 최종 납품 크기로 검사합니다. 제품의 동일성, 가장자리, 배경 채움, 가림, 문구와 최종 내보내기를 확인하세요. 좌표가 맞는다고 픽셀 단위 복원이나 디자인 품질이 보장되지는 않습니다.
n장의 2K 출력 요금을 우선 예약하고, 실제 생성 이미지와 각각의 픽셀 구간에 따라 정산한다고 안내합니다. 큰 상한은 더 많은 잔액을 예약하지만 해당 편집에 꼭 필요한 것은 아닙니다. 기존 가격 섹션을 사용하며 이 글에서는 별도 요금표를 유지하지 않습니다.자주 묻는 질문
Seedream 5.5는 PSD를 반환하나요?
문서에 있는 EvoLink 라우트는 이미지와 메타데이터를 반환하며 네이티브 PSD를 반환하지 않습니다. 편집기나 내보내기 도구가 문서를 만들어야 합니다.
n: 30은 독립된 전경 레이어 30개인가요?
아닙니다. 배경을 포함한 전체 출력 이미지 상한입니다. 실제 수는 더 적을 수 있으므로 반환 항목을 읽으세요.
레이어 PNG의 원본 크기를 사용해야 하나요?
배경에서의 사각형을 기준으로 배치합니다. 파일이 그 사각형보다 클 수 있으므로 합성 전에 크기를 조절하세요.
정규화 좌표로 재구성할 수 있나요?
네. 0~1000 범위의 각 모서리를 대상 캔버스 크기로 변환합니다. 종횡비가 바뀐다면 맞추기, 자르기 또는 재배치를 명시적으로 선택해야 합니다.
모든 텍스트 레이어에 OCR이 있나요?
text_recognition의 존재를 확인하세요. 정형 텍스트는 지원하지만 장식 글자나 손글씨는 수동 작업이 필요할 수 있습니다.OCR이 원래 글꼴을 정확하게 식별하나요?
similar_font_family는 유사한 글꼴 추정이며 동일성이나 라이선스의 증거가 아닙니다. 사용 가능한 글꼴을 선택하고 결과를 확인하세요.레이어가 맞지 않으면 다시 생성해야 하나요?
먼저 순서, 사각형 해석과 배율을 확인하세요. 합성 오류는 로컬에서 고칠 수 있습니다. 시각 콘텐츠가 없거나 쓸 수 없다면 편집이나 재분리가 필요할 수 있습니다.
이 예제가 EvoLink 출력 품질을 증명하나요?
아닙니다. 공식 예제와 로컬 파일 작업으로 문서의 흐름을 설명합니다. API 성공률, 복원 충실도나 속도를 측정하지 않았습니다.
출처
- BytePlus Seedream 5.5 가이드: 공식 레이어/OCR 기능과 예제 패키지. 제공자의 필드 이름은 EvoLink와 다릅니다.
- EvoLink Layerize API 문서: 모델 ID, 입력, 제한, 작업과 정산.
- Pillow Image 문서: 로컬 크기 조절과 알파 합성.


