跳到正文
H3 Studio

生成视频

POST /v2/video_generation

请求

字段类型必填说明
modelstringMiniMax-H3MiniMax-H3-FastMiniMax-H3-Economy
contentarray恰好一个文本项,外加可选素材
resolutionstring只支持 768P
durationinteger5–15 秒
ratiostringadaptive21:916:94:31:13:49:16
callback_urlstring回调

响应:{ "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"
}

rolefirst_framelast_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 秒1245.17 秒
8 秒1928.00 秒
10 秒24310.13 秒
15 秒34514.38 秒

计费按你请求的时长走,所以多出来的部分是免费的。 唯一会短一点的是 15 秒:360 帧向上取整是 362,超过上限,因此收敛到 14.38 秒。

4 秒不可用。4 秒是 96 帧,取整后 107 —— 低于 120 帧的下限。 官方托管 API 接受 duration: 4,这套部署会返回 400 说明原因, 而不是悄悄给你 5 秒。

查询任务

GET /v2/query/video_generation/{task_id}

statusqueuedrunningsucceededfailedcancelled 之一。

content.url 在任务成功后出现,带签名、一小时过期,且在查询时才生成 —— 所以链接过期的解决办法是再查一次,不是找客服。

usage 就是计费记录:output_seconds 是你请求的时长, input_seconds 是实测的参考素材时长,input_image_count 是参考图数量。

取消

POST /v2/video_generation/{task_id}/cancel

queuedrunning 时有效,全额退回预扣。对已结束的任务取消会返回 400

这个端点是扩展:官方 status 枚举里有 cancelled,但没有产生它的接口。