curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"resolution": "720p",
"audio": true
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "A cat chasing a snake through the grass while the camera tracks the motion",
"image_with_roles": [
{"url": "https://example.com/first.png", "role": "first_frame"}
],
"metadata": {
"resolution": "720p",
"audio": true
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "A girl spins beneath cherry blossoms and slowly comes to a stop at the end",
"image_with_roles": [
{"url": "https://example.com/first.png", "role": "first_frame"},
{"url": "https://example.com/last.png", "role": "last_frame"}
],
"duration": 5,
"aspect_ratio": "9:16",
"metadata": {
"resolution": "720p",
"audio": true
}
}'
import requests
response = requests.post(
"https://toapis.com/v1/videos/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "doubao-seedance-1-5-pro",
"prompt": "Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"resolution": "720p",
"audio": True
}
}
)
task = response.json()
print(f"Task ID: {task['id']}")
print(f"Status: {task['status']}")
const response = await fetch('https://toapis.com/v1/videos/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'doubao-seedance-1-5-pro',
prompt: 'Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand',
duration: 5,
aspect_ratio: '16:9',
metadata: {
resolution: '720p',
audio: true
}
})
});
const task = await response.json();
console.log(`Task ID: ${task.id}`);
console.log(`Status: ${task.status}`);
{
"id": "task_vid_xyz789ghi012",
"object": "generation.task",
"model": "doubao-seedance-1-5-pro",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
doubao-seedance-1-5-pro
Doubao SeeDance 1.5 Pro 비디오 생성
Generate videos using ByteDance Doubao SeeDance 1.5 Pro model
POST
/
v1
/
videos
/
generations
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"resolution": "720p",
"audio": true
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "A cat chasing a snake through the grass while the camera tracks the motion",
"image_with_roles": [
{"url": "https://example.com/first.png", "role": "first_frame"}
],
"metadata": {
"resolution": "720p",
"audio": true
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "A girl spins beneath cherry blossoms and slowly comes to a stop at the end",
"image_with_roles": [
{"url": "https://example.com/first.png", "role": "first_frame"},
{"url": "https://example.com/last.png", "role": "last_frame"}
],
"duration": 5,
"aspect_ratio": "9:16",
"metadata": {
"resolution": "720p",
"audio": true
}
}'
import requests
response = requests.post(
"https://toapis.com/v1/videos/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "doubao-seedance-1-5-pro",
"prompt": "Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"resolution": "720p",
"audio": True
}
}
)
task = response.json()
print(f"Task ID: {task['id']}")
print(f"Status: {task['status']}")
const response = await fetch('https://toapis.com/v1/videos/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'doubao-seedance-1-5-pro',
prompt: 'Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand',
duration: 5,
aspect_ratio: '16:9',
metadata: {
resolution: '720p',
audio: true
}
})
});
const task = await response.json();
console.log(`Task ID: ${task.id}`);
console.log(`Status: ${task.status}`);
{
"id": "task_vid_xyz789ghi012",
"object": "generation.task",
"model": "doubao-seedance-1-5-pro",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}
중국 본토 사용자 안내: 중국 본토 사용자는
https://toapis.cn 를 API 엔드포인트(Base URL)로 사용해 주세요. 본 문서의 예시에서 https://toapis.com 을 https://toapis.cn 로 바꿔 주세요.- ByteDance Doubao video generation model 1.5 Pro version
- Supports text-to-video generation
- Supports first frame / last frame control
- Does not support reference image mode
- Supports audio generation (1.5 Pro exclusive feature)
- Async task management, query results by task ID
Authorizations
string
필수
All endpoints require Bearer Token authenticationGet your API Key from the API Key Management PageAdd to request header:
Authorization: Bearer YOUR_API_KEY
Body
string
기본값:"doubao-seedance-1-5-pro"
필수
Video generation model nameAvailable models:
doubao-seedance-1-5-pro- 1.5 Pro version, supports audio generation and first/last frame control
boolean
기본값:false
선택 사항이며 기본값은
false입니다. true로 설정하면 선택된 채널의 지원 여부에 따라 소재를 준비하고 심사합니다. 비공개 소재 라이브러리가 없는 채널은 심사를 건너뛰고 기존 생성 흐름을 사용합니다.다음 필드에 미디어를 포함하는 비동기 생성 요청에 사용할 수 있습니다: image_urls, image_with_roles.텍스트만 있거나 metadata에만 소재를 지정한 요청에서는 생략하거나 false로 설정하세요. 별도의 remix 또는 extend API에는 적용되지 않습니다. true이면 asset://를 거부합니다. 모델의 기존 미디어 형식과 개수 제한은 그대로 적용됩니다. 요청 시 소재 심사를 참고하세요.string
필수
Video content descriptionDescribe scenes, actions, and style in detail for better generation resultsExample:
"Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand"integer
기본값:5
Video duration (seconds)Supported range:
4 ~ 12 secondsDefault: 5string
기본값:"16:9"
Video aspect ratioOptions:
16:9- Landscape9:16- Portrait1:1- Square4:3- Traditional ratio3:4- Vertical traditional ratio21:9- Ultra-wide
16:9Resolution and Aspect Ratio Combinations
| Resolution | Supported Aspect Ratios | Notes |
|---|---|---|
| 480p | 16:9, 4:3, 1:1, 3:4, 9:16, 21:9 | All supported |
| 720p | 16:9, 4:3, 1:1, 3:4, 9:16, 21:9 | All supported (default) |
| 1080p | 16:9, 4:3, 1:1, 3:4, 9:16, 21:9 | All supported |
string[]
Compatibility image URL array for first/last-frame image-to-video generationCompatibility rules:
- 1 image: treated as
first_frame - 2 images: treated as
first_frameandlast_frame - More than 2 images: only the first two are used
image_with_roles to explicitly specify first and last framesExample: ["https://example.com/first.png", "https://example.com/last.png"]image_urls and image_with_roles cannot be used togetherarray
Image array with roles for explicit first/last-frame control
Example:
표시 Field 설명
표시 Field 설명
[
{"url": "https://example.com/first.png", "role": "first_frame"},
{"url": "https://example.com/last.png", "role": "last_frame"}
]
image_urlsandimage_with_rolescannot be used together- Only one first frame and one last frame are supported
- 1.5 Pro does not support the
reference_imagerole. Use Seedance 2.0 if you need reference image control
object
Extended parameters
표시 Field 설명
표시 Field 설명
string
기본값:"720p"
Video resolutionOptions:
480p- Standard definition720p- High definition (default)1080p- Full HD
integer
Seed integer for controlling generation randomnessRange:
-1 ~ 2^32-1The same seed can produce similar results, but exact output is not guaranteedboolean
기본값:false
Whether to generate audioWhen set to
true, the video will include AI-generated accompanying audio1.5 Pro exclusive featureboolean
기본값:false
Whether to keep the camera fixedWhen set to
true, the camera position remains fixed throughout the videoDifferences from 1.0
| Feature | 1.0 fast/quality | 1.5 Pro |
|---|---|---|
| Default resolution | 1080p | 720p |
| Supported resolutions | 480p/720p/1080p | 480p/720p/1080p |
| Duration range | 2-12s | 4-12s |
| Audio generation | Not supported | Supported |
| Image control mode | reference single reference image | first_frame / last_frame frame mode |
응답
string
Unique task identifier for status queries
string
Object type, always
generation.taskstring
모델 name used
string
Task status
queued- Queued for processingin_progress- Processingcompleted- Successfully completedfailed- Failed
integer
Task progress percentage (0-100)
integer
Task creation timestamp (Unix timestamp)
object
Task metadata
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"resolution": "720p",
"audio": true
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "A cat chasing a snake through the grass while the camera tracks the motion",
"image_with_roles": [
{"url": "https://example.com/first.png", "role": "first_frame"}
],
"metadata": {
"resolution": "720p",
"audio": true
}
}'
curl --request POST \
--url https://toapis.com/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "doubao-seedance-1-5-pro",
"prompt": "A girl spins beneath cherry blossoms and slowly comes to a stop at the end",
"image_with_roles": [
{"url": "https://example.com/first.png", "role": "first_frame"},
{"url": "https://example.com/last.png", "role": "last_frame"}
],
"duration": 5,
"aspect_ratio": "9:16",
"metadata": {
"resolution": "720p",
"audio": true
}
}'
import requests
response = requests.post(
"https://toapis.com/v1/videos/generations",
headers={
"Authorization": "Bearer your-ToAPIs-key",
"Content-Type": "application/json"
},
json={
"model": "doubao-seedance-1-5-pro",
"prompt": "Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand",
"duration": 5,
"aspect_ratio": "16:9",
"metadata": {
"resolution": "720p",
"audio": True
}
}
)
task = response.json()
print(f"Task ID: {task['id']}")
print(f"Status: {task['status']}")
const response = await fetch('https://toapis.com/v1/videos/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-ToAPIs-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'doubao-seedance-1-5-pro',
prompt: 'Sunset at the beach, golden sunlight on the sea, waves gently hitting the sand',
duration: 5,
aspect_ratio: '16:9',
metadata: {
resolution: '720p',
audio: true
}
})
});
const task = await response.json();
console.log(`Task ID: ${task.id}`);
console.log(`Status: ${task.status}`);
{
"id": "task_vid_xyz789ghi012",
"object": "generation.task",
"model": "doubao-seedance-1-5-pro",
"status": "queued",
"progress": 0,
"created_at": 1703884800,
"metadata": {}
}