简短回答
Seedance 只看请求里每个素材的role,不看你工具里勾了什么开关,也不看提示词。 图片没写 role 时,一张图会按「首帧图生视频」处理;这时再带上参考视频,就成了「首帧 + 参考素材」,原厂直接拒绝。
典型报错如下,提交任务时直接返回 400,不会创建任务,也不计费:
POST /seedance/api/v3/contents/generations/tasks 提交,给图片写 "role": "reference_image"、视频写 "role": "reference_video";视频用公网可直接下载的 URL,或先入库再用 asset:// 素材 ID 引用。
一个真实案例
一位客户在自己搭的本地创作工具里,传了一张角色图和一段视频,勾选了「全能参考」,没勾「首尾帧」,提示词里还专门写了「图一不是首帧、不开首尾帧模式」,结果每次都报上面的错。 我们在网关侧抓到了这次请求的原文(图片 Base64 已截断):
这位客户的浏览器控制台里,同一个 mp4 还有
415 Unsupported Media Type 报错,来自工具自己的本地预览接口(localhost 上的 /api/media-preview/...)。这说明工具没能把这段视频处理成可用的地址,最后把本地路径原样塞进了请求。
不要用通用视频端点提交 Seedance
/v2/videos/generations(以及 /v1/videos、/v1/video/generations)是网关的通用视频端点,字段是几家视频模型的最大公约数,表达不了 Seedance 的输入模式:
- 没有
role:分不清首帧、首尾帧和多模态参考,一图一视频这种组合一定会被当成「首帧 + 参考」 - 分辨率透传不完整:实测 2.5 请求 480p 会按 720p 出片、2.0 系请求 1080p 会按 720p 出片,而计费按实际出片结算
- 2.5 独有的参数(
omni_reference_task_type、output_format等)没有对应字段
如果你用的是第三方工具,找一找它的 Seedance 通道能不能选「原生 / 火山方舟」格式;只提供通用视频接口的工具,做不了带参考视频的任务。
正确写法:每个素材都写 role
- 三种输入模式互斥:首尾帧(2 张图,
first_frame/last_frame)、首帧(1 张图)、多模态参考(reference_image/reference_video/reference_audio)。只要带了参考视频或参考音频,所有图片都必须写reference_image - 不写
role就是首帧:单张图不写role,等同于first_frame - 提示词里用
@图像1、@视频1按传入顺序指代素材 - 参考素材数量:2.0 系最多 9 图 + 3 视频 + 3 音频,2.5 最多 30 图 + 10 视频 + 10 音频
参考视频怎么传
原厂是在自己的服务器上下载素材的,所以视频必须是原厂能直接访问到的地址。
提交前可以在任意一台能上网的机器上自查(把
<URL> 换成你的视频链接):
code=200,type 是 video/mp4 或 video/quicktime,size 与原文件一致。返回 HTML、JSON 或 4xx 都说明这个链接给不了原厂。图片链接的完整自查方法见 图片链接能打开却报格式错误。
相关文档
视频生成接口
原生端点、各输入模式的 content 组合与 role 取值
素材优先实践
参考视频为什么别用 Base64,以及入库拿素材 ID 的步骤