Skip to main content
POST
相对 2.0 的主要变化:时长上限 15s → 30s;参考素材 9 图 + 3 视频 + 3 音频 → 30 图 + 10 视频 + 10 音频;支持纯音频参考;新增 mov 输出。
注意:分辨率仅 480p / 720p(2.0 的 1080p / 4k 在 2.5 不可用)。

认证

string
必填
Bearer Token 认证。访问 API Key 管理页面 获取密钥。

请求参数

string
必填
固定值:seedance-2.5
boolean
默认值:"false"
是否在提交视频任务前执行内容审核。
  • true:使用 omni-moderation-latest 审核提示词和输入图片
  • false 或不传:不发起审核请求,不增加审核成本与延迟(默认)
审核范围:
  • 文本:promptnegative_prompt
  • 图片:image_urlsimage_with_roles[].urlfirst_frame_imagelast_frame_image
  • 图片类型的 asset:// 私域素材:反查原始公网 URL 后审核
  • base64 图片:转为公网地址后审核
video_urlsaudio_urls 以及视频/音频类型的私域素材不会送审,因为审核模型不支持视频和音频。适用模型:seedance-2.0seedance-2.0-fastseedance-2.0-miniseedance-2.0-faceseedance-2.0-fast-faceseedance-2-0(旧名)、seedance-2.5审核调用本身不向发起视频请求的用户计费。
  • 命中审核时同步返回 HTTP 400(nsfw_content_detected),不会创建任务、不会返回 task_id、不会扣除视频生成额度
  • 审核服务不可用、超时或响应异常时采用 fail-open:生成请求继续提交。因此该参数不能作为绝对的内容安全保证
  • 无法解析为公网图片地址的输入会跳过;其他模型传 nsfw_check: true 会被静默忽略
开启示例:
审核命中响应:
string
必填
提示词。可用 @图片1 / @视频1 / @音频1 指代参考素材(下标从 1 起,对应数组顺序)。示例:"全程使用@视频1的第一视角构图,@音频1作为背景音乐,首帧为@图片1"
string
默认值:"720p"
分辨率,仅支持
  • 480p
  • 720p(默认)
传入 1080p / 2k / 4k 等会同步 400
string
默认值:"adaptive"
宽高比(也接受字段名 aspect_ratio)。可选值:16:94:31:13:49:1621:9adaptive(默认)
视频编辑、视频延长、首帧/首尾帧任务对 size 有硬性限制,见 任务类型与限制
integer
默认值:"5"
时长(秒):
  • 4 ~ 30
  • -1:模型自动选择时长(提交时按 30 秒上限预扣,完成后按实际产出多退少补)
未传时按 5 秒生成与计费。
boolean
默认值:"true"
是否生成音频(也接受字段名 audio)。
  • true:有声视频(默认)
  • false:无声视频
boolean
默认值:"false"
是否添加「AI 生成」水印。默认 false
integer
随机种子。相同请求下不同 seed 通常得到不同结果;相同 seed 结果相近但不保证完全一致。
string
默认值:"mp4"
输出封装格式:
  • mp4(默认)
  • mov:更高色彩精度,推荐用于编辑 / 延长场景
array<string>
参考图 URL 数组,一律作为 reference_image支持:
  • 普通 URL:https://example.com/pic.jpg
  • 私域素材:asset://cm9xxxxxxxx
首帧 / 尾帧请用 image_with_roles
  • 最多 30
  • image_with_roles 不要混用冲突角色语义;首尾帧请走 image_with_roles
