Seedance 2.5
根据文本、首尾帧,或最多 30 张图片、10 段视频和 10 段音频作为参考,生成 4–30 秒的 480p、720p 或 1080p 视频;也可以编辑或延长视频。
- 异步:创建调用返回任务 ID;任务成功后才能拿到视频(通常需要几分钟)。
- 四种输入方式:纯文本、首帧、首尾帧,或任意组合的参考图、参考视频和参考音频(只传音频也可以)。
task_type用来说明参考视频是用于生成新视频的素材、要编辑的视频,还是要延长的视频,这样请求会在你付费之前就被检查。- 默认生成声音,不额外收费;默认输出 MP4,可按需输出 MOV。
- 按视频的尺寸和时长计费,另加所有参考视频的时长。失败的任务不收费。
在调试窗口里打开本模型,填入你的 BeatAPI API 密钥即可创建任务。调用是真实的,费用从你自己的余额中扣除。
模型 ID
四个 Seedance 模型共用这个接口。下方的取值直接来自网关契约;只有 Seedance 2.5 接受 task_type、output_format 和 seed。
接口与鉴权
POST https://api.beatapi.io/v1/videos/tasks
Authorization
string
必需
你的 BeatAPI API 密钥,以 Bearer <BEATAPI_API_KEY> 形式发送。在控制台创建密钥。密钥只能保存在你的服务端,不要放进浏览器或移动端应用。
请求体使用 JSON,并设置 Content-Type: application/json。Idempotency-Key 为可选:每个逻辑请求发送一个唯一值(最长 255 个字符),仅在重试完全相同的请求体时复用。24 小时内,用相同的键和请求体重试会再次返回第一次的响应,并带上 Idempotent-Replayed: true;相同的键搭配不同的请求体则返回 409 idempotency_conflict。非 2xx 的响应不会被保存,因此 400 或 402 之后的重试会重新执行。
请求流程
等待任务完成
调用 GET /v1/tasks/{task_id},两次调用之间等待 data.poll_after_seconds 秒(图片 5 秒,视频 8 秒),直到 status 为 succeeded 或 failed。也可以为 task.succeeded 和 task.failed 注册 Webhook;仍需保留轮询作为兜底,因为因处理超时而终止的任务不会发送事件。
输入模式
请求参数
model
string
必需
要运行的模型。
取值:seedance-2.5
取值有误时
- 缺失:
"model" is required - 把图片模型发到了这个接口:
"model" nano-banana-2 is served by POST /v1/images/tasks, not this endpoint
prompt
string
必需
视频中发生什么:主体、动作、镜头运动、风格和声音。使用参考素材时,请说明每个输入的用途。
长度:1–5000 个字符
- 长度按字符计算(一个中日韩文字算一个字符)。
- 按位置指代输入,例如“第一张参考图”或“第二段参考视频”。
- 用参考视频生成新视频时,避免使用“替换”“移除”“延长”之类的词(replace、remove、extend),否则模型可能把请求理解为编辑;为保险起见,请发送
task_type: "reference"。对于edit,说明要改什么、保留什么。对于extend,描述接下来发生什么。
取值有误时
- 缺失:
"prompt" is required - 为空或超过长度上限:
"prompt" has an unsupported length
images
string[]
可选
首帧,或首帧加尾帧。
数量:1–2
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- 一个链接:视频从这张图片开始。两个链接:
images[0]是首帧,images[1]是尾帧。 - 视频沿用第一张图片的宽高比;
aspect_ratio不生效。 - 需要更多图片,或图片只是引导视频而不是作为帧时,请改用
reference_images。
取值有误时
- 超过两个链接:
"images" accepts at most 2 items - 与任一 reference_* 字段同时使用:
Cannot combine "images" with reference inputs in one task - 不是 https:// 链接:
"images[0]" must be a public HTTPS URL
reference_images
string[]
可选
用来引导视频内容、角色、商品或风格的图片。
数量:1–30
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- 图片按列表顺序使用;在提示词中按位置指代它们。
取值有误时
- 超过数量上限:
"reference_images" accepts at most 30 items - 与
images同时使用:Cannot combine "images" with reference inputs in one task
reference_videos
string[]
可选
用来提取动作、镜头运动或内容的视频,或要编辑、延长的视频(见 task_type)。
数量:1–10
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- 每个链接必须返回 MP4 或 MOV 文件,且其主机允许字节范围请求(byte-range):网关在创建任务之前会读取每段视频的时长,因为参考视频的秒数要计费。
task_type为edit和extend时必填。
参考视频的每一秒都会计入价格(见计费)。请只保留你需要的部分。
取值有误时
- 超过数量上限:
"reference_videos" accepts at most 10 items - 无法读取该视频:
A reference video could not be read: reference_videos[0]: its host does not allow byte-range requests. Send an MP4 or MOV file at a public HTTPS URL whose host allows byte-range requests.
reference_audios
string[]
可选
要参照的音乐、人声或声音。只传音频、不带任何图片或视频参考也可以。
数量:1–10
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- WAV 和 MP3 会按下方限制进行检测;其他格式不经检测直接交给模型。
取值有误时
- 超过数量上限:
"reference_audios" accepts at most 10 items
duration
integer
可选默认值: 5
视频时长,单位为秒,必须是整数。
默认值:5
范围:4–30
- 不传时会发送
5——task_type为auto和reference时同样如此。 - 使用
task_type: "extend"时请务必传:它是包含源视频在内的成片总时长。要给一段 5 秒的视频再延长 5 秒,请发送10;不传则表示总共 5 秒。 - 使用
task_type: "edit"时请不要传:结果保持源视频的时长。
取值有误时
- 超出范围或不是整数:
"duration" is outside its supported range - 与
task_type: "edit"一起发送:task_type "edit" keeps the reference video's length: leave "duration" out
aspect_ratio
string
可选默认值: adaptive
视频的形状,以 宽:高 表示。adaptive 由模型根据输入自行选择。
可选值:adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16
默认值:adaptive
- 当
images携带首帧时会被忽略:视频沿用该帧的宽高比。 task_type为edit或extend时,请不要传,或传adaptive:结果保持源视频的形状。- 使用
adaptive(或传帧)时,预扣按所选分辨率下的最大画幅估算,因此可能比固定比例略高。
取值有误时
- 取值不在列表中:
"aspect_ratio" must be one of: [adaptive 21:9 16:9 4:3 1:1 3:4 9:16] edit或extend时传了固定比例:task_type "edit" keeps the reference video's aspect ratio: leave "aspect_ratio" out or send "adaptive"
resolution
string
可选默认值: 720p
输出分辨率。分辨率越高,每秒越贵。
可选值:480p, 720p, 1080p
默认值:720p
- 只能用小写。Seedance 2.5 不提供 4K(请使用
seedance-2)。
取值有误时
- 取值不在列表中(例如
4k或720P):"resolution" must be one of: [480p 720p 1080p]
generate_audio
boolean
可选默认值: true
视频是否带生成的音轨。两种情况价格相同。
默认值:true
取值有误时
- 不是 true 或 false:
"generate_audio" must be a boolean
seed
integer
可选
固定一个数字可以让结果更容易复现;不传或传 -1 则使用随机种子。
范围:-1–4294967295
- 相同的种子配合相同的请求,得到的结果相近,但不保证完全一致。
取值有误时
- 超出范围:
"seed" is outside its supported range
task_type
string
可选
如何处理 reference_videos:用它们生成新视频(reference)、编辑其中一个(edit),或延长其中一个(extend)。auto(或不传)由模型根据提示词判断。
可选值:auto, reference, edit, extend
- 指明类型后,网关可以在扣费之前检查请求;各类型的规则见下方任务类型。
- 使用
auto或reference时总会发送一个时长(不传则为5),因此模型理解为编辑的提示词,会在提交后失败(会退款),或被当作编辑重新运行,并按源视频的时长计费。如果你的意图是编辑,请发送edit。
取值有误时
- 取值不在列表中:
"task_type" must be one of: [auto reference edit extend] edit或extend但没有参考视频:task_type "edit" needs a video in "reference_videos"reference但没有任何参考输入:task_type "reference" needs reference inputs
output_format
string
可选
结果的容器格式:mp4(不传时使用)或 mov。价格相同。
可选值:mp4, mov
mov适合后续剪辑。它并非始终可用;不可用时,请求会在扣费之前被拒绝,并附一句话说明你当前可以使用哪些格式。
取值有误时
- 取值不在列表中:
"output_format" must be one of: [mp4 mov]
网关还会在创建任务之前检查以下组合:
images不能与参考素材字段同时使用。
输入素材限制
网关会在创建任务之前读取每一项输入,超出这些限制的输入会被拒绝,并返回点名该输入的 400 bad_request。不扣费。
- 参考视频必须是 MP4 或 MOV,位于公网 HTTPS 链接上,且其主机响应字节范围请求。无法读取时长的视频一律被拒绝,因为它的秒数要计费。
- 主机上报图片尺寸时才会检查图片尺寸。请使用 JPEG、PNG 或 WebP;模型无法使用的文件会在提交后以
bad_request使任务失败,并退款。 - 限制按以下顺序报告:时长、边长、宽高比、像素、帧率和大小。message 会按列表和位置点名该输入,位置与字段错误一样从 0 开始计数:
reference_videos[0] is 1.5 seconds long; this model takes reference video of 2 to 30 seconds. - 时长的测量有 0.1 秒的容差。尺寸只有在主机上报时才会检查。
- 图片和音频链接只有在主机返回 4xx 错误或返回空文件时才会在创建时被拒绝,例如
images[1] could not be downloaded: the URL returned HTTP 404.;它们的其他问题会在提交后才暴露。 - 帧率为 23.976 FPS 的片段会被视为低于 24 而被拒绝;请以 24 FPS 或更高重新导出。
- 有本地文件?先用
POST /v1/files上传,再传入返回的data.url。
任务类型
“需要”和“不要传”两列在创建任务时检查:违反规则的请求会以 400 bad_request 被拒绝,且不收费。
- 任务创建之后仍可能失败(
bad_request,会退款):编辑的源视频短于 4 秒或长于 30 秒,以及模型把提示词理解为与你指定的不同的任务类型。message 会说明该改什么——应发送哪个task_type,或如何调整提示词的措辞。
按任务类型撰写提示词
该模型不接受的字段
发送下列字段会在扣费之前被拒绝,而不是被忽略:
watermark、quality、sound、multi_shots或character_orientation→field "watermark" is not supported by model seedance-2.5(其中是你发送的字段名)。- 任何 BeatAPI 视频模型都不使用的名称 →
unknown field: <name>。 duration: -1(由模型决定时长)→"duration" is outside its supported range;请发送整数秒数。
请求示例
文生视频
一段 5 秒、带声音的 720p 横版视频。
首尾帧
视频从第一张图片过渡到第二张图片。
参考图与参考音频
参照角色图片和音乐片段生成的表演。
参考图、参考视频与参考音频
请把视频链接换成你自己的 MP4 或 MOV。参考视频的每一秒都会计费(见计费)。
编辑视频
请把链接换成你自己的 4 到 30 秒的 MP4 或 MOV。不要传 duration 和 aspect_ratio:结果保持源视频的时长和形状。
延长视频
请把链接换成你自己的视频。源视频为 5 秒时,duration: 10 会再延长五秒。
响应
创建任务(201)
任务对象。任务成功之前 output 为 null。标注“运行中”的字段会在任务结束后消失。
任务完成
GET /v1/tasks/{task_id} 返回 HTTP 200 和 status: "succeeded",结果在 data.output 中。
输出字段
任务失败
失败的任务在 GET /v1/tasks/{task_id} 上仍然是 HTTP 200:失败信息在响应体里。预扣金额会全额退回,因此不会扣费。
完整示例
创建任务,按服务端给出的轮询提示等待,然后打印结果链接。请在环境变量中设置 BEATAPI_API_KEY 并安装 requests。
计费
- 价格取决于视频的尺寸和时长:秒数越多、分辨率越高、画幅越大,价格越高。声音和
output_format不影响价格;参考图和参考音频不增加费用。 - 没有参考视频时,16:9 的片段每秒约 0.228(720p)或 $0.564(1080p)。其他宽高比相差几个百分点。
- 使用
reference_videos时,整个请求改按较低的“含视频输入”费率计算,且参考视频的每一秒都与输出的一秒同等计入:16:9 下,每秒输出加参考约 0.137(720p)或 $0.337(1080p)。 - 下表按 8 秒的片段列出;其中“含视频输入”的行包含一段 8 秒的参考视频。
- 编辑会为源视频付两次费——一次作为参考,一次作为输出(输出保持源视频的时长,向上取整到整秒)。
usage.billable_duration_seconds显示输出的秒数。 - 价格在创建任务时预留。使用
adaptive或传帧时,预留按该分辨率下的最大画幅估算。你支付预留金额;如果交付的视频实际费用更高,则按实际金额支付。 - 很短的参考视频可能按最短计费时长收费,结算金额因此可能高于预扣金额;任务完成后,
usage显示实际扣费。 - 失败的任务(包括提交后被内容审核拒绝的任务)全额退款。
当前牌价,与价格页一致。享有协商折扣的账户实付更低;任务的 data.usage 始终显示实际扣费金额。
常见错误
HTTP 错误速查
任务生成之前的错误会以非 2xx 响应返回,不扣费。请根据 error.code 或 error.retryable 判断处理方式;message 会指出问题所在。完整列表和重试策略见错误码。
与 Seedance 2.0 的区别
身份验证
Send your API key as Authorization: Bearer <BEATAPI_API_KEY>.
请求头
请求体使用 JSON,并设置 Content-Type: application/json。Idempotency-Key 为可选:每个逻辑请求发送一个唯一值(最长 255 个字符),仅在重试完全相同的请求体时复用。24 小时内,用相同的键和请求体重试会再次返回第一次的响应,并带上 Idempotent-Replayed: true;相同的键搭配不同的请求体则返回 409 idempotency_conflict。非 2xx 的响应不会被保存,因此 400 或 402 之后的重试会重新执行。
请求
要运行的模型。
取值:seedance-2.5
取值有误时
- 缺失:
"model" is required - 把图片模型发到了这个接口:
"model" nano-banana-2 is served by POST /v1/images/tasks, not this endpoint
视频中发生什么:主体、动作、镜头运动、风格和声音。使用参考素材时,请说明每个输入的用途。
长度:1–5000 个字符
- 长度按字符计算(一个中日韩文字算一个字符)。
- 按位置指代输入,例如“第一张参考图”或“第二段参考视频”。
- 用参考视频生成新视频时,避免使用“替换”“移除”“延长”之类的词(replace、remove、extend),否则模型可能把请求理解为编辑;为保险起见,请发送
task_type: "reference"。对于edit,说明要改什么、保留什么。对于extend,描述接下来发生什么。
取值有误时
- 缺失:
"prompt" is required - 为空或超过长度上限:
"prompt" has an unsupported length
视频的形状,以 宽:高 表示。adaptive 由模型根据输入自行选择。
可选值:adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16
默认值:adaptive
- 当
images携带首帧时会被忽略:视频沿用该帧的宽高比。 task_type为edit或extend时,请不要传,或传adaptive:结果保持源视频的形状。- 使用
adaptive(或传帧)时,预扣按所选分辨率下的最大画幅估算,因此可能比固定比例略高。
取值有误时
- 取值不在列表中:
"aspect_ratio" must be one of: [adaptive 21:9 16:9 4:3 1:1 3:4 9:16] edit或extend时传了固定比例:task_type "edit" keeps the reference video's aspect ratio: leave "aspect_ratio" out or send "adaptive"
视频时长,单位为秒,必须是整数。
默认值:5
范围:4–30
- 不传时会发送
5——task_type为auto和reference时同样如此。 - 使用
task_type: "extend"时请务必传:它是包含源视频在内的成片总时长。要给一段 5 秒的视频再延长 5 秒,请发送10;不传则表示总共 5 秒。 - 使用
task_type: "edit"时请不要传:结果保持源视频的时长。
取值有误时
- 超出范围或不是整数:
"duration" is outside its supported range - 与
task_type: "edit"一起发送:task_type "edit" keeps the reference video's length: leave "duration" out
视频是否带生成的音轨。两种情况价格相同。
默认值:true
取值有误时
- 不是 true 或 false:
"generate_audio" must be a boolean
首帧,或首帧加尾帧。
数量:1–2
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- 一个链接:视频从这张图片开始。两个链接:
images[0]是首帧,images[1]是尾帧。 - 视频沿用第一张图片的宽高比;
aspect_ratio不生效。 - 需要更多图片,或图片只是引导视频而不是作为帧时,请改用
reference_images。
取值有误时
- 超过两个链接:
"images" accepts at most 2 items - 与任一 reference_* 字段同时使用:
Cannot combine "images" with reference inputs in one task - 不是 https:// 链接:
"images[0]" must be a public HTTPS URL
结果的容器格式:mp4(不传时使用)或 mov。价格相同。
可选值:mp4, mov
mov适合后续剪辑。它并非始终可用;不可用时,请求会在扣费之前被拒绝,并附一句话说明你当前可以使用哪些格式。
取值有误时
- 取值不在列表中:
"output_format" must be one of: [mp4 mov]
要参照的音乐、人声或声音。只传音频、不带任何图片或视频参考也可以。
数量:1–10
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- WAV 和 MP3 会按下方限制进行检测;其他格式不经检测直接交给模型。
取值有误时
- 超过数量上限:
"reference_audios" accepts at most 10 items
用来引导视频内容、角色、商品或风格的图片。
数量:1–30
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- 图片按列表顺序使用;在提示词中按位置指代它们。
取值有误时
- 超过数量上限:
"reference_images" accepts at most 30 items - 与
images同时使用:Cannot combine "images" with reference inputs in one task
用来提取动作、镜头运动或内容的视频,或要编辑、延长的视频(见 task_type)。
数量:1–10
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。
- 每个链接必须返回 MP4 或 MOV 文件,且其主机允许字节范围请求(byte-range):网关在创建任务之前会读取每段视频的时长,因为参考视频的秒数要计费。
task_type为edit和extend时必填。
说明:参考视频的每一秒都会计入价格(见计费)。请只保留你需要的部分。
取值有误时
- 超过数量上限:
"reference_videos" accepts at most 10 items - 无法读取该视频:
A reference video could not be read: reference_videos[0]: its host does not allow byte-range requests. Send an MP4 or MOV file at a public HTTPS URL whose host allows byte-range requests.
输出分辨率。分辨率越高,每秒越贵。
可选值:480p, 720p, 1080p
默认值:720p
- 只能用小写。Seedance 2.5 不提供 4K(请使用
seedance-2)。
取值有误时
- 取值不在列表中(例如
4k或720P):"resolution" must be one of: [480p 720p 1080p]
固定一个数字可以让结果更容易复现;不传或传 -1 则使用随机种子。
范围:-1–4294967295
- 相同的种子配合相同的请求,得到的结果相近,但不保证完全一致。
取值有误时
- 超出范围:
"seed" is outside its supported range
如何处理 reference_videos:用它们生成新视频(reference)、编辑其中一个(edit),或延长其中一个(extend)。auto(或不传)由模型根据提示词判断。
可选值:auto, reference, edit, extend
- 指明类型后,网关可以在扣费之前检查请求;各类型的规则见下方任务类型。
- 使用
auto或reference时总会发送一个时长(不传则为5),因此模型理解为编辑的提示词,会在提交后失败(会退款),或被当作编辑重新运行,并按源视频的时长计费。如果你的意图是编辑,请发送edit。
取值有误时
- 取值不在列表中:
"task_type" must be one of: [auto reference edit extend] edit或extend但没有参考视频:task_type "edit" needs a video in "reference_videos"reference但没有任何参考输入:task_type "reference" needs reference inputs
响应
任务对象。任务成功之前 output 为 null。标注“运行中”的字段会在任务结束后消失。

