Create Seedance task
最近更新:2026年9月7日
按火山方舟原生形状提交视频生成任务。提示词可选,计费按 token。
按火山方舟 v3 的形状提交一个视频任务。已有方舟代码时,把 base_url 指向本站即可,
请求体与响应形状和你现在发的一致。
https://gateway.amux.ai/api/v3/contents/generations/tasks鉴权
headerAuthorizationstring必填Bearer <你的 Amux 密钥> 控制台创建的 Amux 密钥。忘了可以回控制台的密钥页再看一次。
请求
application/jsonmodelstring必填Amux 模型 ID。今天有四个模型走这条端点,逐项不同:
| 模型 | 分辨率 | 时长 | 其他 |
|---|---|---|---|
bytedance/doubao-seedance-2-5 | 480p 720p 1080p | -1 或 4–30 秒 | 参考素材 30/10/10;有 output_format 与 omni_reference_task_type |
bytedance/doubao-seedance-2-0 | 480p 720p 1080p 4k | -1 或 4–15 秒 | 参考素材 9/3/3 |
bytedance/doubao-seedance-2-0-fast | 480p 720p | -1 或 4–15 秒 | 同上 |
bytedance/doubao-seedance-2-0-mini | 480p 720p | -1 或 4–15 秒 | 同上 |
要一个这个模型没有的档位会直接拒,不静默降级:
要 1080p 拿到 720p、账单还按 720p 收,比一条明确报错更糟。
也可以填你自己账号下的接入点 ID(ep-…)——按渠道配置转发,
官方两种都收。
contentarray<object>必填提示词和输入素材在同一个数组里。
和 MiniMax 那种形状不同,text 项不是必填——只给一张首帧,
或者只给参考素材,都是合法请求。必须成立的只有「数组不为空」。
›contentarray<object>
type"text" | "image_url" | "video_url" | "audio_url"必填这一项是什么种类。
它不是角色——角色在 role 上,两个是分开的字段。
textstringtype 为 text 时的提示词。
指代输入素材用自然语言(「跟着第一段参考视频的动作」)。
urlstring素材放在哪。只收公开的 https 地址——是模型自己去取,
Amux 从不代取。
role"first_frame" | "last_frame" | "reference_image" | "reference_video" | "reference_audio"这件素材是干什么用的。上限两代不同:
| 2.5 | 2.0 / fast / mini | |
|---|---|---|
| 首帧 / 尾帧 | 各 1 | 各 1 |
| 参考图 | 30 张 | 9 张 |
| 参考视频 | 10 段,单段 2–30 秒,合计 ≤ 30 秒 | 3 段,单段 2–15 秒,合计 ≤ 15 秒 |
| 参考音频 | 10 段,同上 | 3 段,同上 |
| 只传音频 | 可以 | 不行,至少要有 1 个参考视频或图片 |
首尾帧与参考素材互斥——从 MiniMax 那种形状迁过来时
最容易撞上这一条,那边是可以一起给的。
resolution"480p" | "720p" | "1080p" | "4k"默认 "720p"出片分辨率档。档位越高越贵,多数是因为它产出的 token 更多,
而不是因为单价不同——例外是 1080p 与 4k,它们各自还换了
一档 token 单价。
哪几档合法取决于模型,见 model 上那张表。4k **只有
bytedance/doubao-seedance-2-0 有**。
⚠️ 1080p 与 4k 的产物是 10bit 位深 + H.265/HEVC 编码,
少数播放器不兼容。
durationinteger默认 -1出片时长(秒)。-1 表示由模型在合法区间内自己定,
四个模型都收它(也是 2.5 的默认值)。
区间逐模型不同:2.5 是 4–30 秒,2.0 系列三个都是 4–15 秒。
⚠️ 时长直接决定 token 数,也就直接决定这次花多少钱。
ratio"adaptive" | "21:9" | "16:9" | "4:3" | "1:1" | "3:4" | "9:16"默认 "adaptive"宽高比。adaptive 跟着输入素材走。
⚠️ **bytedance/doubao-seedance-2-5 在给了首帧、或者做视频编辑 /
视频延长时只收 adaptive**:输出比例恒跟随首帧图或待编辑视频。
2.0 系列没有这条限制,那三个可以自己指定比例。
generate_audioboolean默认 true出片带不带声音。默认开——模型会按提示词与画面自动配上
人声、音效与背景音乐。想要无声视频就显式传 false。
watermarkboolean默认 false要不要给产物打 AIGC 水印。
output_format"mp4" | "mov"默认 "mp4"产物的封装格式。只有 bytedance/doubao-seedance-2-5 有这个参数。
mov 是面向后期的高色彩精度格式(H.264 + yuv444p + PCM),
部分播放器不兼容;做调色、抠像、合成时用它。
return_last_frameboolean默认 false是否额外返回一张尾帧图(png,无水印,尺寸与视频一致)。
拿它当下一段的首帧,就能接出连续的多段视频。
omni_reference_task_type"auto" | "reference" | "edit" | "extend"默认 "auto"全模态参考任务的子类型。只有 bytedance/doubao-seedance-2-5 有。
默认 auto 由模型按素材与提示词自己判断;显式指定能把校验
提前到提交这一刻,而不是等任务跑起来才异步报错。
⚠️ edit 连带两条硬约束:ratio 必须是 adaptive、
duration 必须是 -1,且必须带至少一段参考视频。
toolsarray<object>工具配置,目前只有联网搜索。开启后模型会自主判断要不要搜
互联网内容(商品、天气这类),时效性更好但会增加时延。
走 /v1/tasks 时这个能力叫 web_search,是个布尔。
›toolsarray<object>
type"web_search"必填固定为 web_search。目前只有联网搜索这一种工具。
priorityinteger默认 0排队优先级,数值越大越靠前。只影响同一个接入点内的排队顺序,
不会打断已经在跑的任务。
execution_expires_afterinteger默认 172800任务超时阈值(秒),从创建时刻算起,默认 48 小时。
超过之后任务被终止并落 expired。
safety_identifierstring终端用户的唯一标识,用于风控归因。建议传哈希值,
不要传明文用户名或邮箱。
走 /v1/tasks 时这个字段叫 user。
callback_urlstring任务到终态时回调这个地址。它就是 Amux 的 webhook_url——
我们只是按厂商的字段名收下;负载和统一端点完全一致
({event, sent_at, task} 信封、Amux-Signature 头、退避重试)。
只收 https,且不能是内网地址。 提交时就会校验。
响应
200response已受理。响应体里只有 id——拿它去 GET /v1/tasks/{id}
(或下面那条别名)轮询。
400response参数不合法、请求为空、素材超过模型收的件数,或者传了 Seedance 1.x 的
参数(seed、camera_fixed、frames、draft)。后者是**报错而不是
丢掉**:以为 seed 生效了、拿回一个随机结果,比一条报错难查得多。
402response可用余额不够预扣。预扣按 15 秒出片冻,带参考视频时再加 30 秒。
503response当前没有供应商能服务这个模型。
这条端点上有哪些模型
| 模型 | 分辨率 | 时长 | 参考图 / 视频 / 音频 | 独有参数 |
|---|---|---|---|---|
bytedance/doubao-seedance-2-5 | 480p 720p 1080p | -1 或 4–30 秒 | 30 / 10 / 10 | output_format、omni_reference_task_type |
bytedance/doubao-seedance-2-0 | 480p 720p 1080p 4k | -1 或 4–15 秒 | 9 / 3 / 3 | —— |
bytedance/doubao-seedance-2-0-fast | 480p 720p | -1 或 4–15 秒 | 9 / 3 / 3 | —— |
bytedance/doubao-seedance-2-0-mini | 480p 720p | -1 或 4–15 秒 | 9 / 3 / 3 | —— |
-1 表示由模型在合法区间内自己定时长,四个模型都收(也是 2.5 的默认值)。
精确取值域看模型自己那一页——这一页只答「我该看哪一页」: Seedance 2.5 · 2.0 · 2.0 Fast · 2.0 Mini。 差异表写在这里是必要的(你要能判断该看哪一页),但精确取值域只应有一处, 两处各写一份迟早只改一处。
⚠️ 要一个这个模型没有的档位会直接拒,不静默降级。 要 1080p 拿到 720p、 账单还按 720p 收,比一条明确报错更糟——而后者你要等十几分钟、付完钱才看得出来。
⚠️ 1080p 与 4k 的产物是 10bit 位深 + H.265/HEVC 编码,少数播放器打不开。
和 MiniMax 形状最容易搞混的三处
两边的请求体几乎一模一样(同样是平铺参数加一个异构的 content[]),
所以从 POST /v2/video_generation
迁过来时,差异都藏在细节里:
1. 提示词是可选的
MiniMax 那条要求 content 里必须有一条非空 text——这条不要求。
纯首尾帧、甚至只传一段参考音频,都是官方支持的组合。
必须成立的只有「content 不为空」。
2. 首尾帧与参考素材互斥
MiniMax 那条可以把它们组合着用,这条不行:官方把首帧、首尾帧、多模态参考 定义成三种互斥的场景,混用上游直接拒。逐角色的件数上限比 MiniMax 宽得多:
逐角色的件数上限两代不同,别照着 2.5 那一列去打 2.0:
| 角色 | 2.5 | 2.0 / fast / mini |
|---|---|---|
first_frame / last_frame | 各 1(给了尾帧就必须给首帧) | 各 1 |
reference_image | 30 | 9 |
reference_video | 10 段,单段 2–30 秒,合计 ≤ 30 秒 | 3 段,单段 2–15 秒,合计 ≤ 15 秒 |
reference_audio | 10 段,同上 | 3 段,同上 |
| 只传音频、不给图和视频 | 可以 | 不行,至少要有一段参考视频或一张图 |
⚠️ bytedance/doubao-seedance-2-5 给了首帧时 ratio 只收 adaptive:
输出宽高比恒跟随那张首帧图片,显式传一个具体比例会在提交时被拒。
2.0 系列没有这条限制,那三个可以自己指定比例。
3. type 不是用途
这一处两边相同,但它仍然是整条链路上最容易写错的地方:
{
"content": [
{ "type": "text", "text": "让画面里的人走向镜头" },
{ "type": "image_url", "role": "first_frame", "image_url": { "url": "https://…/a.png" } }
]
}type 是媒体种类(image_url / video_url / audio_url),用途在 role 上。
role 不能省略——省了会返回 400 而不是被猜成首帧。
Seedance 1.x 的参数会报错,不是被丢掉
seed、camera_fixed、frames、draft、service_tier=flex 这几个在 1.x 上有效,
Seedance 2.x 四个模型一个都不支持。传了会在提交时被拒。
这是有意的。 静默剔除的表现是:你以为 seed 生效了、拿回一个随机结果,
而排查成本远高于一条报错。
计费:按 token,不按秒
站内其它视频模型都按出片秒数计费,这个不是。上游自己的换算口径是:
tokens = 宽 × 高 × 帧数 / 1024 帧数 = 秒数 × 24 fps
宽高跟着 resolution 与最终的宽高比走,所以分辨率越高越贵,多数是因为它
产出的 token 更多,而不是因为它的单价不同。例外是 1080p 与 4k——
那两档还各自换了一档 token 单价。
| 计费项 | 怎么收 |
|---|---|
| 出片 | usage.completion_tokens × token 单价 |
| 参考视频 | 不单独收——它的成本已经在上面那个 token 数里 |
| 参考图 / 参考音频 | 免费 |
⚠️ 输入里带参考视频的请求会换到一档更低的 token 单价,而且这个折扣作用于 整单,不只是输入那部分。
提交时按上界预扣:15 秒出片折成的 token,带参考视频时按 45 秒折算。 完成后按上游返回的实际 token 用量结算并释放差额。
官方全集里的其余参数
这条端点收火山方舟的全部请求参数,除了上面那节列出的 1.x 专有项:
| 参数 | 说明 |
|---|---|
return_last_frame | 额外返回一张 png 尾帧(无水印、尺寸同视频)。拿它当下一段的首帧就能接出连续视频 |
priority | 排队优先级 0–9,越大越靠前。只影响排队,不打断在跑的任务 |
execution_expires_after | 任务超时阈值(秒),3600–259200,默认 48 小时。超时落 expired |
safety_identifier | 终端用户标识,≤ 64 字符。传哈希,别传明文 |
tools: [{"type":"web_search"}] | 联网搜索,模型自主判断要不要搜 |
output_format | mp4 / mov。只有 2.5 有 |
omni_reference_task_type | auto / reference / edit / extend。只有 2.5 有 |
⚠️ omni_reference_task_type: "edit" 连带两条硬约束:ratio 必须是 adaptive、
duration 必须是 -1,且至少要带一段参考视频。显式指定它的好处是校验提前到
提交这一刻,而不是等任务跑起来才异步报错。
⚠️ 走 /v1/tasks 时有两个字段换了名字:safety_identifier 叫 user,
tools 那个数组扁平成布尔 web_search。其余同名。
任务 ID 是我们的 ID
返回的 id 是 Amux 的任务 ID。拿它去
GET /v1/tasks/{id} 或者
方舟形状的别名,两条查的是同一个任务。
curl https://gateway.amux.ai/api/v3/contents/generations/tasks \
-H "Authorization: Bearer $AMUX_API_KEY" \
-d '{
"model": "bytedance/doubao-seedance-2-5",
"content": [
{
"type": "text",
"text": "A ginger cat running through fresh snow, slow motion"
}
],
"resolution": "720p",
"duration": -1
}'{
"id": "<string>"
}