ToAPIsToAPIs
seedance-2

seedance-2 视频生成

使用 seedance-2、seedance-2-fast 与 seedance-2-mini 模型生成视频

POST
/v1/videos/generations

国内用户请注意: 中国大陆用户请使用 https://toapis.cn 作为接口地址(Base URL)。文档示例中的 https://toapis.com 请替换为 https://toapis.cn。

  • 支持 seedance-2、seedance-2-fast 与 seedance-2-mini
  • 支持文生视频、首帧/首尾帧图生视频与多模态参考生视频;seedance-2-mini 的首尾帧与音频开关能力也已开放
  • 支持参考图、参考视频、参考音频联合控制;seedance-2-mini 最多支持 9 张图、3 条视频、3 条音频
  • 异步任务管理,提交后返回 generation.task,完成结果通过任务查询接口获取

Authorizations

Authorizationstring请求头必填

所有接口均需要使用 Bearer Token 进行认证

获取 API Key:访问 API Key 管理页面 获取您的 API Key

使用时在请求头中添加:

Authorization: Bearer YOUR_API_KEY

Body

modelstring请求体必填默认值: seedance-2

视频生成模型名称

可用模型:

  • seedance-2 - 标准版,适合更高质量输出与更完整的 Seedance 2 能力
  • seedance-2-fast - 快速版,适合预览、迭代和更低延迟场景
  • seedance-2-mini - 轻量版,适合低成本草稿和多模态参考工作流,当前固定单次生成 1 个结果
promptstring请求体

视频内容描述

支持中英文输入。建议明确描述场景、镜头运动、主体动作、风格和声音氛围。

建议:

  • 中文尽量控制在 500 字以内
  • 英文尽量控制在 1000 词以内
  • 需要引用参考素材时,使用“图片1 / 视频1 / 音频1”的方式指代
client_business_idstring请求体

客户侧业务 ID,例如订单号、流水号或您系统内的任务 ID。提交后会随任务保存,后续可用该 ID 查询状态: GET /v1/videos/generations/{client_business_id}。

也兼容放在 metadata.client_business_id 中,但推荐使用顶层字段。

durationinteger请求体默认值: 0

视频时长(秒)

取值规则:

  • seedance-2:4-15
  • seedance-2-fast:4-15
  • seedance-2-mini:4-15
  • 0:自动时长(仅 seedance-2 / seedance-2-fast)
  • -1:自动时长(仅 seedance-2 / seedance-2-fast)
aspect_ratiostring请求体

视频宽高比

可选项:

  • 21:9
  • 16:9
  • 4:3
  • 1:1
  • 3:4
  • 9:16
  • adaptive

建议优先使用 aspect_ratio 作为对外字段。adaptive 表示由上游根据输入素材自动选择合适比例。

image_urlsstring[]请求体

兼容模式下的图片 URL 数组

推荐优先使用 image_with_roles,这样可以显式声明 first_frame、last_frame 或 reference_image。

兼容规则:

  • 传 1 张图时,通常按首帧图处理
  • 传多张图时,角色推断会带来歧义,不建议用于新接入
  • image_urls 不应与 image_with_roles 同时使用。
  • 新接入建议使用 image_with_roles 显式声明图片用途,避免兼容推断带来的歧义。
image_with_rolesarray请求体

带角色的图片数组

支持场景:

  • seedance-2 / seedance-2-fast / seedance-2-mini
    • 首帧图生视频:first_frame 1 张
    • 首尾帧图生视频:first_frame 1 张 + last_frame 1 张
    • 多模态参考生视频:reference_image 1-9 张
字段说明
urlstring请求体必填

图片 URL

支持:

  • https://...
rolestring请求体必填

图片角色

可选项:

  • first_frame - 首帧图
  • last_frame - 尾帧图
  • reference_image - 参考图
  • first_frame 最多 1 张
  • last_frame 最多 1 张
  • reference_image 最多 9 张
  • 首帧/首尾帧模式不能与参考模式混用
  • seedance-2-mini 同样支持 first_frame、last_frame 与 reference_image
video_with_rolesarray请求体

带角色的视频数组

当前仅支持多模态参考模式使用 reference_video。

字段说明
urlstring请求体必填

视频 URL

支持:

  • https://...
rolestring请求体必填

固定为:

  • reference_video

限制:

  • seedance-2-mini 最多 3 条参考视频
audio_with_rolesarray请求体

带角色的音频数组

