Text-to-Video API
Seedance 2.5를 찾고 계신가요? Seedance 2.5(네이티브 4K · 30s · 최대 50개 참조)는 2026년 6월 23일 발표되었으며 공개 API는 2026년 7월 초 제공 예정입니다. 2.5의 공식 model ID와 파라미터는 아직 공개되지 않았습니다 — 이 페이지는 현재 사용 가능한 Seedance 2.0 API를 다룹니다. API 액세스 받기 →.
순수 텍스트 프롬프트만으로 영상을 생성합니다. Seedance 2.0에서 가장 일반적으로 쓰이는 모드이며, 크리에이티브 아이데이션, 광고 스크립트, 스토리보드, 숏폼 콘텐츠처럼 시작 시점에 시각적 참조 자료가 없는 상황에 적합합니다.
엔드포인트
POST https://api.evolink.ai/v1/videos/generations
모델 ID: seedance-2.0-text-to-video
더 빠른 생성 속도와 낮은 비용을 원한다면
seedance-2.0-fast-text-to-video를 사용하세요. 매개변수 구조는 동일합니다.
요청 매개변수
| 매개변수 | 유형 | 필수 | 기본값 | 설명 |
|---|---|---|---|---|
model | string | 예 | — | seedance-2.0-text-to-video로 지정해야 합니다 |
prompt | string | 예 | — | 영상 내용 설명. 한국어/중국어 500자 이하 또는 영어 1000단어 이하 |
duration | integer | 아니요 | 5 | 영상 길이(초). 4~15 범위. 초 단위로 과금됨 |
quality | string | 아니요 | 720p | 품질 등급: 480p, 720p, 1080p, 4k |
aspect_ratio | string | 아니요 | 16:9 | 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, adaptive |
generate_audio | boolean | 아니요 | true | 동기화된 오디오(환경음, 음악, 대사)를 생성할지 여부 |
model_params.web_search | boolean | 아니요 | false | 활성화하면 모델이 최신 정보 검색이 필요한지 자율적으로 판단합니다. 실제 검색이 발생한 경우에만 과금됩니다 |
callback_url | string | 아니요 | — | 작업 완료 콜백을 받을 HTTPS URL. 최대 2048자, 사설 IP 금지 |
매개변수 상세
좋은 prompt 작성
- 피사체, 동작, 카메라 워크(팬/틸트/줌/돌리), 조명 분위기를 묘사하세요
- 대사는 곧은 큰따옴표로 감싸 전용 음성 합성을 트리거하세요:
그녀는 돌아서서 말했다: "드디어 왔구나." - 프롬프트 안에서 특정 종횡비 값(예: "2.35:1")을 요구하지 마세요. 대신
aspect_ratio필드를 사용하세요
generate_audio: false 는 무음 영상을 출력합니다. 시각적 품질 손실은 없으며 대역폭만 약간 절약됩니다. 오디오 생성 자체에는 추가 비용이 없습니다.
model_params.web_search: true 는 다음과 같은 경우에 유용합니다.
- 프롬프트가 "최신", "오늘", "이번 주" 같은 시간적 내용을 참조할 때
- 실제 사건, 인물, 장소를 언급해야 하는 브랜드 광고가 필요할 때
- 모델이 검색의 필요성을 내부적으로 판단합니다. 검색이 필요 없으면 수행되지 않고 추가 과금도 발생하지 않습니다
요청 예제
cURL
curl -X POST https://api.evolink.ai/v1/videos/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0-text-to-video",
"prompt": "A macro lens focuses on a green glass frog on a leaf. The focus gradually shifts from its smooth skin to its completely transparent abdomen, where a bright red heart is beating powerfully and rhythmically.",
"duration": 8,
"quality": "720p",
"aspect_ratio": "16:9",
"generate_audio": true
}'
Python
import requests
response = requests.post(
"https://api.evolink.ai/v1/videos/generations",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"model": "seedance-2.0-text-to-video",
"prompt": "A luxury watch rotating slowly on a marble surface, soft studio lighting, product showcase, cinematic",
"duration": 8,
"quality": "720p",
"aspect_ratio": "16:9",
"generate_audio": False
}
)
task = response.json()
print(f"Task ID: {task['id']}")
Node.js
const res = await fetch("https://api.evolink.ai/v1/videos/generations", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "seedance-2.0-text-to-video",
prompt: "A cinematic sunset over the ocean, wide angle",
duration: 5,
quality: "720p",
aspect_ratio: "16:9",
model_params: { web_search: false }
})
});
const task = await res.json();
console.log("Task ID:", task.id);
응답
요청이 성공적으로 접수되면 즉시 작업 객체를 반환합니다(HTTP 200). 이 시점에서는 아직 생성이 시작되지 않은 상태입니다.
{
"id": "task-unified-1774857405-abc123",
"object": "video.generation.task",
"created": 1774857405,
"model": "seedance-2.0-text-to-video",
"status": "pending",
"progress": 0,
"type": "video",
"task_info": {
"can_cancel": true,
"estimated_time": 165,
"video_duration": 8
},
"usage": {
"billing_rule": "per_second",
"credits_reserved": 50,
"user_group": "default"
}
}
필드 레퍼런스
| 필드 | 설명 |
|---|---|
id | 작업 ID — 상태 폴링이나 웹훅 매칭에 사용 |
status | pending → processing → completed / failed |
progress | 0~100 퍼센트 |
task_info.estimated_time | 완료까지 예상 소요 시간(초) |
task_info.video_duration | 요청한 영상 길이 |
task_info.can_cancel | 취소 엔드포인트를 아직 호출할 수 있는지 여부 |
usage.billing_rule | 항상 per_second |
usage.credits_reserved | 예약된 크레딧 — 실제 과금은 작업이 completed 상태가 되었을 때 정산됨 |
결과 가져오기
요청을 보낸 뒤 최종 영상 URL을 받는 방법은 두 가지입니다.
- 폴링 — 5초마다
GET /v1/tasks/{id}호출. Async Tasks 참고. - 웹훅 — 요청에
callback_url을 전달하면 작업이 완료될 때 시스템이 결과를 POST로 보냅니다. Webhooks 참고.
생성된 영상 URL은 24시간 동안 유효합니다. 자체 스토리지로 즉시 다운로드해 보관하세요.
FAQ
text-to-video에 image_urls를 전달하면 왜 오류가 나나요?
text-to-video는 어떤 미디어 입력도 받지 않습니다. 참조 이미지가 있다면 image-to-video를 사용하세요.
정확한 픽셀 해상도를 지정할 수 있나요?
없습니다. quality는 480p, 720p, 1080p, 4k 등급을 노출하며, 실제 픽셀 크기는 aspect_ratio와 quality 조합에 따라 결정됩니다.
대사를 자연스럽게 들리게 하려면? 대사 부분을 곧은 큰따옴표로 감싸세요. 모델이 이를 자동으로 대사로 인식하여, 환경 내레이션으로 처리하지 않고 전용 음성 합성을 실행합니다.
관련 문서
- 모델 개요 — 6개 모델 매트릭스 전체
- Image-to-Video API — 참조 이미지가 있을 때
- Reference-to-Video API — 멀티모달 합성
- Fast 모델 —
seedance-2.0-fast-text-to-video - Async Tasks / Webhooks