소개
Seedance 2.0 image-to-video는 직접 보낸 그림에서 클립을 시작해 최대 15초 동안 움직입니다. 마지막 스틸을 더하면 컷이 반드시 거기에 도착해야 하는데, 전환과 전후 비교가 실행마다 반복 가능해지는 이유입니다.
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 | 아니요 | 선택 입력이지만 쓰는 편이 좋습니다. 이미 보이는 것을 다시 말하는 대신 프레임 다음에 일어나는 일, 즉 동작과 카메라 무빙, 시간의 흐름, 소리를 적으세요. |
image_url | 예 | 첫 프레임의 공개된, 바로 내려받을 수 있는 링크이고 필수입니다. 구도와 피사체의 생김새, 색보정, 품질 상한을 고정합니다. |
last_image_url | 아니요 | 선택인 마지막 프레임이고 |
aspect_ratio | 아니요 | 출력 구도이고 기본은 |
resolution | 아니요 | 출력 해상도입니다. 기본은 720p이고 4k까지 가며, 여기엔 업스케일 구간이 없습니다. |
duration_seconds | 아니요 | 정수 초로 4에서 15까지, 기본은 5이고 과금 대상입니다. -1을 보내면 길이를 모델이 정하며, 견적은 최대치인 15초로 잡고 실제로 나온 길이로 정산합니다. |
generate_audio | 아니요 | 자체 사운드트랙을 화면과 싱크 맞춰 만들지 여부입니다. 기본으로 켜져 있습니다. 기본값: |
seed | 아니요 | 정수 seed입니다. 빼면 실행마다 알아서 뽑습니다. |
return_last_frame | 아니요 | 영상과 함께 클립의 마지막 프레임을 별도 이미지로 돌려줍니다. 다음 첫 프레임으로 image-to-video에 넘기면 정지 화면을 직접 뽑지 않고도 샷을 이어 붙일 수 있습니다. 기본값: |
bitrate_mode | 아니요 | 전달되는 파일의 비트레이트입니다. |
watermark | 아니요 | 모델 자체의 ‘AI generated’ 표시 워터마크를 영상에 넣습니다. 기본값은 꺼짐입니다. 기본값: |
요금
| 사양 | 요금 |
|---|---|
| $0.07 / 초 |
| $0.152 / 초 |
| $0.374 / 초 |
| $0.778 / 초 |
활용 사례
정해진 시작 프레임을 애니메이션화합니다
Seedance 2.0 image-to-video는 직접 보낸 그림에서 클립을 시작해 최대 15초 동안 움직입니다. 마지막 스틸을 더하면 컷이 반드시 거기에 도착해야 하는데, 전환과 전후 비교가 실행마다 반복 가능해지는 이유입니다. 제공한 이미지가 시작 구도를 정해야 할 때 사용합니다. 이후의 움직임, 카메라, 사운드만 설명하고 원본 세부 사항이 일관되게 유지되는지 확인합니다.
무검열 코스튬·롤플레이 작업
레이스와 새틴, 꼬리와 귀 소품, 1인칭 구도, 성별을 가리지 않는 커플 장면까지 저희 쪽에서 검토하는 건 하나도 없습니다. Seedance 자체 계층이 일부 표현을 거절하니, 그런 동작은 프롬프트가 아니라 image-to-video의 첫 프레임에서 끌고 가세요.
한 컷을 세 가지 형태로 납품
화면비가 21:9부터 9:16까지 일곱 가지에 adaptive도 있습니다. 같은 프롬프트를 사이트용 16:9, 세로 피드용 9:16, 타일용 1:1로 돌리세요. 실행할 때마다 이전 컷을 다시 자른 게 아니라 새 컷이 나오니, 세 컷이 맞아야 한다면 image-to-video에서 같은 첫 프레임으로 만들고 내보내기 전에 나란히 놓고 확인하세요.
소리까지 같이 나오는 나이트라이프와 바 장면
흔들리는 칵테일, 카운터에 놓이는 잔, 붉은 등불 뒤의 낮은 웅성거림. 공간을 프롬프트에 적고 generate_audio를 켜 두세요. Seedance 2.0이 주변음을 화면에 맞춰 만들어서, 컷이 무음 소재가 아니라 분위기와 함께 도착합니다.
프롬프트 가이드 및 실전 팁
이미 가진 것에서 엔드포인트를 고릅니다
설명만 있으면 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, 오디오 켜짐입니다.
공개 예시를 작업에 맞게 조정합니다
공개 예시에서 시작하되 이 모드에 필요한 입력은 유지합니다. 피사체와 창작 방향만 바꾸고, 다음 결과를 분명한 시각 목표와 비교합니다.
Photorealistic live action, not animation. Lightning flashes and lights the whole forecourt white for an instant. She unfolds her arms, pushes off the truck door and steps out to the edge of the canopy, holding one open palm into the falling rain, then looks up into the storm and laughs. Her wet flannel shirt lifts in the gust; rain hammers the concrete and streams off the canopy edge in front of the lens. Slow dolly in past the fuel pump. No music, only rain, wind and rolling thunder.
어려운 대목은 번개입니다. 한 프레임이 새하얗게 날았다가 되돌아오고, 그 위로 렌즈 앞에서는 차양 끝으로 비가 장막처럼 쏟아지며, 카메라는 주유기를 지나 천천히 다가갑니다. 프롬프트는 첫머리에서 ‘실사이며 애니메이션이 아니다’를 못 박습니다. 이만큼 양식화된 장면에서는 매번 써 둘 값어치가 있습니다. 안 그러면 그림 쪽으로 흘러갑니다.
결과를 검토하고 의도적으로 반복합니다
요청한 움직임이 진행되는 동안에도 시작 이미지의 정체성, 조명, 프레이밍이 알아볼 수 있는지 확인합니다. 다음 시도에서는 움직임이나 카메라 결정 하나만 바꾸고 승인된 구도와 비교합니다.
출발점과 완성 모습을 정합니다
생성하기 전에 시작, 변화의 중간, 끝에서 무엇이 보여야 하는지 정하세요. 막연한 인상이 아니라 구체적인 목표를 기준으로 시퀀스를 검토할 수 있습니다.
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/image-to-video",
"input": {
"aspect_ratio": "adaptive",
"bitrate_mode": "standard",
"duration_seconds": 5,
"generate_audio": true,
"image_url": "https://example.com/reference.png",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise"
}
}'
# 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 레퍼런스에서 확인하세요.
