当前仅支持多模态参考模式使用 reference_audio。

字段说明
urlstring请求体必填

音频 URL

支持:

  • https://...
rolestring请求体必填

固定为:

  • reference_audio

限制:

  • seedance-2-mini 最多 3 段参考音频

audio_with_roles 不能单独使用,至少还需要一个图片或视频参考输入。

resolutionstring请求体默认值: 720p

视频分辨率

可选项:

  • seedance-2:480p、720p、1080p、4k
  • seedance-2-fast:480p、720p
  • seedance-2-mini:480p、720p
generate_audioboolean请求体默认值: true

是否生成同步音频

  • true:生成带音频的视频
  • false:生成无声视频

seedance-2-mini 同样支持该字段。

return_last_frameboolean请求体默认值: false

是否返回生成视频的尾帧图像。

设置为 true 后,任务完成时可从状态查询响应的 result.data[0].last_frame_url 获取尾帧图像 URL。

toolsarray请求体

配置模型可调用的工具。当前 Seedance 2 系列仅支持联网搜索:

[{ "type": "web_search" }]

启用后,模型会根据提示词自主判断是否搜索互联网内容。实际搜索次数通过状态查询响应的 usage.tool_usage.web_search 获取,值为 0 表示未执行搜索。

tools 仅支持纯文生视频请求,不能与图片、视频或音频输入同时使用。

seedinteger请求体

随机种子,用于控制生成随机性

callback_urlstring请求体

ToAPIs 标准任务完成回调地址。必须先在 Token 中配置默认地址和签名密钥;请求级地址仅允许同源覆盖。详见 任务 Webhook。

trace_idstring请求体

调用方自定义透传 ID

调用方追踪字段,与是否启用 Webhook 无关。

disable_nsfwboolean请求体默认值: true

默认禁止生成 NSFW 内容。显式设为 false 时允许。

素材审核

请求带图片, 视频或音频素材时, 部分渠道会在提交生成前自动审核素材. 无需额外参数, 在原有媒体字段中传入素材 URL 即可.

  • 请求受理后立即返回视频任务. 需要审核时任务保持 queued, 本次请求的素材全部通过后才提交生成. 首次审核可能需要数分钟, 同一用户在同一渠道重复使用相同 URL 时会复用审核结果.
  • 每轮素材准备默认最长 20 分钟. 素材被拒绝或准备超时会结束任务, 状态为 failed, 原因见 error.message. 审核未通过不收取视频生成费用.
  • 素材须为公网 HTTP(S) URL, 不接受 Base64 和本地路径. 图片建议不超过 30 MB, 视频和音频不超过 100 MiB; 各模型原有的格式限制不变.
  • 需要审核的渠道会在受理时校验素材: URL 带账号密码或超过 2048 字节, 同一 URL 被用作不同类型, 或单次请求的素材引用超过 64 个时, 直接返回 HTTP 400, error.code 为 invalid_private_assets.
  • 平台按 URL 识别素材. 文件内容变化后请换用新的 URL.
  • 旧的 asset:// 素材引用已停用, 会返回 HTTP 400.

输入组合规则

支持的典型输入组合:

  • 纯文本:文生视频
  • 文本 + 1 张首帧图:首帧图生视频
  • 文本 + 首帧图 + 尾帧图:首尾帧图生视频
  • 文本 + 参考图:多模态参考生视频
  • 文本 + 参考视频:视频参考生视频
  • 文本 + 参考图 + 参考音频:多模态参考生视频
  • 文本 + 参考图 + 参考视频 + 参考音频:多模态参考生视频

三种模式互斥:

  • 首帧图生视频
  • 首尾帧图生视频
  • 多模态参考生视频

seedance-2-mini 也支持首帧 / 首尾帧模式;需要首尾帧控制时请使用 image_with_roles 显式传入 first_frame / last_frame。

能力与约束

项目seedance-2seedance-2-fastseedance-2-mini
主要定位更高质量与更长时长更快生成与更低延迟低成本草稿与多模态参考
时长4-15 秒,支持自动时长4-15 秒,支持自动时长4-15 秒
分辨率480p / 720p / 1080p / 4k480p / 720p480p / 720p
图片角色first_frame / last_frame / reference_imagefirst_frame / last_frame / reference_imagefirst_frame / last_frame / reference_image
视频角色reference_videoreference_videoreference_video
音频角色reference_audioreference_audioreference_audio
首尾帧模式支持支持支持
参考图上限999
参考视频上限以实际通道能力为准以实际通道能力为准3
参考音频上限以实际通道能力为准以实际通道能力为准3
同步音频generate_audiogenerate_audiogenerate_audio
ToAPIs 回调callback_url(trace_id 可选追踪)callback_url(trace_id 可选追踪)callback_url(trace_id 可选追踪)

