平台约定
- Base URL:
https://ai.xihuyun.com - 所有请求使用平台 API Key:
Authorization: Bearer <API_KEY>。 model应使用平台模型页展示的可用模型名;需要固定渠道时,复制完整的渠道路由模型名。- Asset 上传和视频生成必须使用同一个 API Key。
- Asset 引用统一使用上传响应中的完整
data.asset_uri,格式为asset://随机assetid。不要自行添加固定前缀,也不要传对象存储 URL或预览 URL。
文档版本:2026-09-01 适用范围:本项目统一视频任务接口中的 Seedance / Doubao 视频模型本文档描述用户通过本项目网关调用 Seedance 模型的方式。请求发往本项目部署域名,网关负责模型路由、上游请求转换、异步任务保存和任务状态查询;客户端不需要直接调用火山方舟或其他上游地址。
1. 基础信息
将下面的变量替换为实际值:鉴权
所有提交、查询和视频内容下载请求都使用用户 API 令牌:接口列表
提交和查询必须使用同一种路径风格。例如使用
/v1/videos 提交后,应使用 /v1/videos/{task_id} 查询。不同入口返回字段基本一致;/v1/videos 及 /v1/videos/{task_id} 的时间字段为 Unix 秒,/v1/video/generations* 和 /v1/videos/generations* 入口的时间字段为 RFC3339 字符串。
2. 快速开始
2.1 文生视频
id 是本项目生成的公开任务 ID。后续查询时必须使用这个 ID,不要使用上游返回的内部任务 ID。
2.2 轮询任务
status 变为 completed 或 failed。
完成响应示例:
output.video_url 在上游返回视频地址时出现;output.last_frame_url 只有在请求开启 return_last_frame 且上游返回尾帧时出现。
2.3 下载视频内容
如果客户端不希望直接访问上游视频地址,可以使用本项目的视频内容代理:404,任务尚未完成返回 400。
3. 请求参数
提交接口使用application/json。model 必填;prompt 通常必填,但图生视频、参考生成可以使用视觉参考替代纯文本提示词,Seedance 2.5 还允许纯音频参考请求。
3.1 通用字段
duration 是规范字段。旧客户端可以传 seconds,但当 duration 同时存在时,以 duration 为准。size 也属于兼容字段;新调用请使用 resolution 和 ratio,尤其不要用 size 表示 Seedance 2.5 的分辨率。
3.2 结构化参考素材
推荐使用reference_inputs,服务端会将其转换为上游 Seedance 所需的 content[]:
服务端生成的上游内容项大致如下:
task_type、options 等非本项目请求字段;项目会根据统一字段构造上游 content[]。
3.3 旧版 metadata 兼容写法
下列写法仍可用于传入视频和音频参考:
metadata.video_url 或 metadata.audio_url。首尾帧可以通过 metadata.first_frame_url 和 metadata.last_frame_url 指定;使用 reference_inputs 的 role 更直观,也更适合同时传递时长信息。
4. Seedance 模型与能力限制
4.1 当前内置模型目录
当前 Doubao 视频适配器内置以下模型名。实际可用模型还受管理员渠道、模型映射、分组和令牌权限影响,请以部署实例的模型列表为准:
Seedance 2.5 常见别名(例如
seedance-2.5、Seedance2.5、doubao-seedance-2.5)可被项目识别并在发送到上游时归一化为 doubao-seedance-2-5-260628;公开调用仍应优先使用部署实例实际配置的模型名。
4.2 Seedance 1.x / 1.5 与 2.0
项目对 Seedance 家族的通用输入能力按以下上限校验:
Seedance 1.x / 1.5 和 2.0 的具体时长、分辨率和上游能力可能随已配置渠道而变化。当前项目不会把 Seedance 2.5 的固定范围自动套用到 2.0;请使用该渠道/模型的实际文档或控制台配置。
Seedance 2.0(含
doubao-seedance-2-0-fast-260128)的注意事项:
- 音频参考必须同时存在至少一个图片或视频参考,不能仅传音频。
n只能为1;不能请求多输出。seed、frames、camera_fixed、service_tier、fps、motion、negative_prompt不支持,传入后会在扣费前拒绝。output_format对 Seedance 2.0 不支持;需要指定输出格式时使用 Seedance 2.5。- 未传
generate_audio时,项目按true发送;如不需要生成音频,请明确传"generate_audio": false。
4.3 Seedance 2.5
Seedance 2.5 只按明确的 2.5 模型标识启用以下契约:
音频参考可以单独使用,不要求同时传图片或视频。例如:
首帧和尾帧
首帧/尾帧通过图片参考的role 指定:
- 最多一个
first_frame和一个last_frame。 - 传
last_frame时必须同时传first_frame。 - 使用首帧或尾帧时,
ratio必须为adaptive或省略。 - 首尾帧模式不能同时混入
reference_image、reference_video或reference_audio参考角色;如需混合素材,请使用普通参考生成模式。
Seedance 2.5 专用字段
示例:
5. 状态和响应字段
5.1 状态值
progress 为整数百分比。异步生成阶段的进度是网关根据上游状态映射的估算值,不应被当作精确的剩余时间。
5.2 标准响应字段
6. 错误处理
6.1 Seedance 参数校验错误
请求参数错误通常返回 HTTP400:
6.2 鉴权和权限错误
鉴权失败使用 OpenAI 风格错误结构:
客户端应同时检查 HTTP 状态码和 JSON 中的
code、message 或 error,不要只依据 HTTP 200 判断视频已经生成成功。
7. 调用建议
- 新项目使用
/v1/videos和/v1/videos/{task_id},并按 Unix 秒解析时间字段。 - 所有图片、视频、音频 URL 都应能被上游服务访问;本地文件需要先上传到项目素材接口或其他可访问存储,再把返回 URL 作为参考地址。
- 对视频和音频参考填写准确的
duration_seconds,便于 2.5 在提交前完成时长校验。 - 2.0/2.5 只提交项目已声明支持的字段;不支持的字段会在预扣费前拒绝。
- 任务提交成功只表示任务已进入异步队列;必须继续轮询到
completed或failed。 - 费用由本项目当前渠道、模型、分组和视频计价配置决定,不要在客户端硬编码价格。生成任务可能先预扣额度,最终按任务实际结果完成结算。
- 不要把同一任务的提交入口和查询入口混用,避免时间格式和响应适配方式不一致。
Asset 素材库 API(Seedance 2.0)
本文说明如何使用平台 Asset 素材库 API 上传、管理图片/视频/音频素材,并将素材引用到 Seedance 2.0 视频生成请求中。1. 快速开始
准备平台地址和 API Key:POST /v1/assets上传素材。- 从响应中读取
data.asset_uri,例如asset://随机assetid。 - 将该 URI 放入 Seedance 2.0 的
images或content字段。 - 使用返回的任务 ID 查询生成状态。
2. 接口概览
素材属于当前 API Key 对应的用户。生成请求也应使用同一个 API Key,以便平台校验
asset:// 的归属。
3. 上传本地素材
请求
支持的扩展名:
单文件成功响应
data.asset_uri。不要把对象存储 URL、预览 URL 或自行拼接的 ID 当作 Seedance 素材引用。
批量上传
upload_batch_id:本批次 ID。assets:成功创建的素材列表。items:逐文件结果;每项包含status,失败项包含error。
items,不要只根据 HTTP 状态判断所有文件是否成功。
4. 从在线地址导入
在线地址必须能被服务端访问。远程地址失效、扩展名不受支持或下载超时都会导致导入失败。
5. 查询和管理素材
查询列表
查询详情
删除和恢复
文件夹
创建文件夹:6. 使用 Asset 调用 Seedance 2.0
推荐入口:POST /v1/videos
queued、in_progress、completed、succeeded、failed 和 cancelled。建议每 2~5 秒查询一次,不要因为任务尚未完成而重复提交。
原生多模态入口:POST /v1/video/generations
需要显式声明参考图片角色时,可以使用:
prompt 必须放在请求顶层。不要只把文字写入 content。
7. 参数和兼容性提示
Seedance 2.0 不要传入当前契约未支持的
frames、seed、camera_fixed、fps、motion、negative_prompt 等字段。最终可用的模型、时长、分辨率、比例和素材数量仍以平台模型配置及接口返回为准。
8. 通用响应和错误处理
成功响应通常包含:
上传失败时,先修正文件或参数再重试。Seedance 任务提交成功后,优先轮询原任务;重复提交可能造成重复任务和重复计费。
9. Python 示例
项目提供了可复用脚本:seedance2_platform.py。它会自动上传本地图片,并可提交和轮询 Seedance 任务:10. 使用建议
- 保存上传响应中的
asset_id和asset_uri,不要依赖临时预览 URL。 - 在提交视频任务前,确认素材状态为
Active或接口返回的可用状态。 - 图片、视频、音频分别上传并记录用途,生成请求只传对应的
asset://URI。 - 生产环境为 API 请求设置超时、重试上限和任务轮询超时。
- 记录业务侧的任务 ID 与素材 URI,便于定位失败任务;不要记录完整 API Key。