AIZNT
API 参考视频

Seedance

Seedance 2.0 与 2.5 视频生成接口文档:多模态创作、任务查询与参数说明。

Seedance 采用异步任务模式:提交创建请求后获得任务 ID,再通过查询接口轮询任务状态并获取视频地址。

接口一览

方法路径说明
POST/api/v3/contents/generations/tasks创建视频生成任务
GET/api/v3/contents/generations/tasks/{task_id}查询任务状态与结果
POST/api/assets/upload上传素材
GET/api/assets/{asset_id}查询单个素材
GET/api/assets查询素材列表

基础地址:https://token.aiznt.com

认证:

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

模型与能力

模型Model ID时长分辨率输出格式
Seedance 2.0doubao-seedance-2-0-2601284–15 秒480p、720p、1080p、4kmp4
Seedance 2.0 Fastdoubao-seedance-2-0-fast-2601284–15 秒480p、720pmp4
Seedance 2.0 Minidoubao-seedance-2-0-mini-2606154–15 秒480p、720pmp4
Seedance 2.5doubao-seedance-2-5-2606284–30 秒480p、720p、1080pmp4、mov

两个版本均支持文生视频、首帧/首尾帧生视频、图片或视频参考、视频编辑、视频延长、生成有声视频和水印。2.5 另外支持最多 50 个全模态参考素材、纯音频参考、adaptive 比例、duration: -1 和 omni_reference_task_type。

素材库

素材库用于预先上传图片、视频或音频,并在视频生成请求中通过素材 URI(asset://<asset_id>)引用。上传为异步处理:先创建素材组、上传素材并取得素材 Id,再轮询素材状态;只有 Status 为 Active 的素材才能用于生成。

素材按 API Key 所属用户隔离,接口与火山引擎方舟素材库(Assets)API 完全兼容。素材组管理、素材上传/查询/更新/删除、分页方式与素材规格的完整说明,请参见 Seedance 素材库。

创建任务

POST /api/v3/contents/generations/tasks

请求字段

字段类型必填说明
modelstring是模型 ID
contentarray是文本提示词和参考素材
content[].typestring是text、image_url、video_url 或 audio_url
content[].textstring条件文本提示词
content[].image_url.urlstring条件图片 URL
content[].video_url.urlstring条件视频 URL
content[].audio_url.urlstring条件音频 URL
content[].rolestring条件reference_image、reference_video、reference_audio、first_frame 或 last_frame
generate_audioboolean否是否生成音频
resolutionstring否480p、720p、1080p;2.0 标准版还支持 4k
ratiostring否21:9、16:9、4:3、1:1、3:4、9:16;2.5 还支持 adaptive
durationinteger否2.0:4–15 秒,不支持 -1;2.5 普通任务和首帧/首尾帧任务:4–30 秒或 -1;2.5 视频编辑必须为 -1,视频延长支持 4–30 秒或 -1
output_formatstring否仅 2.5 支持设置;可选 mp4、mov。2.0 输出格式固定为 mp4
watermarkboolean否是否添加“AI生成”水印
return_last_frameboolean否是否返回视频尾帧图(2.0 官方参数)
omni_reference_task_typestring否2.5:auto、reference、edit、extend
toolsarray否2.0 联网搜索:[{"type":"web_search"}],仅适用于纯文本输入

素材可通过 URL、Base64 或素材 URI 传入:图片支持三种方式,视频支持 URL 或素材 URI,音频支持 URL、Base64 或素材 URI。素材库 ID 必须写成 asset://<asset_id>,不能直接传裸 ID。提示词引用素材时,请使用“图片1”“视频1”“音频1”这类名称;序号按请求体中同类素材的出现顺序从 1 开始,不支持直接在提示词中使用 Asset ID。

文生视频(Seedance 2.5)

curl -X POST https://token.aiznt.com/api/v3/contents/generations/tasks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedance-2-5-260628",
    "content": [{"type": "text", "text": "一段高级、极具电影感的30秒3D动态图形序列,采用蒸汽朋克与复古微缩景观风格。"}],
    "generate_audio": true,
    "ratio": "16:9",
    "duration": 30,
    "output_format": "mp4"
  }'

