승인된 캐릭터 초상화가 있습니다. 의상 편집 결과는 처음에는 매력적이지만, 어깨끈 하나가 상의 중간에서 끊기고 레이스는 흐릿한 꽃무늬 표면이 되었으며 캐릭터의 눈도 달라졌습니다. NSFW 캐릭터 시리즈에서는 서로 다른 세 가지 문제입니다. “더 자세하게”라는 말로는 어느 문제를 해결할지 알려 줄 수 없습니다.
원래 캐릭터 이미지를 베이스로 사용하고 의상에는 깔끔한 옷 레퍼런스를 사용하세요. 끈이 연결되는 위치, 불투명 안감의 원단, 레이스나 무늬가 놓이는 위치를 설명하세요. 첫 교체에서는 포즈, 빛, 구도를 고정하세요. 얼굴이 맞고 작은 옷 가장자리만 틀렸다면 전체 이미지를 다시 편집하기 전에 일반적인 보정을 고려하세요.
Seedream 5.0 Pro 이미지 편집은 레퍼런스 이미지 1–10장을 받아 요청당 한 장을 반환합니다. 현재 SpicyAPI 작업에는 마스크, 강도 슬라이더, 시드 제어가 없습니다. 얼굴 유지 여부는 반환된 이미지로 판단해야 합니다.
ByteDance는 Pro 발표에서 기본 내장된 소재 교체와 레퍼런스 융합을 설명하면서도 픽셀 수준 편집 일관성에는 개선 여지가 있다고 인정합니다. 신중하게 고른 레퍼런스가 도움이 되지만, 정확한 옷 디자인과 변하지 않은 얼굴 픽셀은 당연시하지 말고 검증해야 합니다.
옷의 경계가 보이는 원본을 선택하세요
예시는 어두운 단발머리의 가상 인물 Nadia로, 38세 여성입니다. 무늬 없는 불투명 라운드넥 상의와 하이웨이스트 짙은 회색 반바지를 입고 있습니다. 승인된 사진은 정면에서 머리부터 허벅지 중간까지 담으며 팔은 몸통에서 떨어뜨려 편하게 내렸습니다. 상의만 불투명 버건디 안감 위에 레이스를 덧댄 캐미솔로 교체합니다. 반바지, 인물, 방은 그대로입니다.
베이스 사진은 눈으로 확인할 수 있는 세 가지 기준으로 고르세요.
- 인물 동일성: 얼굴이 잘 보이고 표정이 승인되어 있어야 합니다.
- 구조: 어깨와 네크라인이 드러나 끈 연결부를 검사할 수 있어야 합니다. 머리카락이나 손이 연결부를 가릴 수 있습니다.
- 핏과 길이: 허리와 밑단이 화면 안에 있어야 합니다. 얼굴만 꽉 담은 사진으로는 둘 다 판단할 수 없습니다.
기존 승인 이미지 중 편집 영역이 가장 잘 보이는 것을 선택하세요. 잘린 초상화만 있다면 먼저 빠진 구도를 만들고 승인하세요. 이는 옷을 정확히 재현하는 작업과 별개입니다.
의상 레퍼런스로는 단순한 바닥이나 마네킹 위에 놓인 캐미솔 전체의 정면 모습을 사용하세요. 양쪽 끈, 네크라인, 옆 솔기와 밑단이 보여야 합니다. 아름다운 레이스 확대 사진만으로는 상의 구조를 알 수 없습니다. 다른 사람의 얼굴이 담긴 패션 사진은 경쟁하는 인물 정보를 끌어들일 수 있습니다. 옷이 잘 보이는 범위에서 그 사람을 잘라내세요.
전체 레퍼런스에 중요한 세부가 보이지 않을 때만 별도 확대 사진을 저장하세요. 비슷한 레이스의 다른 상의가 아니라 같은 옷이어야 합니다. 뒤에서 교차하는 끈 사진과 일자 끈 사진을 함께 주면 두 디자인 중 하나를 고르라는 요청이 됩니다.
포즈를 바꾸기 전에 의상 편집 하나를 완성하세요
Playground에서 Seedream 5.0 Pro 편집 작업을 열고 다음 순서로 업로드하세요.
- 이미지 1 — 캐릭터와 구도: Nadia의 승인 사진이 인물, 포즈, 방과 구도를 제공합니다.
- 이미지 2 — 옷 전체: 캐미솔 전체 모습이 재단 형태, 끈, 네크라인과 길이를 제공합니다.
- 선택 이미지 3 — 세부: 같은 옷의 일부가 전체 사진에서 안 보이는 레이스나 무늬를 제공합니다.
초안은 1k로 만들고, 가는 끈 연결부와 레이스를 검사할 때 2k로 바꾸세요. PNG, 불투명 배경, 베이스 사진과 같은 화면 비율을 쓰거나 auto로 첫 레퍼런스를 따르세요. 제안한 4:5 초상화에는 4:5를 선택합니다. 실제 원본이 다른 형태라면 지원되는 다른 비율을 쓰세요. 넓은 장면을 새 세로 구도에 억지로 넣으면 의상 작업에 구도 변경까지 추가됩니다.
PNG는 이후 보정에서 추가 손실 압축을 피하는 데 유용합니다. 자체적으로 옷 구조를 개선하지는 않습니다. 2K는 1K보다 검사할 세부가 많지만 올바른 끈 연결이나 정확한 레이스를 보장하지 않습니다. 우선 사고 기능은 기본값으로 유지하세요. 엄격한 지시에도 원치 않는 세부가 계속 생기면 기능을 끈 시도 하나와 비교하세요. 가격은 같습니다.
아래 프롬프트를 붙여 넣고 견적을 확인해 후보 한 장을 생성하세요. 승인 전에 얼굴, 끈 연결부와 안감을 업로드한 두 사진과 비교하세요.
이 두 레퍼런스에 사용할 완전한 시작 프롬프트입니다.
Image 1 is the base photograph of Nadia, a fictional adult woman aged 38. Preserve her facial identity, dark bob, expression, body proportions, pose, hands, camera position, room and existing soft window light. Replace only her crew-neck top with the burgundy camisole in image 2. Keep her high-waisted charcoal shorts unchanged. Image 2 defines the garment only: two narrow burgundy shoulder straps, each connected to the corresponding front neckline corner; a shallow V neckline; opaque burgundy lining underneath a decorative lace overlay; a narrow scalloped lace border following the neckline; and a scalloped lace hem ending at the hip over the top of the high-waisted shorts. Keep the lining fully opaque. Fit the garment naturally to her existing pose, with folds following the fabric. Do not transfer a mannequin, background or different person's features from image 2. Keep the original head-to-mid-thigh framing.
설명하는 옷은 이미지 2와 일치해야 합니다. 사각 네크라인이나 더 긴 밑단이라면 해당 문장을 바꾸세요. 레퍼런스가 모순된 문구를 무시하리라 기대하지 마세요. “끈 두 개”는 이 디자인에 맞는 조건이지 모든 성인용 의상의 공통 요구가 아닙니다.
Seedream 5.0 Pro는 SpicyAPI의 무검열 편집 모델입니다. 2026년 9월 테스트에서는 암시적인 의상 편집 세 건 모두 요청한 장면을 반환했고, 강도가 더 높은 성인 편집 세 건 중 한 건은 완화되었습니다. 란제리나 수영복도 구조를 먼저 지정하는 같은 방식으로 재단, 안감, 레퍼런스 역할을 정의하세요. 완화된 장면은 숨겨진 성인 모드 스위치로 해결되지 않습니다. 콘텐츠 테스트 글은 장면 유형별 반응을 설명합니다.
가는 끈에는 폭뿐 아니라 연결 지점도 필요합니다
“스파게티 끈”은 대략적인 외형만 설명합니다. 개수, 교차 여부와 연결 위치는 정하지 않습니다. 보이는 경로를 지정하세요. 각 가는 끈이 해당 어깨를 지나 자기 쪽 네크라인 모서리에 연결됩니다. 원본이 일자 끈이면 더 멋스럽게 들린다는 이유로 “교차 끈”을 추가하지 마세요.
어깨 위 선만 보지 말고 연결부를 보세요. 자연스러운 끈은 틈, 뭉개짐, 추가 갈래 없이 옷 가장자리에 닿아야 합니다. 어두운 머리카락 한 가닥은 그 아래로 끈이 이어진다는 증거가 아닙니다. 반대로 가려야 할 머리카락을 뚫고 선이 보이도록 요구하지 마세요. 연결 확인에는 어깨를 가리지 않은 원본이 더 유용합니다.

