Seedance 2.0 最佳实践
使用 Seedance 2.0 旗舰模型进行高质量视频生成
🎬 Seedance 2.0 最佳实践
Seedance 2.0 是底层由火山引擎支持的强大的新一代视频生成模型。它能够极大限度保证生成的自然性、物理规律逻辑性。AILB 对其进行了 OpenAI API 标准化的原生封装,让你能够用极低的成本无缝调起复杂的视频生成任务。
支持模型名:
doubao-seedance-2-0
场景:图文联合控制(Image-to-Video)
如果你想让某一张指定的图片动起来,且严格按照文字描述中的运镜进行。你可以按照如下方式构建 Payload。
特性支持:
duration: 视频长度(默认 5s,也支持较长的视频内容生成)ratio: 画面分辨率比,支持16:9,9:16,1:1等watermark: 是否需要打上 AI 生产水印 (布尔值)
请求参数体 (JSON / cURL)
请注意 content 数组的顺序,多模态模型的常规最佳实践为:先传文字提示 -> 紧接着传入多张参考图片。
curl -X POST "https://ailb.5884.cn/v1/video/generations" \
-H "Authorization: Bearer sk-your_key_here" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2-0",
"prompt": "全程使用视频1的第一视角构图,全程使用音频1作为背景音乐。第一人称视角果茶宣传广告,seedance牌「苹苹安安」苹果果茶限定款;首帧为图片1,你的手摘下一颗带晨露的阿克苏红苹果,轻脆的苹果碰撞声;2-4 秒:快速切镜,你的手将苹果块投入雪克杯,加入冰块与茶底,用力摇晃,冰块碰撞声与摇晃声卡点轻快鼓点,背景音:「鲜切现摇」;4-6 秒:第一人称成品特写,分层果茶倒入透明杯,你的手轻挤奶盖在顶部铺展,在杯身贴上粉红包标,镜头拉近看奶盖与果茶的分层纹理;6-8 秒:第一人称手持举杯,你将图片2中的果茶举到镜头前(模拟递到观众面前的视角),杯身标签清晰可见,背景音「来一口鲜爽」,尾帧定格为图片2。背景声音统一为女生音色。",
"images": [
"https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic1.jpg",
"https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic2.jpg"
],
"metadata": {
"video_url": "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_tea_video1.mp4",
"audio_url": "https://ark-project.tos-cn-beijing.volces.com/doc_audio/r2v_tea_audio1.mp3",
"duration": 5,
"ratio": "16:9",
"watermark": false
}
}'
}'高阶多模态参数透传 (覆盖网关默认装配)
如果你想发送复杂的多模态分镜序列(例如同时带有两个不同角色 reference_image 的图片并在特定时间段出现的文本),简单的 prompt + images 无法满足结构定制。你可以选择直接把底层原生的结构体通过传入 metadata.content 透传给底层大模型。
[!WARNING] 出于网关外层的拦截器为了保障基础接口的强健性,
prompt结构为必传字段,不能为空。但要注意:如果你的
metadata中已经包含了content对象,它会在底层覆盖且无视你外层所写的prompt内容。所以此时外层的prompt请保留,你可以写成"prompt": "填写任意内容,不实际用到"来绕过网关安全校验。
[!WARNING] 关于底层画幅控制与视频传入的重要限制(必读):
- 最外层的
"size": "720x1280"仅用于通过 OpenAI 核心兼容链路的安全校验,它不会生效到火山实际生成中。真正控制火山分辨率的是metadata.ratio(或metadata.resolution)。- 当传入
reference_video(角色参考视频) 时,目前网关资产库尚未打通对视频的asset://ma_xxx免鉴权协议转换。请务必在此处直接传入带有公网可访问 URL 的真实视频链接(如你自己的 COS/OSS 服务器),否则会报模型解析失败!
透传 Payload 例子:
{
"model": "doubao-seedance-2-0",
"prompt": "随便写点占位符不影响,因为会被底下的 content 覆盖掉",
"metadata": {
"duration": 15,
"ratio": "9:16",
"content": [
{
"type": "text",
"text": "这段字才是会被火山真正采纳的分镜!..."
},
{
"type": "image_url",
"role": "reference_image",
"image_url": { "url": "asset://ma_16" }
},
{
"type": "image_url",
"role": "reference_image",
"image_url": { "url": "asset://ma_17" }
}
]
}
}异步任务处理
视频生成是一项极其耗费 GPU 算力的底层操作,往往耗时高达数分钟。AILB 对原生模型进行了包装。
当我们执行完上述请求后,不会立刻返回视频本身(否则 HTTP 会一直阻塞直到超时断开),而是会立刻返回一个兼容上游规范格式的任务回执:
第 1 步:拿到响应回执
{
"id": "chatcmpl-aigc-task-xxxx",
"object": "chat.completion",
"created": 1740992345,
"model": "doubao-seedance-2-0",
"choices": [
{
"message": {
"role": "assistant",
"content": "任务已提交。请带上原请求参数并使用相同的模型,发送至同步等待接口轮询,或在任务后台查看。"
},
"finish_reason": "stop"
}
],
// ✨ 最重要的部分:我们把上游原生的任务ID回传给你了
"task_id": "seedance-t-2026-xxxxx"
}第 2 步:轮询状态获取视频结果
获取上述响应中的 task_id 后,通过网关标准的异步查询接口 /v1/video/generations/:task_id 查询任务进度与最终的视频结果:
请求示例:cURL 方式
curl -G "https://ailb.5884.cn/v1/video/generations/seedance-t-2026-xxxxx" \
-H "Authorization: Bearer sk-your_key_here"请求示例:Python 方式
如果你在后端的 Python 脚本中进行轮询,这里封装了一段非常典型的轮询代码:
import time
import requests
API_KEY = 'sk-your_key_here'
TASK_ID = 'seedance-t-2026-xxxxx'
URL = f'https://ailb.5884.cn/v1/video/generations/{TASK_ID}'
HEADERS = {'Authorization': f'Bearer {API_KEY}'}
while True:
response = requests.get(URL, headers=HEADERS)
result = response.json()
# 真实响应将被包装在 data 节点内
status_data = result.get('data', {})
status = status_data.get('status')
print(f"当前任务状态: {status}")
if status == 'SUCCESS':
video_url = status_data.get('result_url')
print(f"✅ 生成成功!视频下载链接: {video_url}")
break
elif status in ['FAILURE', 'FAILED', 'CANCELED']:
print(f"❌ 任务终止,原因: {status_data.get('fail_reason', '未知错误')}")
break
# 每 5 秒轮询一次
time.sleep(5)第 3 步:响应体解析
当你查询到任务仍在处理中时,响应的状态码保持 200,只带有状态和进度。一旦模型生成完成,data 层内部的 status 的状态会转变为 SUCCESS:
{
"code": "success",
"data": {
"task_id": "seedance-t-2026-xxxxx",
"status": "SUCCESS",
"progress": "100%",
"result_url": "https://cdn.example.com/videos/output-sxxx.mp4"
}
}此时,data.result_url 中所包含的就是你可以直接下载的、带有临时鉴权签名的 CDN 链接!
(如果你想直接让系统自己等、不要用轮询的方法:请参阅左侧底部的 【异步与同步任务最佳实践】。)
这篇文档对您有帮助吗?
最后更新于