seedance-2-mini 当前固定单次生成 1 个结果,不暴露 count / n。首尾帧控制请通过 image_with_roles 的 first_frame / last_frame 表达。

完成后通过视频任务查询获取结果. 启用原始地址交付时优先使用 result.data[].url; 主地址无法访问时, 再使用可选的 fallback_url. 尾帧对应 last_frame_url 和 fallback_last_frame_url, 备用字段仅在副本可用时返回.

Response

idstring

任务 ID,用于查询任务状态。

client_business_idstring

客户侧业务 ID。仅当请求中传入 client_business_id 时返回。

objectstring

对象类型,固定为 generation.task。

modelstring

本次请求使用的模型名称。

statusstring

任务状态:queued、in_progress、completed 或 failed。

progressinteger

任务进度百分比(0-100)。

created_atinteger

任务创建时间戳。

提交接口返回的是基础任务对象;当任务完成后,请使用 获取视频任务状态 获取 completed_at、expires_at 以及 result.type = "video" / result.data[].url / result.data[].format。启用 return_last_frame 时,尾帧 URL 位于 result.data[0].last_frame_url;启用 web_search 时,搜索次数位于 usage.tool_usage.web_search。

请求示例

curl --request POST \
  --url https://toapis.com/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "seedance-2-mini",
    "client_business_id": "order_20260616_001",
    "prompt": "保持图片1中的人物形象,参考视频1的运镜和音频1的节奏,生成一段室内产品口播短视频。",
    "duration": 10,
    "aspect_ratio": "16:9",
    "image_with_roles": [
      {"url": "https://example.com/ref-image-1.jpg", "role": "reference_image"}
    ],
    "video_with_roles": [
      {"url": "https://example.com/ref-video-1.mp4", "role": "reference_video"}
    ],
    "audio_with_roles": [
      {"url": "https://example.com/ref-audio-1.mp3", "role": "reference_audio"}
    ],
    "resolution": "480p"
  }'
curl --request POST \
  --url https://toapis.com/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "seedance-2",
    "prompt": "镜头从窗边花束慢慢推到餐桌中央,画面色调温暖柔和。",
    "duration": 5,
    "aspect_ratio": "16:9",
    "image_with_roles": [
      {"url": "https://example.com/first-frame.png", "role": "first_frame"},
      {"url": "https://example.com/last-frame.png", "role": "last_frame"}
    ],
    "resolution": "720p",
    "generate_audio": false
  }'
curl --request POST \
  --url https://toapis.com/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "seedance-2",
    "prompt": "微距镜头拍摄一只玻璃蛙停在叶片上,镜头缓慢切到透明腹部与跳动心脏,纪录片风格。",
    "duration": 11,
    "aspect_ratio": "16:9",
    "resolution": "720p",
    "generate_audio": true
  }'
curl --request POST \
  --url https://toapis.com/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "seedance-2-fast",
    "prompt": "一只柴犬在雨后的霓虹街头奔跑,地面倒映彩色灯光。",
    "duration": 5,
    "aspect_ratio": "16:9",
    "resolution": "720p"
  }'
import requests

response = requests.post(
    "https://toapis.com/v1/videos/generations",
    headers={
        "Authorization": "Bearer your-ToAPIs-key",
        "Content-Type": "application/json",
    },
    json={
        "model": "seedance-2-mini",
        "prompt": "保持人物形象一致,参考图片和视频的节奏,生成一段简短室内广告视频",
        "duration": 8,
        "aspect_ratio": "16:9",
        "resolution": "720p",
        "image_with_roles": [
            {"url": "https://example.com/ref.png", "role": "reference_image"}
        ],
        "video_with_roles": [
            {"url": "https://example.com/ref.mp4", "role": "reference_video"}
        ],
    },
)

print(response.json())

响应示例

{
  "id": "tsk_vid_xxx",
  "client_business_id": "order_20260616_001",
  "object": "generation.task",
  "model": "seedance-2-mini",
  "status": "in_progress",
  "progress": 10,
  "created_at": 1781577600
}