全模态参考(Seedance 2.5)

{
  "model": "doubao-seedance-2-5-260628",
  "content": [
    {"type": "text", "text": "全程使用视频1的第一视角构图,全程使用音频1作为背景音乐。"},
    {"type": "image_url", "role": "reference_image", "image_url": {"url": "https://example.com/image.jpg"}},
    {"type": "video_url", "role": "reference_video", "video_url": {"url": "https://example.com/video.mp4"}},
    {"type": "audio_url", "role": "reference_audio", "audio_url": {"url": "https://example.com/audio.mp3"}}
  ],
  "generate_audio": true,
  "ratio": "16:9",
  "duration": 11,
  "omni_reference_task_type": "reference"
}

首帧/首尾帧生视频

首帧任务必须在 content 中包含一个角色为 first_frame 的图片;首尾帧任务必须同时包含角色为 first_frame 和 last_frame 的图片。2.5 两类任务都必须将 ratio 设置为 adaptive。

{
  "model": "doubao-seedance-2-5-260628",
  "content": [
    {"type": "text", "text": "镜头从首帧场景开始,平滑推进到尾帧场景。"},
    {"type": "image_url", "role": "first_frame", "image_url": {"url": "https://example.com/first.jpg"}},
    {"type": "image_url", "role": "last_frame", "image_url": {"url": "https://example.com/last.jpg"}}
  ],
  "ratio": "adaptive",
  "duration": 10
}

视频编辑与延长(Seedance 2.5)

视频编辑要求参考视频时长为 4–30 秒,并使用 ratio: "adaptive"、duration: -1、omni_reference_task_type: "edit"。视频延长使用 omni_reference_task_type: "extend",ratio 必须为 adaptive,duration 可设置为 4–30 或 -1。

{
  "model": "doubao-seedance-2-5-260628",
  "content": [
    {"type": "text", "text": "视频编辑:删除视频1中的所有人,除了主角。"},
    {"type": "video_url", "role": "reference_video", "video_url": {"url": "https://example.com/source.mov"}}
  ],
  "generate_audio": true,
  "ratio": "adaptive",
  "duration": -1,
  "omni_reference_task_type": "edit",
  "output_format": "mov"
}

创建响应

{
  "id": "task_xxx",
  "task_id": "task_xxx",
  "object": "video",
  "model": "doubao-seedance-2-5-260628",
  "status": "queued",
  "progress": 0,
  "created_at": 1788146961
}

task_id 用于后续查询;当前创建响应中的 id 与 task_id 相同。

查询任务

GET /api/v3/contents/generations/tasks/{task_id}

请求参数

参数位置参数类型必填说明
路径参数task_idstring是创建任务响应中的任务 ID。当前创建响应的 task_id 与 id 值相同。
请求头Authorizationstring是Bearer YOUR_API_KEY。
请求头Content-Typestring否建议设置为 application/json;GET 请求不需要请求体。
curl -X GET https://token.aiznt.com/api/v3/contents/generations/tasks/task_xxx \
  -H "Authorization: Bearer YOUR_API_KEY"

成功响应

{
  "content": {"video_url": "https://example.com/video.mp4"},
  "created_at": 1788146960,
  "draft": false,
  "duration": 11,
  "execution_expires_after": 3600,
  "framespersecond": 24,
  "generate_audio": true,
  "id": "task_xxx",
  "model": "doubao-seedance-2-5-260628",
  "output_format": "mp4",
  "priority": 0,
  "ratio": "16:9",
  "resolution": "720p",
  "seed": 62293,
  "service_tier": "default",
  "status": "succeeded",
  "updated_at": 1788147156,
  "usage": {"completion_tokens": 393325, "total_tokens": 393325}
}

任务状态通常为 queued、running、succeeded 或 failed。成功后请尽快下载 content.video_url。

