主题
MiniMax H3 视频生成
POST
/v1/video/generations
MiniMax H3 是一款支持文生视频、图生视频和多模态参考视频生成的异步视频模型。
- 文生视频(T2V):根据提示词从零生成视频,需指定宽高比。
- 图生视频(I2V):使用首帧和/或尾帧图片控制视频的起止画面。
- 多模态参考视频(R2V):传入参考图片、参考视频和参考音频,引导生成风格和内容。
提交生成请求后,接口立即返回任务 ID。视频生成是异步过程,需要通过查询接口检查任务状态,成功后从返回的结果地址获取视频。
- 这是异步接口。创建请求返回任务 ID 后即结束,不等候视频生成完成。
- 客户端应定期调用查询接口检查任务状态,建议间隔 5–10 秒。
- 成功后从查询响应的
data.result_url获取视频内容地址。
模型
请求体中的 model 固定填写下面的模型 ID。
MiniMax-H3价格
| 分辨率 | 单秒售价 |
|---|---|
768P | ¥0.816 / $0.12 |
2K | ¥0.816 / $0.12 |
两档分辨率同价;按输出视频秒数(duration)计费,生成失败的请求不扣费。
认证
使用 ClawPower API Key 进行 Bearer 认证,并在请求头中传入:
Authorization: Bearer <CLAWPOWER_API_KEY>类型 HTTP (bearer)
请求体
application/json
要调用的模型 ID。固定填写 MiniMax-H3,不支持别名或其他模型名称。
有效值
"MiniMax-H3"视频生成说明。描述场景、主体、动作、镜头和风格。
必须是非空 UTF-8 字符串,去除首尾空白后不能为空,最长 7000 个字符。
最小长度
1最大长度
7000输出视频时长,单位为秒,取值范围为 4–15 的整数。
最小值
4最大值
15输出分辨率。两档分辨率价格相同。取值大小写不敏感,2k 与 2K 等价。
有效值
"768P""2K"输出视频的宽高比。
文生视频(T2V):必填,必须是具体比例,不能为 adaptive。
图生视频(I2V):可省略,画幅由首帧/尾帧决定;传入值会被忽略。
多模态参考视频(R2V):可省略,默认为 adaptive;也可传具体比例。
有效值
"adaptive""21:9""16:9""4:3""1:1""3:4""9:16"首帧图片的公网 HTTPS URL。用于图生视频模式,控制视频起始画面。
不能与 image_urls、video_urls 或 audio_urls 同时使用。
尾帧图片的公网 HTTPS URL。用于图生视频模式,控制视频结束画面。可单独使用,也可与 first_frame_image 同时使用。
不能与 image_urls、video_urls 或 audio_urls 同时使用。
参考图片 URL 数组。用于多模态参考视频模式。
- 数量:1–5 张。
- 类型:公网可访问的 HTTPS URL。
- 格式:JPG、JPEG、PNG、WEBP、HEIC、HEIF。
- 不能与
first_frame_image或last_frame_image同时使用。
最小项数
1最大项数
5参考视频 URL 数组。用于多模态参考视频模式。
- 数量:1–3 个。
- 类型:公网可访问的 HTTPS URL。
- 格式:MP4、MOV。
- 供应商约束:总时长不超过 15 秒。
- 参考视频不额外计费。
- 不能与
first_frame_image或last_frame_image同时使用。
最小项数
1最大项数
3参考音频 URL 数组。用于多模态参考视频模式。
- 数量:1–3 个。
- 类型:公网可访问的 HTTPS URL。
- 格式:WAV、MP3。
- 供应商约束:总时长不超过 15 秒。
- 不能单独使用,必须同时传入
image_urls或video_urls。 - 不能与
first_frame_image或last_frame_image同时使用。
最小项数
1最大项数
3响应
任务创建成功。返回公共任务 ID,用于后续查询。
application/json
JSON "id": "task_0123456789abcdef", "task_id": "task_0123456789abcdef", "object": "video", "model": "MiniMax-H3", "status": "queued", "progress": 0, "created_at": 1787328000
{
}
TIP
视频生成是异步任务。创建任务后,请前往 任务管理 > 查询视频任务 查看任务状态与结果。
生成模式
MiniMax H3 根据请求中的媒体字段自动确定生成模式,不需要额外指定 mode 参数。
| 模式 | 触发条件 | 允许的媒体字段 |
|---|---|---|
| 文生视频 T2V | 没有任何媒体字段 | 无 |
| 图生视频 I2V | 传入 first_frame_image 或 last_frame_image | 仅首帧、尾帧 |
| 多模态参考 R2V | 传入 image_urls、video_urls 或 audio_urls | 仅参考素材数组 |
首尾帧字段与参考素材数组不能同时出现。audio_urls 不能单独使用,必须同时传入 image_urls 或 video_urls。
宽高比规则
| 模式 | ratio 规则 |
|---|---|
| T2V | 必填,必须是具体比例,不能为 adaptive |
| I2V | 可省略,画幅由首帧/尾帧决定;传入值会被忽略 |
| R2V | 可省略,默认 adaptive;也可传具体比例 |
支持的宽高比:adaptive、21:9、16:9、4:3、1:1、3:4、9:16。
媒体限制
| 媒体 | 格式 | 数量限制 |
|---|---|---|
| 图片 | JPG、JPEG、PNG、WEBP、HEIC、HEIF | 首尾帧各 1 张;参考图最多 5 张 |
| 视频 | MP4、MOV | 最多 3 个,供应商要求总时长不超过 15 秒 |
| 音频 | WAV、MP3 | 最多 3 个,供应商要求总时长不超过 15 秒 |
所有媒体字段只接受公网 HTTPS URL,不接受本地路径、file://、内网地址或 Base64。
完整调用示例
下面的 Python 示例展示完整的异步任务流程:创建任务、查询状态、下载视频。
python
import time
import requests
API_BASE = "https://api.clawpowerai.com"
API_KEY = "<CLAWPOWER_API_KEY>"
# 1. 创建视频生成任务
create_response = requests.post(
f"{API_BASE}/v1/video/generations",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
},
json={
"model": "MiniMax-H3",
"prompt": "一个男孩在海边打篮球,黄昏,海浪拍岸,电影感运镜",
"duration": 5,
"resolution": "2K",
"ratio": "16:9",
},
timeout=30,
)
create_response.raise_for_status()
task_id = create_response.json()["task_id"]
print(f"任务已创建: {task_id}")
# 2. 查询任务状态,等待生成完成
while True:
query_response = requests.get(
f"{API_BASE}/v1/video/generations/{task_id}",
headers={"Authorization": f"Bearer {API_KEY}"},
timeout=30,
)
query_response.raise_for_status()
data = query_response.json()["data"]
status = data["status"]
print(f"状态: {status}, 进度: {data['progress']}")
if status == "SUCCESS":
result_url = data["result_url"]
break
elif status == "FAILURE":
raise RuntimeError(f"视频生成失败: {data['fail_reason']}")
time.sleep(8)
# 3. 下载视频(内容地址同样需要 Bearer 鉴权)
video_response = requests.get(
result_url,
headers={"Authorization": f"Bearer {API_KEY}"},
timeout=120,
)
video_response.raise_for_status()
with open("output.mp4", "wb") as f:
f.write(video_response.content)
print("视频已保存为 output.mp4")NOTE
这是异步接口。创建请求返回任务 ID 后立即结束,不等候视频生成完成。客户端应定期调用查询接口检查任务状态,建议间隔 5–10 秒。查询请求返回 HTTP 200 只表示成功读取了任务记录,必须检查 data.status 判断任务是否成功完成。详见 任务管理 > 查询视频任务。