array<object>
带角色的图片数组。示例:
若同时存在 video_urls / audio_urlsfirst_frame / last_frame 会自动转为 reference_image(多模态参考任务)。
array<string>
参考视频数组(reference_video)。传入方式:视频 URL、素材 ID(asset://...)。规格见 参考视频规格
array<string>
参考音频 URL 数组(reference_audio)。支持普通 URL 与 asset://...最多 10 段;总时长 ≤ 30s(单段 2~30s)。
2.5 支持纯音频参考(可不配图/视频)。
boolean
默认值:"false"
true 时,任务成功后额外返回尾帧图片,便于连续生成。
array<object>
工具列表,用于联网搜索等增强能力。示例:

素材要求

参考视频规格

  • 传入方式:视频 URL、素材 ID(asset://...
  • 视频格式mp4mov,支持编码格式见下表
  • 分辨率480p720p
  • 时长:单个视频时长 [2, 30] s;最多传入 10 个参考视频;所有视频总时长不超过 30s
  • 单个视频尺寸
    • 宽高比(宽/高):[0.4, 2.5]
    • 宽高长度(px):[300, 6000]
    • 总像素数:[640×640=409600, 3326×2494=8295044],即宽和高的乘积须落在 [409600, 8295044]
  • 大小:单个视频不超过 200 MB
  • 帧率 (FPS):[24, 60]

支持编码格式

任务类型与限制

系统会按参考素材与提示词意图判定任务类型。后三种对 size / duration 有硬性限制,违反会在任务开始后异步失败(如 InvalidParameter.TaskTypeConstraint):

素材库使用说明

参考素材可直接传公网 URL,也可先入素材库、再用 asset:// 引用。推荐入库的场景:
  1. 真人人脸素材必须走素材库——直接传 URL 会被内容审核拦截,入库审核通过后才可用
  2. 素材会复用多次——入库一次,之后每次生成免重复审核,提交更快
  3. URL 是带签名的临时链接——入库时平台会把素材固化,之后引用不依赖原始 URL 是否仍有效
  4. 入库素材会自动同步到全部可用渠道,多渠道路由时无论落到哪个渠道都能直接用
素材库与 2.0 家族共用;审核通过后的 asset:// 可在 2.0 / 2.5 生成请求中通用。完整提交接口字段亦可参见 虚拟人像素材

上传素材

响应返回本地任务 id,用 获取任务状态GET /v1/tasks/{id})轮询审核结果;审核通过后从素材列表接口拿到 asset:// 形式的素材 ID。

素材限制(提交时同步校验)

违规立即返回 400(标明第几个素材、违反哪条限制),不提交审核、不占审核额度: 报错示例:
30s 的视频素材请提交时声明 "model": "seedance-2.5"(2.0 无法使用超过 15s 的素材)。
平台探测不到的素材(网络波动等)会放行,交审核判定。

在生成请求中使用

审核通过的素材在 image_urls / image_with_roles / video_urls / audio_urls 中以 asset:// 引用:
多渠道说明:素材入库后自动同步全部可用渠道;生成请求无论路由到哪个渠道都可直接引用。若某渠道的同步副本缺失,平台会用原始 URL 现场补传兜底(原始 URL 已过期则该渠道跳过、换渠道承接)。

管理接口速查

素材接口免计费(仅 Token 鉴权与限流),不产生消费记录。

常见问题

Q: 审核要多久?
图片通常数秒;视频与真人素材可能数分钟。轮询任务 id 到终态即可。
Q: 审核失败但看不出原因?
部分失败不返回具体原因(常见为素材抓取瞬时失败),平台已自动重试一次;仍失败请更换素材 URL(确认公网可直接下载)重新提交。
Q: 同一素材给 2.0 和 2.5 都用,要传两次吗?
不用。入库一次即可,asset:// 对两代通用;跨渠道 / 跨模型的同步由平台自动完成。
Q: 能直接传真人素材 URL 吗?
真人素材必须先入素材库审核。

计费

  • 秒 × 分辨率档 计费。
  • 有参考视频输入时:计费秒数 = 输入视频总时长(≤30s)+ 输出时长,走带输入参考的优惠档单价。
  • duration = -1(自动时长):提交时按上限 30 秒预扣,完成后按实际产出多退少补。
  • 未传 duration:按 5 秒生成与计费。
  • 任务失败或内容审核拦截:全额退款(仅成功出片收费)。

请求示例

文生视频(30 秒)

多模态参考(图 + 视频 + 音频)

视频编辑

首尾帧生视频

私域素材

联网搜索

常见错误

响应(提交)

integer
响应状态码,成功时为 200
array
提交时返回 status / task_id

查询完成态(GET /v1/tasks/{task_id}

提交后使用 获取任务状态 轮询。当 statuscompleted 时,结构如下。

完成态响应示例

完成态字段

备注

  • 失败任务(status=failed):cost 恒为 0(预扣已全额退款),错误原因在 data.error.message
  • usage 在完成后的最初几秒可能尚未出现(结算落库有秒级延迟),再查一次即可

与 2.0 的差异