成功响应字段

字段类型说明
contentobject生成结果容器。
content.video_urlstring成功时的视频地址;请在有效期内下载。
idstring任务 ID。
modelstring执行该任务时使用的模型名称及版本信息,具体格式以接口返回值为准。
statusstringqueued、running、succeeded 或 failed。
created_at / updated_atinteger创建和更新时间,Unix 时间戳。
durationnumber实际输出视频时长(秒)。
ratiostring实际输出宽高比。
resolutionstring实际输出分辨率。
output_formatstring实际输出格式,如 mp4 或 mov。
framespersecondinteger输出视频帧率。
generate_audioboolean是否生成音频。
seedinteger本次生成使用的随机种子。
usageobject任务用量信息。
usage.completion_tokens / usage.total_tokensinteger生成用量 token 数。
execution_expires_afterinteger任务执行有效期相关配置。
service_tierstring服务等级。
priorityinteger任务优先级。
draftboolean是否为草稿任务。

失败响应

{
  "id": "task_xxx",
  "model": "doubao-seedance-2-5-260628",
  "status": "failed",
  "error": {
    "code": "OutputVideoSensitiveContentDetected",
    "message": "The request failed because the output video may contain sensitive information. Request ID: task_xxx"
  },
  "created_at": 1718049470,
  "updated_at": 1718049470
}

失败响应字段

字段类型说明
idstring失败任务 ID。
modelstring执行该任务时使用的模型名称及版本信息,具体格式以接口返回值为准。
statusstring失败时为 failed。
errorobject错误对象。
error.codestring错误码,例如 OutputVideoSensitiveContentDetected。
error.messagestring错误说明。
created_at / updated_atinteger创建和更新时间,Unix 时间戳。

2.5 任务类型与参数约束

任务类型触发方式参数要求
文生视频仅传文本提示词ratio、duration 无特殊限制
首帧任务必须包含一个 first_frame 图片ratio 必须为 adaptive
首尾帧任务必须同时包含 first_frame 和 last_frame 图片ratio 必须为 adaptive
参考生视频至少一个 reference_image、reference_video 或 reference_audioratio、duration 无特殊限制
视频编辑reference_video 加编辑意图提示词ratio: "adaptive"、duration: -1;视频时长 4–30 秒
视频延长reference_video 加延长意图提示词ratio: "adaptive";duration 为 4–30 或 -1

使用全模态参考任务时,可通过 omni_reference_task_type 指定 auto、reference、edit 或 extend。未指定或使用 auto 时,模型会根据提示词和素材自动判断任务类型。

输出规格

参数Seedance 2.0Seedance 2.5
resolution标准版支持 480p、720p、1080p、4k;Fast/Mini 支持 480p、720p480p、720p、1080p
ratio21:9、16:9、4:3、1:1、3:4、9:16上述比例及 adaptive
duration4–15 秒,不支持 -1普通任务、首帧/首尾帧和视频延长支持 4–30 秒或 -1;视频编辑必须为 -1
output_format固定 mp4mp4 或 mov
watermarktrue / falsetrue / false

2.5 的视频编辑、视频延长和首帧/首尾帧任务必须使用 ratio: "adaptive"。2.0 标准版的 4K 输出采用 10bit/H.265 编码,部分播放器可能不兼容;2.5 的 1080p 同样使用 10bit/H.265。2.5 的 mov 更适用于视频编辑和视频延长,采用专业编码,部分播放器可能不兼容。watermark: true 会在视频右下角添加“AI生成”标识。

素材限制

Seedance 2.0

  • 图片 0–9 张、视频 0–3 个、音频 0–3 个,总数最多 15 个。
  • 不支持“文本+音频”或纯音频输入。
  • 单次视频时长 4–15 秒;2.0 标准版支持 4K。

