Seedance 2.0 API 全量开放:把你的视频工作流做成 Agent
Seedance 2.0 这类“脑子很灵”的视频模型,最爽的地方不是你手动点按钮出片,而是能接进你的工作流:选题→脚本→分镜→素材→生成→剪辑→发布,一条龙。
现在 API 全量开放后,国内用火山引擎就能直接调,海外用 BytePlus 接。按量付费也很友好:你做一个小工具、一个 Skill、一个 MCP Server,都能跑起来,不用一上来就搞很重的系统。
下面按“你照着做就能通”的方式来。
你该选火山引擎还是 BytePlus?
- 国内账号/国内业务:走 火山引擎(Volcengine)
- 海外账号/海外业务:走 BytePlus
两边本质都是接 Seedance 2.0 的能力,差别主要在控制台、计费、合规与可用地域。
Seedance 2.0 API 能做什么(挑你用得上的)
1)多模态输入:文本 / 图片 / 音频 / 视频
火山引擎这边已经明确支持四种模态输入。
你可以玩这些组合:
- 文生视频:脚本 + 风格描述 → 出镜头
- 图生视频:你给角色立绘/产品图 → 做成动图/镜头
- 音频驱动:你给配音 → 让角色对口型(具体能力以控制台为准)
- 视频驱动/参考:你给一段参考视频 → 迁移风格/节奏(看你开通的能力)
2)人脸登记 & 肖像授权
这点对做“口播短剧”“虚拟分身”太关键了。
- 你可以做自己的人脸登记 + 肖像授权 → 生成带你脸的视频
- 平台也预置了一堆虚拟人像特征 → 不想露脸就用现成的
提醒一句:这个环节经常涉及审核与合规,别偷懒,按平台流程来。
适合哪些人用:几个真实场景
场景 A:你想每天早下班一小时的剪辑党 🎬
- 你把“口播脚本 + 参考风格 + BGM + 片头模板”固化成一个工作流
- 每天只改脚本,其他全部自动化
场景 B:你在做 AI 短剧/长剧
短剧现在真离谱,热度你也看到了。
你可以把流程拆开:
- 编剧 Agent 出大纲
- 分镜 Agent 出镜头表
- Seedance 负责出镜头
- 后处理 Agent 做字幕、转场、封面、发布
场景 C:你想做一个“视频 Skill / MCP 工具”
现在 vibe coding + Skills + MCP 很能打。
你做一个 Skill:
- 输入:一句话需求 + 角色设定 + 风格
- 输出:可直接发布的成片/镜头包
别人按量付费用你的 Skill,你也不用维护一堆 GUI 页面。
接入路线图(照着做就行)
Step 1:开通控制台能力 & 拿到鉴权信息
你需要准备:
- 对应平台账号:火山引擎 / BytePlus
- API 鉴权:Access Key/Secret 或平台要求的 Token
- 额度与计费开通:不然你会在“鉴权成功但调用失败”里怀疑人生
鉴权字段名、签名方式、请求域名会随平台迭代。别硬猜,直接以控制台文档为准。
Step 2:确定你要的输入类型
常见做法:
- 只做 文生视频:最快跑通 MVP
- 再加 图生视频:用角色图锁定一致性
- 再加 音频:让成片更像“真人口播”
Step 3:把“生成”做成异步任务
视频生成大概率不是秒回。
推荐的工程姿势:
- 提交任务 → 拿到 task_id
- 轮询/回调 查询状态
- 成功 → 拉取视频地址/下载
- 失败 → 记录错误码 + 参数快照(方便复现)
Step 4:接进你的 Agent / 工作流
你可以把 Seedance 当成一个工具节点:
- 输入:prompt / 素材 URL / 风格参数
- 输出:video URL / metadata(时长、分辨率、镜头信息)
再往后才是你最熟的:剪辑、配字幕、封面、发布、数据回流。
调用示例(用占位字段,结构给你抄)
说明:下面用“通用结构”写,字段名请按火山引擎/BytePlus 实际文档替换。别照抄到线上直接跑。
1)cURL:提交一个文生视频任务
curl -X POST "https://<api-host>/v1/video/generate" \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0",
"input": {
"text": "一支放在桌上的银色钢笔,微距镜头,光线从窗边斜射进来,电影质感,镜头缓慢推进"
},
"params": {
"duration": 6,
"resolution": "1080p",
"fps": 24,
"style": "cinematic"
}
}'
返回你重点盯这几个:
task_id:后面查询用status:queued/running/succeeded/failederror:失败时别只打印一句“失败了”,把错误码也存下来
2)cURL:查询任务状态
curl -X GET "https://<api-host>/v1/video/tasks/<task_id>" \
-H "Authorization: Bearer <YOUR_TOKEN>"
成功后一般会给:
output.video_url:成片地址output.cover_url:封面output.meta:时长、分辨率、编码信息
3)Python:封装成一个“视频生成工具函数”
import time
import requests
API_HOST = "https://<api-host>"
TOKEN = "<YOUR_TOKEN>"
headers = {
"Authorization": f"Bearer {TOKEN}",
"Content-Type": "application/json",
}
def submit(prompt: str) -> str:
url = f"{API_HOST}/v1/video/generate"
payload = {
"model": "seedance-2.0",
"input": {"text": prompt},
"params": {
"duration": 6,
"resolution": "1080p",
"fps": 24,
"style": "cinematic",
},
}
r = requests.post(url, json=payload, headers=headers, timeout=60)
r.raise_for_status()
return r.json()["task_id"]
def wait_result(task_id: str, timeout_sec: int = 600):
url = f"{API_HOST}/v1/video/tasks/{task_id}"
start = time.time()
while True:
r = requests.get(url, headers=headers, timeout=30)
r.raise_for_status()
data = r.json()
status = data.get("status")
if status == "succeeded":
return data["output"]["video_url"]
if status == "failed":
raise RuntimeError(data.get("error", "unknown error"))
if time.time() - start > timeout_sec:
raise TimeoutError("task timeout")
time.sleep(3)
if __name__ == "__main__":
task = submit("桌面上一杯冒着热气的咖啡,清晨阳光,轻微手持感,日系暖色")
video_url = wait_result(task)
print("OK:", video_url)
你把这段函数塞进:
- 你的 Agent 工具箱
- 你的 MCP Server
- 或一个最简单的 Webhook 服务
就能让别人一句话生成视频。
人脸登记与肖像授权:建议你这样做
这块别搞“我先跑起来再说”。跑起来很容易,卡在审核更难受。
一个稳的流程:
- 控制台里把人脸登记按要求传素材(清晰、角度、光照)
- 走完肖像授权的流程(该签的签,该勾的勾)
- 用平台提供的预置虚拟人像先把流程跑通
- 等你的人脸资产通过后,再切到真实人脸
这样你不会因为一个“人脸还没过审”把整个项目拖死。
做视频 Agent 的参数小抄(少走弯路)
建议你把参数做成配置文件,别写死在代码里:
duration:短视频镜头 4–8 秒更好控fps:24/30 常用,别乱加,成本会上去resolution:先 720p 跑流程,确定效果再上 1080pstyle:固定一个风格词表,减少“每次出片都像换了个导演”seed(如果支持):想复现就得保留
再加一个实践经验:
- 让编剧 Agent 输出镜头级 prompt,别只给大段散文
- 每个镜头给:主体、动作、镜头语言、光线、景别、情绪
你会发现稳定性立刻上来。
避坑清单(血压稳住)
- 只写一句“生成一个好看的视频”:模型会自由发挥到你怀疑人生。把镜头语言写出来。
- 不做异步:你用同步请求等 2 分钟,服务端超时直接给你断。
- 不记录请求参数:失败了没法复现,只能靠猜。
- 分辨率一上来就拉满:成本飙升,调参还慢。
- 人脸素材随手拍:光线差、角度怪,后面出片“像你但又不像你”,最尴尬。
- 没做内容安全与合规:准备上线就别头铁,平台审核和风控比你想的严格。
一个很实用的落地路线(适合个人/小团队)
- 用预置虚拟人像跑通“脚本→镜头→生成→剪辑→发布”
- 把生成封装成 Skill / MCP 工具,对外提供统一输入输出
- 加上素材库(本地也行)和缓存,把常用角色、场景、BGM 固化
- 等数据起来后再优化:一致性、角色多镜头、批量生成、成本控制
你会发现:真正值钱的不是“点一下出视频”,而是你那套能持续产出的流程。
如果你愿意,我可以按你的目标把“视频 Agent 的工具清单”也给你列出来:比如脚本格式、镜头 JSON Schema、MCP 工具定义、以及你现在最常用的剪辑/发布平台怎么接。你告诉我你做的是口播、短剧,还是产品视频就行。