Seedance 2.5
Seedance 2.5 支持文生视频、图片/视频/音频多模态参考,以及首帧和首尾帧生视频。公开模型名为 doubao-seedance-2.5,平台会根据已配置的渠道路由透明地提交生成任务。
duration支持-1。传入-1时输出时长由上游自动确定,不支持另行设置输出秒数;请求可以包含视频,也可以不包含视频。
模型能力
| 项目 | 支持范围 |
|---|---|
| 输出时长 | 4–30 秒,或使用 -1 由上游自动确定;默认 5 秒 |
| 分辨率 | 480p、720p、1080p |
| 宽高比 | adaptive、16:9、4:3、1:1、3:4、9:16、21:9 |
| 参考图片 | 最多 30 张 |
| 参考视频 | 固定时长请求最多 10 个、总时长不超过 30 秒;duration=-1 时平台不限制数量或总时长,由上游校验 |
| 参考音频 | 最多 10 段,总时长不超过 30 秒;支持纯音频输入 |
| 输出格式 | mp4、mov |
定价
- 不含视频输入:
输出时长 × 每秒费率 - 含视频输入:
(输入视频总时长 + 输出时长) × 每秒费率 duration=-1且不含视频:实际输出时长 × 不含视频输入每秒费率duration=-1且含视频:(输入视频总时长 + 实际输出时长) × 含视频输入每秒费率
| 分辨率 | 输入不含视频 | 输入含视频 |
|---|---|---|
| 480p | 25.86 credits/s | 17.24 credits/s |
| 720p | 58.17 credits/s | 38.78 credits/s |
| 1080p | 103.68 credits/s | 69.12 credits/s |
计费示例:
- 480p 文生视频 5 秒:
5 × 25.86 = 129.30 credits - 720p 文生视频 5 秒:
5 × 58.17 = 290.85 credits - 1080p 文生视频 5 秒:
5 × 103.68 = 518.40 credits - 1080p、输入视频 5 秒、输出 5 秒:
(5 + 5) × 69.12 = 691.20 credits - 720p、输入视频 5 秒、输出 5 秒:
(5 + 5) × 38.78 = 387.80 credits - 720p、输入视频 10 秒、实际输出 9.6 秒、
duration=-1:(10 + 9.6) × 38.78 = 760.09 credits - 720p、不含视频、实际输出 7.25 秒、
duration=-1:7.25 × 58.17 = 421.73 credits
duration=-1 时,平台会按最多 30 秒输出预扣;若包含视频,还会先探测并计入所有输入视频的总时长。任务成功后优先采用上游返回的输出时长,缺失时探测输出视频,并按实际输出时长结算、退还差额。若无法取得输出时长,则保留最大预扣费用且任务仍保持成功;任务失败或过期时会全额退还预扣积分。
创建任务
POST https://api.aivideoapi.ai/v1/videos/generations
请求头:
Authorization: Bearer sk-your-api-key
Content-Type: application/json
请求体
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 固定为 doubao-seedance-2.5 |
input | object | 是 | 生成参数 |
callback_url | string | 否 | 任务完成或失败时接收 POST 回调的公网 HTTP(S) 地址 |
Input 参数
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
prompt | string | 条件必填 | — | 纯文生视频时必填;存在任一媒体输入时可省略 |
generation_type | string | 否 | omni_reference | omni_reference 或 first_and_last_frames |
image_urls | string[] | object[] | 否 | — | 参考图片,最多 30 张;首尾帧模式为 1–2 张 |
video_urls | string[] | 否 | — | 参考视频;固定时长请求最多 10 个、总时长不超过 30 秒;duration=-1 时平台不限制数量或总时长,由上游校验 |
audio_urls | string[] | 否 | — | 参考音频,最多 10 段,总时长不超过 30 秒,可单独输入 |
duration | integer | 否 | 5 | 4–30,或传 -1 让上游自动确定输出时长 |
aspect_ratio | string | 否 | adaptive | 输出宽高比;首尾帧模式仅支持 adaptive |
resolution | string | 否 | 720p | 480p、720p 或 1080p |
generate_audio | boolean | 否 | true | 是否生成同步音频 |
watermark | boolean | 否 | false | 是否添加 AI 水印 |
return_last_frame | boolean | 否 | false | 是否在结果中返回尾帧图片 |
web_search | boolean | 否 | false | 是否允许模型按需联网搜索 |
output_format | string | 否 | mp4 | mp4 或 mov |
生成模式
多模态参考
generation_type 省略或设为 omni_reference。图片、视频和音频可任意组合,音频可以单独使用。只要存在媒体输入,prompt 就可以省略;完全空的输入会被拒绝。
首帧与首尾帧
设置 generation_type: "first_and_last_frames":
- 传 1 张图片:作为首帧
- 传 2 张图片:第一张为首帧,第二张为尾帧
aspect_ratio必须省略或设为adaptive- 不可同时传入
video_urls或audio_urls
请求示例
文生视频并输出 MOV
curl -X POST https://api.aivideoapi.ai/v1/videos/generations \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2.5",
"callback_url": "https://your-server.com/webhooks/video",
"input": {
"prompt": "雨后的东京街道,镜头缓慢向前推进,霓虹灯倒映在路面上",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
"generate_audio": true,
"output_format": "mov",
"return_last_frame": true
}
}'
纯音频参考
curl -X POST https://api.aivideoapi.ai/v1/videos/generations \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-seedance-2.5",
"input": {
"audio_urls": ["https://example.com/music.mp3"],
"duration": 8,
"resolution": "480p"
}
}'
图片、视频和音频参考
{
"model": "doubao-seedance-2.5",
"input": {
"prompt": "保持人物造型,参考视频的运镜节奏,并使用音频作为氛围声音",
"image_urls": ["https://example.com/character.png"],
"video_urls": ["https://example.com/camera-reference.mov"],
"audio_urls": ["https://example.com/ambience.wav"],
"duration": 10,
"resolution": "720p",
"aspect_ratio": "adaptive"
}
}
上游自动确定输出时长
duration=-1 不要求必须输入视频。包含视频时,平台探测并累加所有输入视频时长,最终按“输入视频总时长 + 实际输出时长”计费;不包含视频时只按实际输出时长计费。素材组合及输出时长由上游校验和确定,无需也不能另行指定输出秒数。
{
"model": "doubao-seedance-2.5",
"input": {
"prompt": "保持原视频的镜头节奏,替换角色服装",
"video_urls": ["https://example.com/input-video.mp4"],
"duration": -1,
"resolution": "720p",
"aspect_ratio": "adaptive"
}
}
首尾帧
{
"model": "doubao-seedance-2.5",
"input": {
"generation_type": "first_and_last_frames",
"prompt": "日景自然过渡到夜景,保持建筑结构一致",
"image_urls": [
"https://example.com/first-frame.png",
"https://example.com/last-frame.png"
],
"duration": 6,
"resolution": "720p",
"aspect_ratio": "adaptive"
}
}
创建响应
{
"code": 200,
"msg": "success",
"data": {
"taskId": "cbf6b69d-4f03-4817-8ed7-94c0292184a8"
}
}
查询任务
curl https://api.aivideoapi.ai/v1/tasks/{taskId} \
-H "Authorization: Bearer sk-your-api-key"
状态通常依次为 pending → processing → completed,失败时为 failed。
成功响应示例:
{
"id": "cbf6b69d-4f03-4817-8ed7-94c0292184a8",
"status": "completed",
"model": "doubao-seedance-2.5",
"credits_consumed": 290.85,
"created_at": 1786093200,
"completed_at": 1786093500,
"output": {
"urls": ["https://file.aivideoapi.ai/videos/example.mov"],
"last_frame_url": "https://file.aivideoapi.ai/images/example-last-frame.png",
"metadata": {
"duration": 5,
"ratio": "16:9",
"resolution": "720p",
"framespersecond": 24,
"generate_audio": true,
"output_format": "mov"
}
}
}
成功文件会按账户配置镜像到平台存储。若创建任务时传入 callback_url,完成与失败响应会以相同结构 POST 到该地址。
查询任务和回调响应中的 credits_consumed 表示当前任务实际消耗的积分;任务处理中以及失败退款后为 0。
媒体要求
| 类型 | 格式 | 单个素材要求 | 数量与总时长 |
|---|---|---|---|
| 图片 | JPEG、PNG、WebP、BMP、TIFF、GIF、HEIC、HEIF | 宽高比 0.4–2.5;每边 300–6000 px;小于 30 MB | 最多 30 张 |
| 视频 | MP4、MOV | 2–30 秒;宽高比 0.4–2.5;每边 300–6000 px;总像素 409,600–8,295,044;小于 200 MB;24–60 FPS | 固定时长请求最多 10 个、总时长不超过 30 秒;duration=-1 由上游校验 |
| 音频 | WAV、MP3 | 2–30 秒;小于 15 MB | 最多 10 段,总时长不超过 30 秒 |
媒体 URL 必须允许 API 服务和当前上游渠道下载。平台会先探测参考视频时长;URL 无法访问或无法识别为 MP4/MOV 时,请求会同步失败。
重要限制
- 不支持
4k。 duration=-1可用于不含视频或包含一个/多个视频的请求;平台不限制视频数量、组合或总时长,具体支持范围交由上游校验。/v1/estimate返回最大预扣费用:不含视频时按 30 秒输出计算,含视频时按“输入视频总时长 + 30 秒输出”计算。- Seedance 2.5 会根据提示词和媒体内容判断参考生成、延长或编辑任务类型;部分任务类型限制只能由上游在异步处理时判定,因此可能以异步失败结束。
- 首尾帧模式只能使用
adaptive;视频延长/编辑类意图也可能被上游要求使用adaptive。 - 任务失败或过期会自动退还本次预扣积分。
常见错误码
请求失败时,API 返回 JSON 格式的错误响应:
{
"error": {
"code": "insufficient_credits",
"message": "Your credit balance is too low. Please top up.",
"type": "billing_error"
}
}
错误码一览
| HTTP 状态码 | 错误码 | 类型 | 说明 |
|---|---|---|---|
| 400 | invalid_request | invalid_request_error | 缺少必填参数或参数无效 |
| 401 | invalid_api_key | authentication_error | API Key 无效、已禁用或已删除 |
| 402 | insufficient_credits | billing_error | 积分余额不足,请充值 |
| 403 | ip_not_allowed | permission_error | 请求 IP 不在 Key 的白名单中 |
| 404 | model_not_found | invalid_request_error | 模型不存在或已停用 |
| 404 | task_not_found | invalid_request_error | 任务 ID 不存在 |
| 429 | rate_limit_exceeded | rate_limit_error | 请求过于频繁,请降低频率 |
| 429 | spend_limit_exceeded | billing_error | 达到 Key 的消费限额(每小时/每天/总量) |
| 500 | internal_error | api_error | 服务器内部错误 |
| 503 | upstream_error | upstream_error | 上游 AI 服务返回错误 |
常见场景
invalid_request (400)
缺少必填字段或参数格式错误时返回。
{
"error": {
"code": "invalid_request",
"message": "'model' is required.",
"type": "invalid_request_error"
}
}
insufficient_credits (402)
积分不足。可通过 GET /v1/credits 查询余额,前往 Dashboard > Billing 充值。
invalid_api_key (401)
可能原因:
- Key 不以
sk-开头 - Key 已被禁用或删除
- 用户账户已被封禁
upstream_error (503)
上游 AI 服务返回错误,可能原因:
- 输入内容包含敏感或违规信息
- 上游服务暂时不可用
- 请求参数不被上游支持
因上游错误导致任务失败时,预扣积分会自动退还。