curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "seedance-2.0-fast-image-to-video",
"prompt": "The camera slowly zooms in, the scene gradually comes to life",
"image_urls": [
"https://example.com/first-frame.jpg"
],
"duration": 5,
"aspect_ratio": "adaptive"
}
'{
"created": 1761313744,
"id": "task-unified-1774857405-abc123",
"model": "seedance-2.0-fast-image-to-video",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 165,
"video_duration": 8
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 50,
"user_group": "default"
}
}{
"error": {
"code": "invalid_request",
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to model: seedance-2.0-fast-image-to-video",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}Seedance 2.0 Fast
Seedance 2.0 Fast Image-to-Video 이미지-비디오
- 이미지 1장을 입력하면 첫 프레임 비디오를 생성하고, 이미지 2장을 입력하면 첫/끝 프레임 비디오를 생성하며, 모델이 자동으로 판단합니다
- AIGC 유형 실사 소재 지원
- 비동기 처리 모드로, 반환된 작업 ID를 사용하여 조회하세요
- 생성된 비디오 링크는 24시간 동안 유효하며, 가능한 빨리 저장하세요
POST
/
v1
/
videos
/
generations
curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "seedance-2.0-fast-image-to-video",
"prompt": "The camera slowly zooms in, the scene gradually comes to life",
"image_urls": [
"https://example.com/first-frame.jpg"
],
"duration": 5,
"aspect_ratio": "adaptive"
}
'{
"created": 1761313744,
"id": "task-unified-1774857405-abc123",
"model": "seedance-2.0-fast-image-to-video",
"object": "video.generation.task",
"progress": 0,
"status": "pending",
"task_info": {
"can_cancel": true,
"estimated_time": 165,
"video_duration": 8
},
"type": "video",
"usage": {
"billing_rule": "per_second",
"credits_reserved": 50,
"user_group": "default"
}
}{
"error": {
"code": "invalid_request",
"message": "Invalid request parameters",
"type": "invalid_request_error"
}
}{
"error": {
"code": "unauthorized",
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": "insufficient_quota",
"message": "Insufficient quota. Please top up your account.",
"type": "insufficient_quota"
}
}{
"error": {
"code": "model_access_denied",
"message": "Token does not have access to model: seedance-2.0-fast-image-to-video",
"type": "invalid_request_error"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests, please try again later",
"type": "rate_limit_error"
}
}{
"error": {
"code": "internal_error",
"message": "Internal server error",
"type": "api_error"
}
}인증
##모든 API는 Bearer Token 인증이 필요합니다##
API Key 얻기:
API Key 관리 페이지에서 API Key를 받으세요
요청 헤더에 다음을 추가하세요:
Authorization: Bearer YOUR_API_KEY
본문
application/json
이미지 URL 배열, 1~2장
이미지 수량 및 동작:
| 이미지 수량 | 동작 | 역할 |
|---|---|---|
| 1장 | 첫 프레임 이미지-비디오 | 자동으로 first_frame 설정 |
| 2장 | 첫/끝 프레임 이미지-비디오 | 1번째 → first_frame, 2번째 → last_frame |
이미지 요구사항:
- 지원 형식:
.jpeg,.png,.webp - 화면 비율(너비/높이):
0.4~2.5 - 너비/높이 픽셀:
300~6000px - 단일 파일 크기:
30MB이하 - 요청 본문 총 크기
64MB이하, 대용량 파일은 Base64 인코딩을 사용하지 마세요 - 첫/끝 프레임 입력 시 두 이미지가 동일할 수 있습니다. 화면 비율이 다를 경우 첫 프레임을 기준으로 하며, 끝 프레임은 자동으로 크롭하여 맞춥니다
- 이미지 URL은 서버에서 직접 접근 가능해야 합니다
Required array length:
1 - 2 elements예시:
["https://example.com/first-frame.jpg"]
비디오 화면 비율, 기본값은 adaptive
선택 가능한 값:
16:9(가로),9:16(세로),1:1(정사각형),4:3,3:4,21:9(울트라와이드)adaptive: 첫 프레임 이미지 비율에 따라 가장 가까운 화면 비율을 자동 선택
각 해상도별 픽셀 값:
| 화면 비율 | 480p | 720p |
|---|---|---|
| 16:9 | 864×496 | 1280×720 |
| 4:3 | 752×560 | 1112×834 |
| 1:1 | 640×640 | 960×960 |
| 3:4 | 560×752 | 834×1112 |
| 9:16 | 496×864 | 720×1280 |
| 21:9 | 992×432 | 1470×630 |
사용 가능한 옵션:
16:9, 9:16, 1:1, 4:3, 3:4, 21:9, adaptive 예시:
"adaptive"
콘텐츠 필터, 기본값은 true
선택 가능한 값:
true: 표준 콘텐츠 안전 검사, 기본값입니다false: 콘텐츠 제한을 완화하며 +10%(1.1x)가 청구됩니다. 불법 및 금지된 콘텐츠는 이 설정과 관계없이 항상 적용됩니다
웹 검색과 함께 사용할 수 없음:
content_filter: false와model_params.web_search: true는 동시에 사용할 수 없으며, 함께 전달하면 400 파라미터 오류가 반환됩니다- 웹 검색이 필요한 경우
content_filter: true(기본값)를 유지하세요
예시:
true
작업 완료 후 HTTPS 콜백 주소
콜백 시점:
- 작업 완료(completed), 실패(failed) 또는 취소(cancelled) 시 트리거
- 과금 확인 완료 후 전송
보안 제한:
- HTTPS 프로토콜만 지원
- 내부 네트워크 IP 주소로의 콜백 금지(127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x 등)
- URL 길이는
2048자를 초과할 수 없습니다
콜백 메커니즘:
- 타임아웃:
10초 - 실패 시 최대
3회 재시도(실패 후 각각1/2/4초 후 재시도) - 콜백 응답 본문 형식은 작업 조회 API 반환 형식과 동일
- 2xx 상태 코드를 성공으로 간주하며, 다른 상태 코드는 재시도를 트리거합니다
예시:
"https://your-domain.com/webhooks/video-task-completed"
응답
비디오 생성 작업이 성공적으로 생성되었습니다