소개
Seedance 2.0 reference-to-video는 권리를 가진 여러 원본을 컷 하나로 조율합니다. 이미지가 누구와 무엇을, 클립이 움직임과 호흡을, 오디오가 컷이 떨어질 박자를 맡습니다. 별개의 계약이고 첫 프레임은 받지 않습니다.
ByteDance Seedance 2.0은 text-to-video와 image-to-video, reference-to-video를 공개합니다. 480p부터 4K까지에서 4초에서 15초짜리 클립을 자체 오디오와 함께 돌려주며, 화면비 기본값은 adaptive입니다.
| 시작 자료 | 권장 모드 |
|---|---|
| 글로 쓴 장면 | Seedance 2.0 텍스트→영상 |
| 승인된 시작 이미지 | Seedance 2.0 이미지→영상 |
| 분리된 레퍼런스 | Seedance 2.0 레퍼런스→영상 |
핵심 기능 및 하이라이트
공간음이 같은 파일에 담겨 돌아옵니다
generate_audio가 기본으로 켜져 있어서, 셰이커 속 얼음과 웃음소리, 낮게 깔리는 바의 웅성거림, 그게 일어나는 공간까지 전부 영상과 같은 과정에서 나옵니다. 결과가 사운드 작업을 기다리는 대신 이미 싱크가 맞은 채로 도착합니다. 어차피 사운드 디자이너에게 넘길 클립이라면 꺼 두세요.
레퍼런스 아홉 장, 이어지는 출연진 하나
reference-to-video는 이미지 9장, 클립 3개, 오디오 트랙 3개를 함께 받습니다. 한 얼굴의 세 각도에 의상 스틸 하나를 더한 조합이, 서로 무관한 아홉 장보다 에피소드 전반에 캐릭터를 훨씬 잘 붙잡습니다. 그리고 레퍼런스 클립은 프롬프트의 어떤 형용사도 안정적으로 재현하지 못하는 카메라 언어를 실어 나릅니다.
형태는 소재를 따라갑니다
세 엔드포인트 모두 aspect_ratio 기본값이 adaptive입니다. image-to-video에서는 클립이 첫 스틸의 형태를 유지해 세로 사진이 가로로 잘리지 않고, text-to-video에서는 모델이 프롬프트에서 형태를 정하며, reference-to-video에서는 참조한 피사체를 모두 담는 구도를 찾습니다. 게재처가 고정 형식을 요구할 때만 16:9, 9:16, 21:9를 지정하세요.
요청 파라미터
| 파라미터 | 필수 | 설명 |
|---|---|---|
prompt | 예 | 필수이고, 여기서는 캐스팅도 맡습니다. 레퍼런스는 보낸 순서대로 인용되니 어느 이미지가 어느 캐릭터인지, 각 클립이 무엇을 주는지, 오디오가 무엇을 위한 건지 적어 주세요. |
reference_image_urls | 아니요 | 레퍼런스 이미지 최대 9장이고 캐릭터나 스타일, 세트를 붙잡는 데 씁니다. 거의 똑같은 프레임을 잔뜩 넣는 것보다 같은 캐릭터의 두세 각도가 대개 더 잘 통합니다. 9개 이하 |
reference_video_urls | 아니요 | 레퍼런스 클립 최대 3개이고, 각각 2초에서 15초이며 합쳐 15초를 넘지 않습니다. 움직임과 호흡, 카메라 언어를 실어 줍니다. 3개 이하 |
reference_audio_urls | 아니요 | 레퍼런스 오디오 파일 최대 3개이고, 각각 2초에서 15초이며 합쳐 15초를 넘지 않습니다. 말투나 템포, 음악 구절처럼 소리의 기준점을 줘서 움직임과 컷 지점이 거기에 맞춰지게 합니다. 3개 이하 |
aspect_ratio | 아니요 | 기본은 |
resolution | 아니요 | 480p, 720p, 1080p, 4k 중에서 고르고 기본은 720p이며 과금 대상에 직접 반영됩니다. 출력 구간만 정할 뿐 저해상도 레퍼런스를 선명하게 만들지는 않습니다. |
duration_seconds | 아니요 | 4초에서 15초까지이고 기본은 5입니다. -1을 보내면 길이를 모델이 정합니다. |
generate_audio | 아니요 | 기본으로 켜져 있습니다. 화면에 싱크된 자체 사운드트랙을 만듭니다. 기본값: |
seed | 아니요 | 정수 seed입니다. 빼면 실행마다 알아서 뽑습니다. |
return_last_frame | 아니요 | 영상과 함께 클립의 마지막 프레임을 별도 이미지로 돌려줍니다. 다음 첫 프레임으로 image-to-video에 넘기면 정지 화면을 직접 뽑지 않고도 샷을 이어 붙일 수 있습니다. 기본값: |
bitrate_mode | 아니요 | 전달되는 파일의 비트레이트입니다. |
watermark | 아니요 | 모델 자체의 ‘AI generated’ 표시 워터마크를 영상에 넣습니다. 기본값은 꺼짐입니다. 기본값: |
요금
참조 클립의 길이도 과금 대상 초에 합산됩니다. 실행 전에는 클립 길이를 측정할 수 없어 우선 최대 15초분을 선점해 두었다가, 정산 시점에 사용하지 않은 금액을 즉시 돌려드립니다. 실제 사용된 초만 청구됩니다.
| 해상도 | With video: 예 | With video: 아니요 |
|---|---|---|
| $0.0431 / 초 | $0.07 / 초 |
| $0.0928 / 초 | $0.152 / 초 |
| $0.2284 / 초 | $0.374 / 초 |
| $0.778 / 초 | $0.778 / 초 |
활용 사례
각 레퍼런스에 역할을 부여합니다
Seedance 2.0 reference-to-video는 권리를 가진 여러 원본을 컷 하나로 조율합니다. 이미지가 누구와 무엇을, 클립이 움직임과 호흡을, 오디오가 컷이 떨어질 박자를 맡습니다. 별개의 계약이고 첫 프레임은 받지 않습니다. 서로 다른 이미지, 클립 또는 오디오가 새 샷의 서로 다른 부분을 안내해야 할 때 사용합니다. 연결할 동작을 요청하기 전에 각 에셋이 무엇을 제공하는지 지정합니다.
소리까지 같이 나오는 나이트라이프와 바 장면
흔들리는 칵테일, 카운터에 놓이는 잔, 붉은 등불 뒤의 낮은 웅성거림. 공간을 프롬프트에 적고 generate_audio를 켜 두세요. Seedance 2.0이 주변음을 화면에 맞춰 만들어서, 컷이 무음 소재가 아니라 분위기와 함께 도착합니다.
여러 컷에 걸친 캠페인 연속성
제품을 세 각도로, 모델을 두 각도로 reference-to-video에 넣고 컷마다 프롬프트만 바꾸세요. 같은 병, 같은 얼굴, 같은 재킷이 요청과 함께 이동하니, 손으로 색을 맞추는 작업 없이도 세트가 하나로 묶입니다.
무검열 코스튬·롤플레이 작업
레이스와 새틴, 꼬리와 귀 소품, 1인칭 구도, 성별을 가리지 않는 커플 장면까지 저희 쪽에서 검토하는 건 하나도 없습니다. Seedance 자체 계층이 일부 표현을 거절하니, 그런 동작은 프롬프트가 아니라 image-to-video의 첫 프레임에서 끌고 가세요.
프롬프트 가이드 및 실전 팁
이미 가진 것에서 엔드포인트를 고릅니다
설명만 있으면 text-to-video, 살아남아야 하는 스틸이 있으면 image-to-video, 컷마다 반복돼야 하는 출연진이나 제품, 움직임이 있으면 reference-to-video입니다. 패밀리 이름으로 호출하면 보내는 필드에 따라 엔드포인트가 정해집니다.
컷을 촬영 리스트처럼 씁니다
피사체, 동작, 카메라, 빛, 소리를 한 문장에 하나씩 담으세요. 이 페이지의 클립은 정확히 이 텍스트에서 나왔습니다. "Photorealistic live-action, not animation. A real adult woman in a chocolate satin robe works behind a dim neon bar, a large fluffy faux fox tail accessory clipped at the small of her back. She shakes a cocktail, turns to set the glass on the counter and the tail sways with the movement, then she looks back at camera with a teasing smile. Warm red lantern light, 35mm grain, slow push-in, ice rattling and low bar chatter." 5초, 720p, 16:9, 오디오 켜짐입니다.
공개 예시를 작업에 맞게 조정합니다
공개 예시에서 시작하되 이 모드에 필요한 입력은 유지합니다. 피사체와 창작 방향만 바꾸고, 다음 결과를 분명한 시각 목표와 비교합니다.
The woman from @Image1, in the same sheer black robe, steps out onto the rooftop from @Image2 at sunset. She walks slowly between the drying white sheets; the wind lifts one sheet across her body and lets it fall away. She stops at the parapet, the robe sliding off one shoulder, and glances back over her shoulder into camera. Warm golden backlight, slow tracking shot, no cuts.
참조 하나는 인물, 다른 하나는 장소입니다. 어떤 이미지가 어떤 역할인지 프롬프트에 밝혀 두었기 때문에, 촛불 초상 속 여성이 같은 로브 차림으로 해 질 녘 옥상에 나타나고 널어 둔 시트가 그녀가 지나가는 무대가 됩니다.
결과를 검토하고 의도적으로 반복합니다
각 참조가 인물, 환경, 움직임, 소리 중 예정된 역할을 하는지 확인합니다. 충돌하면 프롬프트를 더하기 전에 모순되는 소스 하나를 먼저 제거합니다.
출발점과 완성 모습을 정합니다
생성하기 전에 시작, 변화의 중간, 끝에서 무엇이 보여야 하는지 정하세요. 막연한 인상이 아니라 구체적인 목표를 기준으로 시퀀스를 검토할 수 있습니다.
소스와 움직임을 나누어 검토합니다
원본 이미지는 알아볼 세부 사항을 정하고, 지시문은 그다음에 일어날 일을 설명합니다. 움직임이 시작 구도를 지우지 않도록 두 결정을 함께 검토하세요.
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/seedance-2.0/reference-to-video",
"input": {
"aspect_ratio": "adaptive",
"bitrate_mode": "standard",
"duration_seconds": 5,
"generate_audio": true,
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "720p",
"reference_image_urls": [
"https://example.com/reference.png"
]
}
}'
# 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 레퍼런스에서 확인하세요.
