Seedream 결과가 아닌 설명 그림입니다. 옷 위에서 끝나는 선을 승인하지 말고 각 끈이 네크라인에 연결되는 곳을 살펴보세요.
첫 결과에서 Nadia의 오른쪽 끈이 이중으로 나타났다면 다음과 같이 수정 지시를 할 수 있습니다.
Keep this image's face, pose, shorts, room and the rest of the camisole. Correct only the camisole strap on Nadia's right shoulder, which appears on viewer-left in this front-facing image: one narrow burgundy strap, continuously attached to the right neckline corner, with no extra branch. Retain the opposite strap and existing garment cut.
여기서는 이미 원하는 의상 디자인이 담긴 후보를 첫 레퍼런스로 사용합니다. 옷 이미지는 두 번째로 유지하세요. 여전히 생성형 편집이므로 나중에 얼굴을 비교하세요. 짧은 틈 하나라면 편집기에서 작은 끈 부분을 그리거나 복제하는 편이 불확실성을 줄이면서 승인 결과를 더 많이 보존할 수 있습니다.
레이스 장식과 아래층을 구분하세요
“레이스 상의”는 시각적으로 여러 가지를 뜻할 수 있습니다. 여기서는 레이스가 불투명 버건디 안감 위의 장식 표면이며 네크라인에 물결 모양 테두리가 있습니다. 이 관계를 명시하세요. 그렇지 않으면 모델은 무늬를 몸통 전체에 놓거나, 테두리를 두꺼운 칼라로 바꾸거나, 막연한 꽃무늬만 남긴 채 밑의 소재를 바꿀 수 있습니다.
옷에 대한 테두리 위치와 크기를 지정하세요. “얕은 V 네크라인을 따라가는 좁은 물결 모양 테두리”가 “정교한 고급 레이스”보다 유용합니다. 원래 레퍼런스가 넓은 테두리면 그렇게 설명하세요.
전체 사진이 작아 테두리를 못 보여 주면 확대 사진을 이미지 3으로 넣고 추가하세요.
Image 3 is a close-up of the same garment's neckline. Use it only for the scalloped border and lace texture. Image 2 still defines the full garment's cut and length; image 1 defines Nadia and the composition. Keep the opaque burgundy lining beneath the decorative lace.
잘라낸 사진은 전체 디자인을 교체하지 않고 부족한 표면 정보를 제공합니다. 작은 고리나 꽃 하나하나의 재현을 보장하지는 않습니다. 정확한 레이스 무늬가 필수라면 승인된 옷 형태를 유지하고 승인된 질감을 수동으로 배치하거나 보정하세요. 비슷한 꽃무늬를 정확한 일치로 취급하지 마세요.
무늬는 옷 위에서 원단을 따라가게 하세요
프린트 변형은 먼저 연속성에 실제로 필요한 것을 정하세요. 같은 버건디 꽃무늬, 대략적인 크기와 방향, 밑단 근처의 특징적인 꽃 하나면 될 수도 있습니다. 포즈가 달라도 작은 요소마다 정확히 반복하는 것은 훨씬 까다롭습니다.
레퍼런스에 작은 세로 꽃무늬 반복과 앞면 오른쪽 아래 패널의 큰 꽃이 있다고 가정하세요. 착용자의 오른쪽이라고 지정하며 설명하세요. 정면에서는 보는 사람의 왼쪽입니다. “꽃이 왼쪽에 있다”만 확인하면 뒤집힌 디자인을 잘못 승인할 수 있습니다.
다음 같은 문장을 쓰세요.
Keep the small floral repeats at the reference's relative scale, running vertically on the garment panels. Keep the larger flower on the wearer's front-right lower panel. The print follows the camisole's folds and remains on its fabric; it does not continue onto the shorts, arms or background.
곡면인 몸 위에 변형 없는 평면 무늬를 요구하는 것은 아닙니다. 주름은 무늬를 압축하고 가리며 옆 솔기는 반복을 끊을 수 있습니다. 같은 디자인의 그럴듯한 투영과 주변 물체까지 덮는 새 무늬를 구분해야 합니다.

