Doubao Seedance 2.0 视频生成
Doubao Seedance 2.0 是字节跳动推出的新一代视频生成模型,支持文本生成视频、图片驱动视频、音频驱动视频等多种模式,具备出色的运动一致性和画面连贯性,适合短视频创作、数字人和广告制作等场景。
在线体验
快速开始
bash
curl -X POST https://open.dieyuyun.com/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0",
"prompt": "一位女性新闻主播在演播室中播报新闻,正面镜头,表情自然",
"size": "1280x720",
"duration": 5
}'请求端点
| 项目 | 值 |
|---|---|
| 方法 | POST |
| 路径 | /v1/video/generations |
| Base URL | https://open.dieyuyun.com |
| 兼容协议 | OpenAI-compatible |
认证
所有请求均需在请求头中携带 API Key:
http
Authorization: Bearer YOUR_API_KEY标准请求字段
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| model | string | 是 | — | 模型标识,如 doubao-seedance-2-0 |
| prompt | string | 是 | — | 视频内容描述 |
| size | string | 否 | 1280x720 | 视频分辨率,支持 1280x720、720x1280、1920x1080 |
| duration | integer | 否 | 5 | 视频时长(秒),支持 5 或 10 |
| image | string | 否 | — | 起始帧图片 URL(图生视频模式) |
| mode | string | 否 | text | 生成模式:text(文生视频)、image(图生视频)、audio(音频驱动) |
扩展字段(metadata)
| 字段 | 类型 | 说明 |
|---|---|---|
| metadata.generate_audio | boolean | 是否自动生成配音,默认 false |
| metadata.seed | integer | 随机种子,用于结果复现 |
| metadata.camera_fixed | boolean | 是否固定镜头(不产生镜头运动),默认 false |
| metadata.watermark | boolean | 是否添加水印,默认 false |
| metadata.audio_url | string | 音频文件 URL,用于音频驱动模式 |
| metadata.video_url | string | 参考视频 URL,用于视频风格迁移 |
请求示例
文生视频
bash
curl -X POST https://open.dieyuyun.com/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0",
"prompt": "一位厨师在厨房中翻炒铁锅,火焰升腾,慢动作特写",
"size": "1280x720",
"duration": 5
}'python
import requests
response = requests.post(
"https://open.dieyuyun.com/v1/video/generations",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"model": "doubao-seedance-2-0",
"prompt": "一位厨师在厨房中翻炒铁锅,火焰升腾,慢动作特写",
"size": "1280x720",
"duration": 5
}
)
task = response.json()
task_id = task["task_id"]
print(f"任务已创建: {task_id}")javascript
const response = await fetch('https://open.dieyuyun.com/v1/video/generations', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'doubao-seedance-2-0',
prompt: '一位厨师在厨房中翻炒铁锅,火焰升腾,慢动作特写',
size: '1280x720',
duration: 5,
}),
})
const task = await response.json()
console.log('任务已创建:', task.task_id)图生视频
bash
curl -X POST https://open.dieyuyun.com/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0",
"mode": "image",
"prompt": "人物微笑并缓缓转头",
"image": "https://example.com/portrait.jpg",
"size": "720x1280",
"duration": 5
}'音频驱动
bash
curl -X POST https://open.dieyuyun.com/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0",
"mode": "audio",
"prompt": "数字人播报以下音频内容",
"image": "https://example.com/avatar.jpg",
"duration": 10,
"metadata": {
"audio_url": "https://example.com/speech.mp3"
}
}'响应格式
视频生成为异步任务,提交后返回任务 ID,需轮询获取结果。
任务创建响应
json
{
"task_id": "task_seed456",
"status": "queued",
"progress": 0,
"created_at": "2025-01-15T10:30:00Z"
}轮询任务状态
bash
curl https://open.dieyuyun.com/v1/video/generations/task_seed456 \
-H "Authorization: Bearer YOUR_API_KEY"任务完成响应
json
{
"task_id": "task_seed456",
"status": "completed",
"progress": 100,
"metadata": {
"url": "https://cdn.dieyuyun.com/videos/task_seed456.mp4",
"duration": 5,
"size": "1280x720"
},
"completed_at": "2025-01-15T10:34:00Z"
}轮询示例
python
import time
import requests
# 提交任务
resp = requests.post(
"https://open.dieyuyun.com/v1/video/generations",
headers={"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"},
json={
"model": "doubao-seedance-2-0",
"prompt": "一位女性新闻主播在演播室中播报新闻",
"duration": 5
}
)
task_id = resp.json()["task_id"]
# 轮询结果
while True:
status = requests.get(
f"https://open.dieyuyun.com/v1/video/generations/{task_id}",
headers={"Authorization": "Bearer YOUR_API_KEY"}
).json()
if status["status"] == "completed":
print(f"视频地址: {status['metadata']['url']}")
break
elif status["status"] == "failed":
print("生成失败")
break
time.sleep(5)异步任务
视频生成为异步任务。完整的任务轮询流程、状态说明和最佳实践,请参阅 异步任务。
最佳实践
- 数字人场景:使用
audio模式配合人物正面照片和语音音频,可生成口型同步的数字人视频 - 动作描述:Seedance 2.0 对动作描述敏感,详细描述人物动作可获得更好的运动一致性
- 固定镜头:对于不需要镜头运动的场景(如新闻播报),设置
metadata.camera_fixed: true可提升稳定性 - 图生视频:提供高清正面参考图可显著提升人物表情和动作的自然度
- 时长选择:5 秒适合测试和短片段,10 秒适合完整叙事场景
速率限制
| 限制项 | 值 |
|---|---|
| 每分钟请求数 | 5 RPM |
| 每日请求数 | 100 次/天 |
| 并发任务数 | 2 |
如需更高限额,请在 控制台 提交工单申请。