Seedgream 4.5 API 사용 방법
Source: Dev.to
Seedream 4.5란?
Seedream 4.5는 최신 버전의 Seedream 시리즈로, 고품질 텍스트‑투‑이미지 생성 및 컨텍스트‑인식 이미지 편집(이미지‑투‑이미지, 다중‑레퍼런스 편집, 인페인팅/아웃페인팅, 타이포그래피 및 밀집 텍스트 처리)을 위해 설계된 멀티모달 이미지 생성·편집 모델입니다. 이전 Seedream 릴리스와 비교했을 때 4.5는 다음에 중점을 두었습니다:
- 다중 이미지 워크플로우 전반에 걸친 피사체 일관성 향상
- 레퍼런스 디테일 보존 강화
- 텍스트(이미지 내 문자)의 타이포그래피 정확도 상승
- “고품질” 설정에서 최대 4K/울트라‑HD 수준의 출력 품질 제공
이러한 개선은 확장된 아키텍처와 업데이트된 프롬프트‑튜닝·엔진‑사이드 휴리스틱 덕분에 가능해졌습니다.
왜 중요한가: 4.5는 배치 제품 변형, 브랜드 일관성을 유지한 다중 이미지 편집, 고해상도 인쇄용 자산 등 전문적인 창작 작업을 위해 설계되었으며, 레퍼런스 이미지와 특수 편집 작업을 통한 세밀한 제어가 가능합니다.
핵심 기능
- 텍스트‑투‑이미지 생성(단일 및 배치): API 호출당 1–15장의 이미지를 생성할 수 있으며, 속도와 해상도 사이의 트레이드오프를 제공하는 품질 모드(Basic vs High)를 선택할 수 있습니다.
- 이미지 편집(i2i / 인페인팅 / 아웃페인팅): 하나 이상의 레퍼런스 이미지를 사용하며, 여러 레퍼런스 간 디테일 및 공간 관계를 보존합니다.
- 다중‑레퍼런스 블렌딩 및 요소 복사: 단일 작업에 최대 ~10개의 레퍼런스 이미지를 사용해 조명·시점이 일관된 상태로 요소를 전이할 수 있습니다.
- 고품질 타이포그래피/밀집 텍스트 렌더링: 텍스트나 간판이 포함된 이미지 처리 능력이 향상되어 목업, 제품 라벨, UI 스크린샷 등에 유용합니다.
- 스트리밍·프로그레시브 출력: 일부 배포 엔드포인트는 결과를 스트리밍으로 제공하므로, 생성이 진행되는 동안 클라이언트가 부분 결과를 받을 수 있습니다.
CometAPI를 통해 Seedream 4.5 API를 사용하는 방법
아래는 CometAPI(Seedream 4.5 모델을 파라미터로 노출하는 집계 서비스)를 이용해 이미지를 생성하는 실용적인 복사‑붙여넣기 가능한 단계별 가이드입니다. 여러 모델을 하나의 API 키로 접근하고, 안정적이며 통합이 쉬운 REST 인터페이스를 원한다면 CometAPI를 사용하세요. CometAPI 문서에는 doubao‑seedream‑4‑5‑251128 모델 별칭과 표준 이미지 생성 엔드포인트가 명시되어 있습니다.
전체 흐름
- CometAPI에 가입하고 API 키를 발급받습니다.
- 이미지 생성 엔드포인트(
POST https://api.cometapi.com/v1/images/generations)에 모델 파라미터를 Seedream 4.5 식별자(예:doubao‑seedream‑4‑5‑251128)로 설정해 요청합니다. - 프롬프트, 선택적 레퍼런스 이미지(URL 또는 멀티파트 업로드), 출력 크기·품질 및 기타 파라미터를 포함합니다.
- 생성된 이미지 URL(또는 base64)과 메타데이터가 들어 있는 JSON 응답을 받습니다.
요청 유형 및 모드
Seedream 4.5는 일반적으로 다음을 지원합니다:
- Text → Image – 텍스트 프롬프트 → 새로운 이미지
- Image → Image – 레퍼런스 이미지 + 프롬프트를 통한 스타일 변환
- Image Editing / Inpainting – 마스크 + 편집 지시문을 사용한 타깃 변경
호스팅된 API는 비동기 작업 모드(작업 제출 → taskId로 폴링)를 제공하는 경우가 많아, 장시간 렌더링 및 배치 워크플로에 적합합니다. 생성된 링크는 보통 제한된 시간(예: 24시간)만 유효하므로, 저장·내보내기를 미리 계획하세요.
curl 예시 (텍스트‑투‑이미지, 단일 프롬프트)
curl -X POST "https://api.cometapi.com/v1/images/generations" \
-H "Authorization: Bearer COMETAPI_KEY_GOES_HERE" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedream-4-5-251128",
"prompt": "A cinematic portrait of a cyberpunk fox in neon rain, 4k, detailed lighting, film grain",
"n": 3,
"width": 2048,
"height": 2048,
"quality": "high", # or "basic"
"seed": 12345,
"style": "photorealistic"
}'
주의 사항
COMETAPI_KEY_GOES_HERE를 실제 CometAPI 키로 교체하세요.n파라미터는 한 번의 호출로 여러 변형을 생성해 오버헤드를 절감합니다.quality: "high"는 일반적으로 더 높은 해상도·연산 비용을 의미하며, 4K 수준까지 지원됩니다.
Python requests 예시 (텍스트‑투‑이미지 + 결과 저장)
import requests, base64, os
API_URL = "https://api.cometapi.com/v1/images/generations"
API_KEY = os.environ.get("COMETAPI_KEY") # set env var for safety
payload = {
"model": "doubao-seedream-4-5-251128",
"prompt": "Studio shot of a ceramic mug on a wooden table, warm natural light, ultra-detailed, 2k",
"n": 2,
"width": 1024,
"height": 1024,
"quality": "basic"
}
resp = requests.post(
API_URL,
json=payload,
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
)
resp.raise_for_status()
data = resp.json()
# Each item may contain 'b64_json' or 'url' depending on provider
for i, item in enumerate(data.get("data", [])):
img_b64 = item.get("b64_json")
if img_b64:
img_bytes = base64.b64decode(img_b64)
with open(f"seedream_result_{i}.png", "wb") as f:
f.write(img_bytes)
else:
print("Image URL:", item.get("url"))
왜 이런 패턴인가? 집계 서비스는 보통 base64 데이터 또는 호스팅된 URL 중 하나를 반환합니다. 위 코드는 두 경우를 모두 처리하도록 설계되었습니다. 엔드포인트는 일반적으로 task_id를 반환하므로, GET /tasks/{task_id}를 폴링해 상태가 succeeded가 될 때까지 기다린 뒤 결과를 다운로드합니다. 많은 제공자는 이 워크플로를 위한 SDK와 헬퍼 함수를 함께 제공합니다.
이미지 품질을 최적화하고 텍스트 가독성을 유지하는 방법
- 레퍼런스 이미지를 활용해 일관된 컨텍스트와 색상 매치를 확보합니다.
- 프롬프트에 타이포그래피를 명시(폰트 종류, 굵기, 정렬 등)하고, 필요 시 두 번째 단계에서 정확한 텍스트를 오버레이하여 가독성을 보장합니다.
- 두 단계 프로세스를 적용:
- 기본 구성을 생성한다.
- 두 번째 패스에서 확대·고해상도로 라벨 영역이나 텍스트 부분을 재렌더링하거나 편집한다.
Seedream 4.5에 적합한 프롬프트 작성법
프롬프트 엔지니어링 원칙
- 명확하게: 피사체, 동작, 스타일, 렌즈·카메라, 시간대, 원하는 색상 팔레트를 모두 열거합니다.
- 정체성 앵커 사용: 동일 인물·소품을 여러 이미지에 걸쳐 재현해야 할 경우, 지속적인 설명(예: “짧은 물결 머리, 초록 재킷, 왼쪽 눈썹에 흉터가 있는 같은 여성”)과 1–3장의 레퍼런스 이미지를 제공하세요. Seedream 4.5의 다중 레퍼런스 융합이 개선됐지만 앵커가 도움이 됩니다.
- 네거티브 프롬프트: 피하고 싶은 요소를 명시적으로 적습니다(예: “텍스트 없음”, “워터마크 없음”, “불필요한 사지 없음”).
- 짧은 + 긴 하이브리드: 짧은 핵심 지시문을 먼저 제시하고, 뒤에 몇 줄의 상세 설명과 제약 조건을 추가합니다.
프롬프트 템플릿 예시
-
제품 히어로 샷(포토리얼)
"A clean product hero shot of a matte black wireless speaker placed on a white tabletop, softbox lighting, 50mm, shallow depth of field, studio background, photoreal, no text" -
판타지 일러스트(스타일리시)
"Epic fantasy landscape, towering glass castle on a cliff, golden hour, volumetric fog, painterly, highly detailed, concept art" -
이미지 편집(객체 제거)
"Remove the person on the left and extend the background to fill the space, keep lighting consistent, no artifacts" -
타이포그래피가 많은 목업
"Mobile app landing screen mockup on an iPhone 14, with bold sans‑serif heading 'Welcome', centered, high‑contrast colors, realistic device rendering"