Seedance 2.5

  • 图片最多 30 张、视频最多 10 个、音频最多 10 个,总数最多 50 个。
  • 视频和音频参考素材总时长不超过 30 秒,支持纯音频参考。
  • 视频编辑参考视频时长为 4–30 秒;支持 4–30 秒输出及 duration: -1。
  • 图片支持 jpeg、png、webp、bmp、tiff、gif、heic、heif;视频支持 mp4、mov;音频支持 wav、mp3。
  • 图片宽高比须为 0.4–2.5,宽高为 300–6000 px,单张不超过 30 MB。
  • 视频支持 480p/720p、24–60 FPS,单个不超过 200 MB,宽高比为 0.4–2.5;普通参考视频时长 2–30 秒,编辑参考视频时长 4–30 秒。
  • 音频单段时长 2–30 秒、单个不超过 15 MB;请求体大小不超过 64 MB。视频和音频参考总时长不超过 30 秒。
  • 任务记录保存 7 天,视频 URL 保存 24 小时,视频 URL 最多下载 100 次。

联网搜索(Seedance 2.0)

联网搜索仅适用于纯文本输入:

{
  "model": "doubao-seedance-2-0-260128",
  "content": [{"type": "text", "text": "根据今天的天气生成一段城市宣传视频。"}],
  "tools": [{"type": "web_search"}],
  "ratio": "16:9",
  "duration": 11
}

实际搜索次数可在查询响应的 usage.tool_usage.web_search 中查看。

限流

官方在线推理限流参考:2.0 和 2.5 非 4K 任务企业用户最大 RPM 为 600、并发 10;个人用户最大 RPM 为 180、并发 3。2.0 标准版 4K 任务企业和个人用户最大 RPM 均为 15、最大并发均为 1。实际账户限额以服务端返回为准。

Python 轮询示例

import time
import requests

BASE = "https://token.aiznt.com"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
payload = {
    "model": "doubao-seedance-2-5-260628",
    "content": [
        {
            "type": "text",
            "text": "一只橘猫在键盘上奔跑,镜头跟随。",
        }
    ],
    "ratio": "16:9",
    "duration": 5,
    "generate_audio": True,
}
task = requests.post(
    f"{BASE}/api/v3/contents/generations/tasks",
    headers=HEADERS,
    json=payload,
    timeout=30,
).json()
task_id = task.get("task_id") or task["id"]
while True:
    result = requests.get(f"{BASE}/api/v3/contents/generations/tasks/{task_id}", headers=HEADERS, timeout=30).json()
    if result["status"] == "succeeded":
        print(result["content"]["video_url"])
        break
    if result["status"] == "failed":
        raise RuntimeError(result.get("error"))
    time.sleep(10)

常见问题

为什么任务长时间处于 queued 或 running? 视频生成属于异步任务。请按约 10–30 秒间隔轮询;官方示例使用过 10 秒或 30 秒间隔,实际频率应结合账号限流设置。任务进入 succeeded 后再读取 content.video_url。

为什么视频地址无法长期访问? 视频 URL 保存 24 小时,最多下载 100 次;任务记录保存 7 天。任务成功后请尽快下载或转存视频。

2.0 和 2.5 如何选择? 两个版本都支持图片、视频、音频等多模态参考。需要 4K 使用 Seedance 2.0 标准版;需要单次最长 30 秒、最多 50 个参考素材、纯音频参考、duration: -1 或 mov 输出时使用 Seedance 2.5。

为什么任务会在创建后异步失败? Seedance 2.5 的全模态参考任务和首帧/首尾帧任务会在任务启动后继续校验任务类型与参数。视频编辑必须使用 ratio: "adaptive"、duration: -1,首帧/首尾帧任务必须使用 ratio: "adaptive";不满足约束时可能返回 InvalidParameter.TaskTypeConstraint。明确任务类型时可通过 omni_reference_task_type 提前校验。

duration: -1 会生成多长的视频? 对视频编辑任务,模型会尽量保持与待编辑视频相同的时长;其他 2.5 任务会在 4–30 秒范围内根据提示词和素材自动选择时长。

本页目录