Text-to-Video 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는 지원하지 않음 |
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 두 등급만 노출하며, 실제 픽셀 크기는 aspect_ratio와 quality 조합에 따라 결정됩니다.
대사를 자연스럽게 들리게 하려면? 대사 부분을 곧은 큰따옴표로 감싸세요. 모델이 이를 자동으로 대사로 인식하여, 환경 내레이션으로 처리하지 않고 전용 음성 합성을 실행합니다.
관련 문서
- 모델 개요 — 6개 모델 매트릭스 전체
- Image-to-Video API — 참조 이미지가 있을 때
- Reference-to-Video API — 멀티모달 합성
- Fast 모델 —
seedance-2.0-fast-text-to-video - Async Tasks / Webhooks