SD Video
SD Video로 대사와 사운드가 맞는 5~15초 클립을 생성하세요. 텍스트로 동영상 생성, 이미지로 동영상 생성, 참조로 동영상 생성을 지원하며 480p 또는 768p 결과를 작업으로 전달합니다.
SD Video는 MiniMax H3를 기반으로 만든 SeedRouter의 동영상 생성 모델입니다. 요청 한 번으로 화면과 소리를 함께 담은 장면 전체를 만듭니다. 결과는 대사, 앰비언스, 효과음이 담긴 5~15초 클립입니다. 요청을 보내고, 반환된 작업 ID를 보관한 뒤, 완성된 동영상을 작업에서 읽어 오세요. 첫 프레임과 참조는 URL로 전달합니다.
모델 ID
| 모델 ID | 모드 | 해상도 | 길이 |
|---|---|---|---|
sd-video | text_to_video, image_to_video, reference_to_video | 480p, 768p | 5~15초 |
현재 가격은 모델 페이지에서 확인하세요.
간단한 예제
curl https://api.seedrouter.ai/v1/videos/generations \
-H "Authorization: Bearer $SEEDROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd-video",
"mode": "text_to_video",
"prompt": "A lighthouse keeper in a wool coat stands on a wet stone pier at dawn and says, \"The fog lifts at seven.\" Locked-off shot, waves slapping the stones, no music.",
"duration": 5,
"resolution": "768p",
"aspect_ratio": "16:9"
}'엔드포인트
POST https://api.seedrouter.ai/v1/videos/generations| 헤더 | 값 |
|---|---|
| Authorization | Bearer YOUR_API_KEY |
| Content-Type | application/json |
응답은 완성된 동영상이 아니라 작업({"id": "task_...", "status": "processing"})입니다. 결과는 GET /v1/tasks/{task_id}를 폴링해서 받으세요. API 키는 서버 측 코드에 보관하세요.
파라미터
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
model | string | 필수 | sd-video |
mode | enum | reference_to_video | text_to_video, image_to_video, reference_to_video. 축약형 t2v, i2v, ref2va도 받습니다. |
prompt | string | 필수 | 1~32,000자. 화면과 소리를 설명합니다. |
duration | integer | 5 | 5~15초 사이의 정수. |
resolution | enum | 768p | 480p 또는 768p. |
aspect_ratio | enum | 모드에 따라 | 21:9, 16:9, 4:3, 1:1, 3:4, 9:16, reference_to_video에서는 adaptive도 가능. image_to_video는 첫 프레임을 따릅니다. |
prompt_enhancement | enum | turbo | turbo, quality 또는 disabled. |
seed | integer | 무작위 | 부호 없는 32비트 정수. 같은 샷을 다시 만들 때 지정합니다. |
image | reference | image_to_video 전용이며 이 모드에서는 필수. 첫 프레임입니다. | |
reference_images | array | [] | reference_to_video 전용. 최대 9개. |
reference_videos | array | [] | reference_to_video 전용. 최대 3개. |
reference_audio | array | [] | reference_to_video 전용. 최대 3개. |
스키마는 엄격합니다. 알 수 없는 필드는 무시되지 않고 거부됩니다. callback_url과 callback_id는 사용할 수 없으니 작업을 폴링하세요.
모드
mode는 모델이 무엇을 조건으로 생성할지 정합니다. 모드마다 고유한 필드가 있으며, 다른 모드의 필드에 값이 들어 있으면 400을 반환합니다(빈 목록이나 null은 통과합니다).
| 모드 | 필수 | 받는 항목 |
|---|---|---|
text_to_video | prompt | 공통 필드 |
image_to_video | prompt와 image | 첫 프레임으로 쓰는 image |
reference_to_video(기본값) | prompt와 참조 이미지 또는 참조 동영상 1개 이상 | reference_images, reference_videos, reference_audio |
image_to_video는 이미지를 말 그대로 첫 프레임으로 취급하므로, 클립은 그 정지 이미지와 똑같은 모습으로 시작합니다. 제품이나 인물을 직접 구성한 장면에 넣으려면 reference_to_video를 쓰고 그 주변 장면을 설명하세요.
참조와 프롬프트 라벨
reference_to_video에서는 목록 순서가 프롬프트에서 쓰는 라벨이 됩니다. reference_images의 첫 번째 항목은 <Picture 1>, 두 번째는 <Picture 2>이고, reference_videos의 첫 번째 항목은 <Video 1>인 식입니다. 이미지, 동영상, 오디오는 각각 따로 번호가 매겨집니다. 프롬프트 보강은 프롬프트의 나머지 부분을 바꿔 쓸 수 있지만 이 라벨은 바꾸지 않습니다. 쓴 그대로 유지하려면 prompt_enhancement를 disabled로 설정하세요.
{
"model": "sd-video",
"mode": "reference_to_video",
"prompt": "A supervisor wearing the harness in <Picture 1> stands still and speaks to camera.",
"reference_images": [{ "type": "url", "url": "https://example.com/harness.jpg" }],
"duration": 10
}미디어 입력
모든 참조와 image_to_video의 첫 프레임은 공개 HTTP(S) URL을 담은 객체입니다:
{ "type": "url", "url": "https://example.com/photo.jpg" }| 입력 | 최대 크기 |
|---|---|
| 이미지 | 16MB |
| 동영상 또는 오디오 | 32MB |
이미지 최대 9개, 동영상 3개, 오디오 3개, 참조는 모두 합쳐 12개까지입니다. Base64 데이터와 에셋 ID는 받지 않습니다. 파일을 자체 스토리지에 업로드하고 그 URL을 전달하세요. URL은 리디렉션 없이 접근할 수 있어야 합니다.
과금에 영향을 주는 요소
현재 요율은 모델 가격 섹션에서 확인하세요. SD Video는 동영상 초 단위로 과금되며, 요율은 모드와 출력 해상도로 정해집니다:
billed seconds = duration (text_to_video, image_to_video)
billed seconds = duration + ceil(Σ min(each reference video's seconds, 5)) (reference_to_video)
cost = billed seconds × rate per second참조 동영상은 각각 최대 5초까지 그 길이만큼 더해집니다. 더 긴 클립도 5초만 더해집니다. 참조 이미지와 참조 오디오는 과금되지 않습니다. 참조 동영상은 요청이 접수될 때 길이를 측정하므로, 예약된 금액이 곧 과금되는 금액입니다. 최종 과금액은 계정의 사용 내역에서 확인하세요. 실패한 작업은 과금되지 않습니다.
출력 스키마
제출하면 작업이 반환됩니다:
{"id": "task_...", "model": "sd-video", "status": "processing", "created_at": 1789689600}작업 조회
GET https://api.seedrouter.ai/v1/tasks/{task_id}status가 completed 또는 failed가 될 때까지 10~20초마다 폴링하세요. 폴링 중 네트워크 타임아웃이 났다고 생성이 실패한 것은 아닙니다. 작업 ID를 보관하고 다시 확인하세요. 진행 상황을 보려고 작업을 새로 만들지 마세요.
완료된 작업
{
"id": "task_...",
"model": "sd-video",
"status": "completed",
"created_at": 1789689600,
"finished_at": 1789689720,
"output": {
"video_url": "https://static.seedrouter.ai/media/tasks/task_example/0.mp4",
"duration": 5,
"width": 1344,
"height": 768,
"aspect_ratio": "16:9",
"seed": 42
}
}동영상은 MP4(H.264), 24fps, 32kHz 스테레오 AAC 오디오입니다. aspect_ratio를 명시하면 크기가 고정됩니다:
aspect_ratio | 768p | 480p |
|---|---|---|
21:9 | 1536 × 672 | 960 × 416 |
16:9 | 1344 × 768 | 832 × 480 |
4:3 | 1024 × 768 | 640 × 480 |
1:1 | 768 × 768 | 480 × 480 |
3:4 | 768 × 1024 | 480 × 640 |
9:16 | 768 × 1344 | 480 × 832 |
text_to_video의 기본값은 16:9입니다. reference_to_video의 기본값은 adaptive로, 첫 번째 참조 이미지의 형태를, 이미지가 없으면 첫 번째 참조 동영상의 형태를 따릅니다. image_to_video는 EXIF 방향을 포함해 항상 첫 프레임을 따르므로, 형태를 바꾸려면 이미지를 잘라 내세요. adaptive 클립은 원본의 형태를 유지한 채 해상도의 짧은 변에 맞춰 크기를 조정하고 각 변을 32의 배수로 반올림하며, aspect_ratio를 약분한 픽셀 비율(예: 23:15)로 보고합니다.
완료된 작업은 사용한 seed를 보고합니다. 같은 프롬프트와 시드면 같은 클립이 반환되고, seed를 생략하면 요청마다 새 값이 선택됩니다.
오류
작업이 생성되기 전에 거부된 요청은 HTTP 오류와 error 객체를 반환하며 과금되지 않습니다. 접수된 뒤 실패한 작업은 조회 시 HTTP 200과 함께 status: "failed" 및 error 객체를 반환합니다.
코드, HTTP 상태, 재시도 지침은 공통 오류 카탈로그를 참고하세요.
{
"id": "task_...",
"model": "sd-video",
"status": "failed",
"error": {
"code": 60001,
"message": "The request was rejected by the content policy. Please revise the prompt or input images."
}
}제출 자체가 타임아웃된 경우에는 다시 보내기 전에 작업 목록을 확인하세요. 첫 번째 요청이 이미 접수되었을 수 있습니다.
팁
- 프롬프트를 길게 쓰세요. 수백 자 이상이면 결과가 더 좋아지며, 자세히 쓴다고 불리할 것은 없습니다.
- 분위기가 아니라 카메라를 지정하세요. 바디, 렌즈, 조리개는 화면을 바꾸지만 "시네마틱"은 거의 효과가 없습니다.
- 소리를 설명하세요. 룸톤, 효과음, 그리고 그 거리감입니다. 배경 음악을 원하지 않으면
no music이라고 쓰세요. 대사는 초당 약 2.5단어가 적당합니다. - 지어낸 표시가 들어가지 않도록
no logos, brand names, printed words or badges anywhere in frame을 추가하세요. - 화면 속 글자는 짧게, 철자 그대로 정확히 적고, 그것이 화면의 유일한 글자라고 명시하세요.
- 움직임은 최소로 하세요. 피사체 하나, 장소 하나, 고정 카메라가 좋습니다. 손을 가까이 보여 주는 작업과 머리카락이나 종이 같은 부드러운 움직임이 가장 약한 부분입니다.
- 샷을 다듬을 때는
seed를 고정하고 한 번에 한 구절씩만 바꾸세요.
