Amux

Create Seedance task

最近更新:2026年9月7日

按火山方舟原生形状提交视频生成任务。提示词可选,计费按 token。

按火山方舟 v3 的形状提交一个视频任务。已有方舟代码时,把 base_url 指向本站即可, 请求体与响应形状和你现在发的一致。

POSThttps://gateway.amux.ai/api/v3/contents/generations/tasks

鉴权

header
Authorizationstring必填

Bearer <你的 Amux 密钥> 控制台创建的 Amux 密钥。忘了可以回控制台的密钥页再看一次。

请求

application/json
modelstring必填

Amux 模型 ID。今天有四个模型走这条端点,逐项不同:

模型分辨率时长其他
bytedance/doubao-seedance-2-5480p 720p 1080p-1 或 4–30 秒参考素材 30/10/10;有 output_formatomni_reference_task_type
bytedance/doubao-seedance-2-0480p 720p 1080p 4k-1 或 4–15 秒参考素材 9/3/3
bytedance/doubao-seedance-2-0-fast480p 720p-1 或 4–15 秒同上
bytedance/doubao-seedance-2-0-mini480p 720p-1 或 4–15 秒同上

要一个这个模型没有的档位会直接拒,不静默降级

要 1080p 拿到 720p、账单还按 720p 收,比一条明确报错更糟。

也可以填你自己账号下的接入点 IDep-…)——按渠道配置转发,

官方两种都收。

contentarray<object>必填

提示词和输入素材在同一个数组里。

和 MiniMax 那种形状不同,text不是必填——只给一张首帧,

或者只给参考素材,都是合法请求。必须成立的只有「数组不为空」。

contentarray<object>
type"text" | "image_url" | "video_url" | "audio_url"必填

这一项是什么种类

它不是角色——角色在 role 上,两个是分开的字段。

textstring

typetext 时的提示词。

指代输入素材用自然语言(「跟着第一段参考视频的动作」)。

urlstring

素材放在哪。只收公开的 https 地址——是模型自己去取,

Amux 从不代取。

role"first_frame" | "last_frame" | "reference_image" | "reference_video" | "reference_audio"

这件素材是干什么用的。上限两代不同

2.52.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 更多

而不是因为单价不同——例外是 1080p4k,它们各自还换了

一档 token 单价。

哪几档合法取决于模型,见 model 上那张表。4k **只有

bytedance/doubao-seedance-2-0 有**。

⚠️ 1080p4k 的产物是 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 的

参数(seedcamera_fixedframesdraft)。后者是**报错而不是

丢掉**:以为 seed 生效了、拿回一个随机结果,比一条报错难查得多。

402response

可用余额不够预扣。预扣按 15 秒出片冻,带参考视频时再加 30 秒。

503response

当前没有供应商能服务这个模型。

这条端点上有哪些模型

模型分辨率时长参考图 / 视频 / 音频独有参数
bytedance/doubao-seedance-2-5480p 720p 1080p-1 或 4–30 秒30 / 10 / 10output_formatomni_reference_task_type
bytedance/doubao-seedance-2-0480p 720p 1080p 4k-1 或 4–15 秒9 / 3 / 3——
bytedance/doubao-seedance-2-0-fast480p 720p-1 或 4–15 秒9 / 3 / 3——
bytedance/doubao-seedance-2-0-mini480p 720p-1 或 4–15 秒9 / 3 / 3——

-1 表示由模型在合法区间内自己定时长,四个模型都收(也是 2.5 的默认值)。

精确取值域看模型自己那一页——这一页只答「我该看哪一页」: Seedance 2.5 · 2.0 · 2.0 Fast · 2.0 Mini。 差异表写在这里是必要的(你要能判断该看哪一页),但精确取值域只应有一处, 两处各写一份迟早只改一处。

⚠️ 要一个这个模型没有的档位会直接拒,不静默降级。 要 1080p 拿到 720p、 账单还按 720p 收,比一条明确报错更糟——而后者你要等十几分钟、付完钱才看得出来。

⚠️ 1080p4k 的产物是 10bit 位深 + H.265/HEVC 编码,少数播放器打不开。

和 MiniMax 形状最容易搞混的三处

两边的请求体几乎一模一样(同样是平铺参数加一个异构的 content[]), 所以从 POST /v2/video_generation 迁过来时,差异都藏在细节里:

1. 提示词是可选

MiniMax 那条要求 content 里必须有一条非空 text——这条不要求。 纯首尾帧、甚至只传一段参考音频,都是官方支持的组合。 必须成立的只有「content 不为空」。

2. 首尾帧与参考素材互斥

MiniMax 那条可以把它们组合着用,这条不行:官方把首帧、首尾帧、多模态参考 定义成三种互斥的场景,混用上游直接拒。逐角色的件数上限比 MiniMax 宽得多:

逐角色的件数上限两代不同,别照着 2.5 那一列去打 2.0:

角色2.52.0 / fast / mini
first_frame / last_frame各 1(给了尾帧就必须给首帧)各 1
reference_image309
reference_video10 段,单段 2–30 秒,合计 ≤ 30 秒3 段,单段 2–15 秒,合计 ≤ 15 秒
reference_audio10 段,同上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 的参数会报错,不是被丢掉

seedcamera_fixedframesdraftservice_tier=flex 这几个在 1.x 上有效, Seedance 2.x 四个模型一个都不支持。传了会在提交时被拒。

这是有意的。 静默剔除的表现是:你以为 seed 生效了、拿回一个随机结果, 而排查成本远高于一条报错。

计费:按 token,不按秒

站内其它视频模型都按出片秒数计费,这个不是。上游自己的换算口径是:

tokens = 宽 × 高 × 帧数 / 1024      帧数 = 秒数 × 24 fps

宽高跟着 resolution 与最终的宽高比走,所以分辨率越高越贵,多数是因为它 产出的 token 更多,而不是因为它的单价不同。例外是 1080p4k—— 那两档还各自换了一档 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_formatmp4 / mov只有 2.5 有
omni_reference_task_typeauto / reference / edit / extend只有 2.5 有

⚠️ omni_reference_task_type: "edit" 连带两条硬约束:ratio 必须是 adaptiveduration 必须是 -1,且至少要带一段参考视频。显式指定它的好处是校验提前到 提交这一刻,而不是等任务跑起来才异步报错。

⚠️ /v1/tasks 时有两个字段换了名字safety_identifierusertools 那个数组扁平成布尔 web_search。其余同名。

任务 ID 是我们的 ID

返回的 id 是 Amux 的任务 ID。拿它去 GET /v1/tasks/{id} 或者 方舟形状的别名,两条查的是同一个任务。

cURL
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>"
}