生成视频
POST /v2/video_generation
请求
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | MiniMax-H3、MiniMax-H3-Fast、MiniMax-H3-Economy |
content | array | 是 | 恰好一个文本项,外加可选素材 |
resolution | string | 是 | 只支持 768P |
duration | integer | 是 | 5–15 秒 |
ratio | string | 否 | adaptive、21:9、16:9、4:3、1:1、3:4、9:16 |
callback_url | string | 否 | 见 回调 |
响应:{ "task_id": "424010985738629" }。
三个 model 名字对应三个 档位:不同的 TPU 拓扑, 因而延迟、并发和价格都不同。请求形状在三档之间完全一致。
三种模式
跑哪种模式由 content 推断,不需要你指定。
文生音视频
{
"model": "MiniMax-H3",
"content": [{ "type": "text", "text": "…" }],
"resolution": "768P",
"duration": 10,
"ratio": "16:9"
}
这种模式下 ratio 必填且不能是 adaptive —— 没有输入图,没有可以「自适应」的对象。
首帧 / 尾帧
给一到两张图,钉住片子的两端。
{
"content": [
{ "type": "text", "text": "…" },
{
"type": "image_url",
"image_url": { "url": "https://example.com/first.png" },
"role": "first_frame"
}
],
"ratio": "adaptive"
}
role 取 first_frame 或 last_frame。只给一张图且不写 role,
按首帧处理;给第二张却不写 role 会直接报错,而不是替你猜。
画幅由图片决定,ratio 会被忽略。
多模态参考
最多 9 张图、3 段视频、3 段音频,作为风格、主体或音色参考。
{
"content": [
{ "type": "text", "text": "…" },
{
"type": "video_url",
"video_url": { "url": "mm_file://424010985738629" },
"role": "reference_video"
},
{
"type": "audio_url",
"audio_url": { "url": "https://example.com/voice.mp3" },
"role": "reference_audio"
}
]
}
关键帧角色和参考角色不能混用:它们跑在不同的 checkpoint 上。
参考模式需要单独部署的 worker 池。如果当前部署没有起这个池, 请求会返回
503并说明原因,而不是永远排在队列里。
素材输入
任何接受 url 的地方都支持三种形式:
- 公网
https://链接 - 文件接口 返回的
mm_file://{file_id} - base64 data URI,
data:image/png;base64,…
限制:图片 ≤ 30 MB、视频 ≤ 50 MB、音频 ≤ 15 MB,整个请求体 ≤ 64 MB。
优先用 mm_file:// 而不是 base64 —— data URI 要经过中间每一跳。
时长,以及为什么会比你要的长
视觉解码器以 17 帧为一段、外加 5 帧引导,所以只有 17n + 5 的帧数能解码。
模型还要求这个帧数落在 120 到 360 之间,并且向上取整。
| 你要 | 帧数 | 实际得到 |
|---|---|---|
| 5 秒 | 124 | 5.17 秒 |
| 8 秒 | 192 | 8.00 秒 |
| 10 秒 | 243 | 10.13 秒 |
| 15 秒 | 345 | 14.38 秒 |
计费按你请求的时长走,所以多出来的部分是免费的。 唯一会短一点的是 15 秒:360 帧向上取整是 362,超过上限,因此收敛到 14.38 秒。
4 秒不可用。4 秒是 96 帧,取整后 107 —— 低于 120 帧的下限。
官方托管 API 接受 duration: 4,这套部署会返回 400 说明原因,
而不是悄悄给你 5 秒。
查询任务
GET /v2/query/video_generation/{task_id}
status 取 queued、running、succeeded、failed、cancelled 之一。
content.url 在任务成功后出现,带签名、一小时过期,且在查询时才生成 ——
所以链接过期的解决办法是再查一次,不是找客服。
usage 就是计费记录:output_seconds 是你请求的时长,
input_seconds 是实测的参考素材时长,input_image_count 是参考图数量。
取消
POST /v2/video_generation/{task_id}/cancel
在 queued 或 running 时有效,全额退回预扣。对已结束的任务取消会返回 400。
这个端点是扩展:官方 status 枚举里有 cancelled,但没有产生它的接口。