Seedream 결과가 아닌 설명 그림입니다. 안감, 레이스, 옷 가장자리를 따로 설명하세요. 꽃무늬는 천 위에 있고 밑단에서 끝납니다.
주름을 무시한 딱딱한 격자는 간격이 일정하다는 이유만으로 더 충실하지 않습니다.
특징적인 무늬의 시리즈에서는 정면 옷 이미지와 승인된 옆모습을 보관하세요. 정면 레퍼런스만으로는 등 무늬를 정할 수 없습니다. 다음 게시물이 등을 보여 준다면 승인된 뒷면 디자인을 제공하거나 의도적으로 만드세요. 창작한 재구성을 정확한 전사라고 부르지 마세요.
쓸 만한 이미지를 버리지 않고 실패한 세부를 고치세요
두 크기로 비교하세요. 예정 게시 크기에서는 Nadia가 여전히 알아볼 만한지, 의상이 명확한지 확인합니다. 원본 크기에서는 끈 연결, 네크라인 테두리와 특징적인 무늬를 검사합니다. 매력적인 썸네일이 확대하면 분명한 틈을 숨길 수 있습니다.
| 실패 | 실용적인 다음 조치 |
|---|---|
| 얼굴이 바뀌고 의상은 좋음 | 승인된 캐릭터 이미지로 돌아가세요. 의상 레퍼런스의 다른 인물을 제거하고 포즈와 빛을 고정해 옷 교체만 반복하세요. |
| 원래 상의가 캐미솔과 섞임 | 교체할 옷과 유지할 반바지를 따로 명시하세요. 남은 칼라/소매 제거를 지시하고 원래 상의 구조를 유지하라고 하지 마세요. |
| 끈이나 물결 테두리 하나가 틀리고 얼굴은 맞음 | 좁게 한정한 의상 지시나 일반적인 작은 가장자리 보정을 시도하세요. 전체 빛/포즈 지시를 새로 하지 마세요. |
| 전체 의상의 레이스가 불분명함 | 같은 옷의 세부 이미지를 추가하고 전체 사진은 재단 레퍼런스로 유지하세요. 2K로 검사하세요. |
| 무늬가 반대 패널로 이동함 | 착용자 기준의 쪽을 명시하고 원본 반전 여부를 확인해 뒤집지 않은 옷 이미지를 쓰세요. |
| 포즈 수정 뒤 무늬가 다시 바뀜 | 승인된 옷 레퍼런스와 채택한 의상 초상화를 함께 재사용하며 인물과 옷 역할을 따로 지정하세요. |
편집기가 Nadia의 얼굴을 계속 바꾸면 보존을 강조하는 형용사를 늘려도 믿을 만한 해결책이 되지 않습니다. 같은 포즈에서 나머지가 맞다면 일반 합성으로 승인된 머리와 배경을 유지하며 수정된 의상 영역을 넣을 수 있습니다. 먼저 두 이미지를 정렬하고 의상 주변을 마스크한 뒤 경계의 목, 머리카락, 어깨와 그림자를 검사하세요. 카메라 위치와 포즈가 같을 때 가장 잘 작동하며 새로운 머리 각도나 맞지 않는 조명의 지름길은 아닙니다.
아주 작은 결함은 전체 의상을 합성하는 것보다 그 부분을 고치는 편이 쉽습니다. 이어지는 끈 조각, 짧은 밑단이나 이동한 무늬 하나는 국소적으로 처리할 수 있습니다. 잘못된 실루엣, 달라진 신체 비율이나 빠진 패널은 더 큰 실패이므로 몸통 전체를 때우지 말고 원래 레퍼런스로 돌아가세요.
시도 비용
Pro 편집은 레퍼런스 한 장 기준 1K $0.036, 2K $0.072부터입니다. 입력 이미지를 추가할 때마다 $0.003이 늘고 요청 하나는 이미지 한 장을 반환합니다.
| 요청의 레퍼런스 | 1K / 이미지 | 2K / 이미지 |
|---|---|---|
| 캐릭터만 | $0.036 | $0.072 |
| 캐릭터 + 옷 전체 | $0.039 | $0.075 |
| 캐릭터 + 옷 전체 + 해당 세부 | $0.042 | $0.078 |
레퍼런스 두 장으로 1K 세 번을 시도한 뒤 세 장으로 2K 한 번을 시도하면 합계 $0.195입니다: 3 × $0.039 + $0.078. 이는 반환 이미지 네 장의 예산 예시이며 예상 성공률이 아닙니다. 첫 1K 결과에서 판단에 필요한 레이스가 안 보이면 흐릿한 미리보기로 승인하지 말고 2K에서 판단하세요. 두 레퍼런스의 2K 네 번은 $0.30입니다.
네크라인이나 무늬가 서로 다른 사진을 늘린다고 정밀도가 생기지는 않습니다.
승인된 레퍼런스로 의상 시리즈를 만드세요
Nadia의 캐미솔을 채택하면 의상 초상화를 원래 캐릭터와 깔끔한 옷 원본과 함께 저장하세요. 색상 변형은 구조와 장식 무늬를 고정하고 명시한 색만 바꾸세요. 포즈 변형은 옷 디자인을 유지하고 제공된 각도로 뒷받침되는 작은 변경을 택하세요. 어느 단계가 변형을 일으켰는지 알아야 한다면 색과 포즈를 따로 바꾸세요.
결함이 있는 중간 결과를 영구 의상 레퍼런스로 만들지 마세요. 짧아진 끈이 다음 게시물로 퍼지거나, 옮겨진 꽃이 모델의 새 의상 해석이 될 수 있습니다. 그러면 승인된 옷 디자인으로 돌아가세요.
더 큰 컬렉션은 캐릭터 레퍼런스 워크플로에서 인물과 장면을 분리하는 방법을 설명합니다. 옷 교체 자체는 확립된 성인 캐릭터, 명확한 교체 의상 하나, 남은 세부 중 생성할 부분과 직접 보정할 부분의 정확한 판단으로 좁히세요.
승인된 설정을 API로 사용하세요
환경에 SPICY_API_KEY를 설정하세요. CHARACTER_IMAGE_URL, GARMENT_IMAGE_URL은 승인된 이미지의 직접 HTTPS URL로 설정하세요. Python 3으로 실행하고 새 유료 시도를 원할 때만 표시된 견적을 확인하세요.
import json
import os
import uuid
from pathlib import Path
from urllib.request import Request, urlopen
payload = {"model": 'bytedance/seedream-5.0-pro/edit', "input": {
'prompt': 'Image one defines Nadia, a fictional adult woman aged 38. Keep her face, dark bob, pose, shorts, room and framing. Replace only her top with the opaque burgundy camisole in image two. Keep two shoulder straps connected to their neckline corners, an opaque lining under the decorative lace, and a scalloped hem at the hip. Image two supplies the garment, not a person or background.',
'image_urls': [os.environ['CHARACTER_IMAGE_URL'], os.environ['GARMENT_IMAGE_URL']],
'resolution': '1k',
'aspect_ratio': '4:5',
'output_format': 'png',
'background': 'opaque',
}}
def api(action, body, key=None):
headers = {"Authorization": "Bearer " + os.environ["SPICY_API_KEY"],
"Content-Type": "application/json"}
if key:
headers["Idempotency-Key"] = key
request = Request("https://api.spicyapi.ai/api/v1/jobs/" + action,
data=json.dumps(body).encode(), headers=headers)
with urlopen(request, timeout=60) as response:
result = json.load(response)
if result.get("code") != 200:
raise RuntimeError(result)
return result["data"]
quote = api("quote", payload)
print("Maximum charge (USD):", quote["maxCharge"])
if input("Create this new attempt? Type yes: ").strip() != "yes":
raise SystemExit("No task created")
key = str(uuid.uuid4())
body = {**payload, "quoteId": quote["quoteId"],
"expectedCost": quote["estimatedCost"]}
Path(key + ".json").write_text(json.dumps({"key": key, "request": body}))
task = api("createTask", body, key)
Path(key + ".task.json").write_text(json.dumps(task))
print("Task ID:", task["taskId"])같은 요청의 재시도에 사용할 저장된 키를 보관하세요. 결과 조회와 파일 처리는 작업 API 가이드에 있습니다.
반복 편집에서는 Agent가 승인된 지시를 처리할 수 있습니다.
- CLI:
npx @spicyapi/cli tasks create --model bytedance/seedream-5.0-pro/edit --input-file input.json --wait는 같은 입력 필드를 사용합니다. - MCP:
spicyapi_task_create다음에spicyapi_task_wait를 쓰도록 요청하세요. - Skill:
npx skills add spicyapi-ai/spicy-skill로 설치하고spicyapiSkill에 견적을 보여 준 뒤 이 설정을 실행하도록 요청하세요.
자주 묻는 질문
의상 교체에 레퍼런스가 몇 장 필요하나요?
승인된 캐릭터와 명확한 옷 전체 모습, 두 장으로 시작하는 것이 실용적입니다. 전체 사진에 안 보이는 세부에만 세 번째 부분 사진을 추가하세요. 최대 열 장을 받지만 모순되는 네크라인이나 끈 디자인은 지시를 불명확하게 만듭니다.
새 상의만 요청했는데 왜 얼굴이 바뀌었나요?
이미지를 생성형으로 편집하며 얼굴 잠금이나 공간 마스크가 없기 때문입니다. 옷 원본에서 다른 얼굴을 제거하고 원래 포즈와 구도를 유지하며 승인된 캐릭터로 돌아가세요. 같은 포즈에서 옷이 쓸 만하다면 그 영역을 원본에 합성해 채택된 얼굴을 유지할 수 있습니다.
끈 하나가 끊어졌다고 전체 이미지를 다시 생성해야 하나요?
얼굴, 포즈, 옷이 나머지는 맞다면 먼저 짧은 틈의 국소 보정을 고려하세요. 전체 편집은 변형 가능성을 다시 만듭니다. 네크라인이나 실루엣이 틀렸다면 레퍼런스로 돌아가 구조 지시를 수정하세요.
PNG가 레이스를 더 정확하게 만드나요?
PNG는 보정 시 추가 손실 압축을 피하지만 옷 이해를 개선하지는 않습니다. 레이스를 자세히 검사하려면 2K를 선택하고 이 예시에서는 불투명 배경을 쓰세요. 투명 출력은 PNG와 알파 채널이 있는 PNG 원본 정확히 한 장을 요구하는 별도 설정입니다. 얼굴을 유지하는 방법이 아닙니다.






