
MiniMax H3 API 使用指南
MiniMax H3 是 MiniMax 最新的视频生成模型,用户也会用 Hailuo 3 或 Hailuo 03 搜索它。模型提供三种不同的生成方式:根据文本直接生成视频、让首帧或尾帧图片动起来,以及根据图片、视频和音频参考素材生成新视频。
这篇指南将介绍如何通过 EvoLink 接入 MiniMax H3,包括怎样选择正确的模型 ID、提交请求、跟踪异步任务以及获取最终视频。三种模式共用统一的视频生成端点,因此可以在不重建任务系统的情况下,把 H3 加入现有的生产工作流。
快速结论
- 请求端点:
POST https://api.evolink.ai/v1/videos/generations - 鉴权方式: Bearer API Key
- 文生视频模型:
minimax-h3-text-to-video - 图生视频模型:
minimax-h3-image-to-video - 参考视频模型:
minimax-h3-reference-to-video - 输出规格: 2K 视频
- 视频时长: 4–15 秒
- 任务流程: 提交请求并取得任务 ID,然后轮询任务端点或使用 HTTPS Callback
- 结果有效期: 完成后的视频需要在 24 小时内下载并保存
目录
- MiniMax H3 可以做什么
- 核心功能与实际升级
- MiniMax H3 API 速览
- 如何接入 MiniMax H3 API
- 选择正确的生成模式
- 快速开始:60 秒提交第一个请求
- 理解异步任务流程
- 文生视频示例
- 图生视频示例
- 参考视频示例
- 上传本地素材
- 完整 TypeScript 实现
- 完整 Python 实现
- 参数与提示词速查
- 常见错误与解决方法
- 定价与成本规划
- 生产环境检查清单
- 实际使用场景
- 常见问题
1. MiniMax H3 可以做什么
MiniMax H3 面向短视频生成,并通过不同模式提供不同程度的创作控制。三种 API 模式使用相同的任务生命周期,但接收的输入不同。
| 模式 | 能做什么 | 常见用途 |
|---|---|---|
| 文生视频 | 根据文字描述直接生成视频 | 广告创意、电影感镜头、社交短片、分镜 |
| 图生视频 | 让首帧、尾帧或首尾两张图片动起来 | 产品动画、角色动作、受控转场 |
| 参考视频 | 使用图片、视频和可选音频作为新视频的参考 | 角色和风格参考、动作指导、多素材生产 |
三种模式的主要区别在于控制程度。文生视频给模型更大的发挥空间;图生视频用一张或两张关键帧固定画面;参考视频则允许在提示词中说明多份素材分别应该如何影响结果。
2. 核心功能与实际升级
对开发者来说,H3 最重要的变化可以直接从输入和输出合同中看到:
- 三种独立工作流。 文本、关键帧和多模态参考生成分别使用不同模型 ID,但共用一个 EvoLink 端点。
- 2K 输出。 当前 H3 路由只开放
2k画质选项。 - 4–15 秒可调时长。
duration接收整数,便于按照镜头规划设置片段长度。 - 首尾帧控制。 图生视频既可提交首帧,也可提交尾帧,或者同时提交两者。
- 更丰富的参考输入。 参考视频模式接收有顺序的图片、视频和音频数组,比单张主体图提供更明确的创作控制。
- 适合生产环境的任务处理。 EvoLink 为三种模式提供统一的异步任务查询和可选完成回调。
最后一项是 EvoLink 的接入能力,不是模型本身的能力。生产应用需要稳定的任务状态、Callback、日志和结果处理,而这些流程不应该随着所选模型改变。
与 Hailuo 2.3 相比有什么不同
| 对比项 | EvoLink 上的 Hailuo 2.3 | EvoLink 上的 MiniMax H3 |
|---|---|---|
| 输出档位 | 根据时长支持 768P 或 1080P | 2K |
| 视频时长 | 6 秒或 10 秒;1080P 仅支持 6 秒 | 4–15 秒内的任意整数 |
| 图片控制 | 图生视频使用一张输入图片 | 支持首帧、尾帧或首尾帧 |
| 参考素材 | 没有独立的多模态参考路由 | 支持有顺序的图片、视频和音频参考 |
| 模式选择 | 一个模型 ID 自动判断文本或图片模式 | 文本、图片和参考工作流分别使用明确的模型 ID |
官方示例:视频与声音参考
video_urls 和 audio_urls,而不是把所有输入都当作没有区别的普通附件。Audio 1 作为音色参考。3. MiniMax H3 API 速览
三种模式均使用以下端点:
POST https://api.evolink.ai/v1/videos/generationsmodel 决定。| 模型 ID | 必填输入 | 可用参考字段 | 画面比例 |
|---|---|---|---|
minimax-h3-text-to-video | prompt | 不支持媒体参考 | 自适应或指定比例 |
minimax-h3-image-to-video | prompt,并至少提供 image_start 或 image_end | 仅首帧/尾帧图片 | 由输入图片决定 |
minimax-h3-reference-to-video | prompt,并至少提供一张图片或一段视频 | image_urls、video_urls、audio_urls | 自适应 |
三种模式的共同规则:
duration接收 4–15 的整数,默认值为 5。quality必须是2k,不要提交768p。- 提示词支持中文和英文。
- 建议中文提示词不超过 500 个汉字,英文不超过 1,000 个单词。
- 码率、帧率和编码格式不能自定义。
- 视频生成采用异步任务。
4. 如何接入 MiniMax H3 API
接入前需要准备 EvoLink 账号、API Key,以及足够完成任务的余额。
- 注册或登录 EvoLink。
- 打开 API Keys 控制台并创建密钥。
- 将密钥保存到服务端环境变量。
- 根据现有输入选择 H3 生成模式。
- 向统一视频端点提交请求。
EVOLINK_API_KEY=your_api_key不要把 API Key 放进浏览器 JavaScript、公开代码仓库或移动应用安装包。应当从自己的服务器、Server Action、API Route、Worker 或其他可信运行环境调用 EvoLink API。
5. 选择正确的生成模式
构造请求前,可以先按下面的规则选择:
| 现有输入或目标 | 应使用的模式 |
|---|---|
| 只有场景描述 | 文生视频 |
| 需要让一张产品图或角色图动起来 | 图生视频 |
| 已经确定视频开始和结束画面 | 同时提供 image_start 和 image_end 的图生视频 |
| 需要多张图片指导输出 | 参考视频 |
| 需要参考某段视频的动作或运镜 | 参考视频 |
| 希望把音频作为额外参考 | 参考视频,同时至少提供图片或视频 |
| 只有一段音频 | 需要补充图片或视频;不支持仅音频请求 |

image_start,参考视频也不接收 image_start 或 image_end。6. 快速开始:60 秒提交第一个请求
第 1 步:提交文生视频请求
curl -X POST https://api.evolink.ai/v1/videos/generations \
-H "Authorization: Bearer $EVOLINK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-h3-text-to-video",
"prompt": "一辆紧凑型电动概念车驶过雨夜城市。镜头在车旁跟随,随后缓慢拉远,展示街道上的霓虹倒影。",
"quality": "2k",
"aspect_ratio": "16:9",
"duration": 5
}'API 会返回一个异步任务:
{
"id": "task-unified-example",
"status": "pending",
"created": 1785470400
}第 2 步:查询任务
curl https://api.evolink.ai/v1/tasks/task-unified-example \
-H "Authorization: Bearer $EVOLINK_API_KEY"status 变为 completed 后,从 results 中读取生成的视频 URL。{
"id": "task-unified-example",
"status": "completed",
"results": [
"https://example-cdn.com/generated-video.mp4"
]
}请在 24 小时内下载结果。如果应用需要长期使用该视频,应将它复制到自己的持久化存储中。
7. 理解异步任务流程
视频生成所需时间远长于普通 HTTP 请求,因此创建接口不会让连接一直等待视频完成,而是先返回任务。
提交请求
↓
取得任务 ID
↓
pending → processing
↓
completed 或 failed
↓
下载已完成的结果任务可能处于以下状态:
pending:请求正在队列中等待。processing:视频正在生成。completed:results数组中包含输出结果。failed:检查错误信息,判断应该修正请求还是重试。
轮询还是 Callback?
GET /v1/tasks/{task_id},但要限制轮询间隔和最长等待时间。callback_url。当任务变为 completed 或 failed 且计费确认完成后,EvoLink 会发送回调。Callback URL 必须:- 使用 HTTPS。
- 长度不超过 2,048 个字符。
- 指向公开地址,不能解析到内网 IP。
- 在 10 秒内响应。
- 接受事件后返回 2xx 状态码。
回调失败后最多重试 3 次,间隔约为 1 秒、2 秒和 4 秒。由于同一事件可能被多次送达,处理程序必须具备幂等性。
8. 文生视频示例
文生视频只接收提示词,不需要媒体输入。
{
"model": "minimax-h3-text-to-video",
"prompt": "一个陶瓷咖啡杯放在窗边的木桌上。晨光中蒸汽缓慢上升,镜头围绕杯子顺时针移动。自然光、真实材质、安静的编辑风格。",
"quality": "2k",
"aspect_ratio": "4:3",
"duration": 8,
"callback_url": "https://api.example.com/webhooks/evolink"
}支持的画面比例包括:
21:916:94:31:13:49:16- 自适应
image_start、image_end、image_urls、video_urls 或 audio_urls。如果画面必须围绕特定主体生成,应改用图生视频或参考视频。9. 图生视频示例
prompt,并且至少提供 image_start 或 image_end 之一。让首帧图片动起来
{
"model": "minimax-h3-image-to-video",
"prompt": "镜头缓慢靠近,布料在微风中自然摆动。保持产品形状、标签和光线不变。",
"image_start": "https://assets.example.com/product-start.webp",
"quality": "2k",
"duration": 6
}生成到指定尾帧
{
"model": "minimax-h3-image-to-video",
"prompt": "从远景开始,镜头持续向前移动,画面逐渐过渡到提供的最终帧,并保持自然光线稳定。",
"image_end": "https://assets.example.com/landscape-end.jpg",
"quality": "2k",
"duration": 10
}同时控制首帧和尾帧
{
"model": "minimax-h3-image-to-video",
"prompt": "密封包装平稳打开,产品升起到最终展示位置。保持 Logo 清晰,避免突然切换镜头。",
"image_start": "https://assets.example.com/package-closed.png",
"image_end": "https://assets.example.com/package-open.png",
"quality": "2k",
"duration": 8
}输入图片必须满足以下条件:
- 使用 JPG、JPEG、PNG、WEBP、HEIC 或 HEIF 格式。
- 单张不超过 30 MB。
- 宽度和高度均在 256–5,760 像素之间。
- 宽高比在 0.4–2.5 之间。
- 能通过公开 HTTP(S) URL 访问。
mm_file:// 引用。输出比例由输入图片决定。该路由根本不接受 aspect_ratio 字段,传入就会返回参数错误。10. 参考视频示例
参考视频接收有顺序的图片、视频和可选音频数组。当提示词无法准确描述主体、动作或节奏时,可以用参考素材提供更明确的约束。
{
"model": "minimax-h3-reference-to-video",
"prompt": "使用 Image 1 作为主角,使用 Image 2 作为服装参考。沿用 Video 1 的运镜和行走节奏,Audio 1 仅作为节奏参考。角色走过现代美术馆,停在一扇落地窗旁。",
"image_urls": [
"https://assets.example.com/character.jpg",
"https://assets.example.com/wardrobe.jpg"
],
"video_urls": [
"https://assets.example.com/camera-reference.mp4"
],
"audio_urls": [
"https://assets.example.com/pacing-reference.mp3"
],
"quality": "2k",
"duration": 10
}参考素材限制
image_urls最多 9 项。video_urls最多 3 项。audio_urls最多 3 项。- 参考文件总数不超过 12 个,因此 9 + 3 + 3 的满配会被拒绝。
- 至少需要一张图片或一段视频。
- 音频不能作为唯一的参考类型。
- 每段参考视频或音频必须为 2–15 秒。
- 参考视频总时长不能超过 15 秒。
- 参考音频总时长不能超过 15 秒。
- 参考视频必须使用 MP4 或 MOV,视频编码为 H.264 或 H.265,可包含 AAC 或 MP3 音频。
- 每段参考视频不超过 50 MB。
- 参考视频的宽和高均为 256–5,760 像素,宽高比为 0.4–2.5,帧率为 23.976–60 FPS。
- 参考音频必须使用 WAV 或 MP3,单段不超过 15 MB。
- 完整 JSON 请求体不能超过 64 MB。
参考图片遵循图生视频中相同的格式、大小、尺寸和 URL 规则。
按数组顺序引用素材
Image 1、Image 2、Video 1 和 Audio 1。数字对应素材在各自数组中的位置。不要使用 @image1,这不是该 API 合同支持的语法。参考视频的输入时长也会计费,因此不要上传超出任务实际需要的长素材。
11. 上传本地素材
生成路由要求媒体文件具有公开 HTTP(S) URL。如果素材位于本地磁盘或应用的私有存储中,应先上传到 EvoLink 文件服务。
curl -X POST https://files-api.evolink.ai/api/v1/files/upload/stream \
-H "Authorization: Bearer $EVOLINK_API_KEY" \
-F "file=@./product-start.png"file_url,然后将它作为 image_start、image_end 或参考数组中的一项传给生成接口。12. 完整 TypeScript 实现
以下示例应运行在 Node.js 18 或更高版本的可信服务端环境中。
const API_BASE = "https://api.evolink.ai";
type TaskStatus = "pending" | "processing" | "completed" | "failed";
interface VideoTask {
id: string;
status: TaskStatus;
results?: string[];
error?: {
code?: string;
message?: string;
};
}
interface BaseRequest {
prompt: string;
quality?: "2k";
duration?: number;
callback_url?: string;
}
type AspectRatio =
| "adaptive"
| "21:9"
| "16:9"
| "4:3"
| "1:1"
| "3:4"
| "9:16";
// 每个路由对应一个类型,非法的字段组合无法通过编译。
interface TextToVideoRequest extends BaseRequest {
model: "minimax-h3-text-to-video";
aspect_ratio?: AspectRatio;
}
interface ImageToVideoRequest extends BaseRequest {
model: "minimax-h3-image-to-video";
image_start?: string;
image_end?: string;
// 没有 aspect_ratio:该路由会拒绝此字段,并根据输入图片
// 推导画面比例。
}
interface ReferenceToVideoRequest extends BaseRequest {
model: "minimax-h3-reference-to-video";
aspect_ratio?: AspectRatio;
image_urls?: string[];
video_urls?: string[];
audio_urls?: string[];
}
type VideoRequest =
| TextToVideoRequest
| ImageToVideoRequest
| ReferenceToVideoRequest;
function getApiKey(): string {
const apiKey = process.env.EVOLINK_API_KEY;
if (!apiKey) {
throw new Error("EVOLINK_API_KEY is not configured");
}
return apiKey;
}
async function requestJson<T>(
path: string,
init?: RequestInit,
): Promise<T> {
const response = await fetch(`${API_BASE}${path}`, {
...init,
headers: {
Authorization: `Bearer ${getApiKey()}`,
"Content-Type": "application/json",
...init?.headers,
},
});
if (!response.ok) {
const body = await response.text();
throw new Error(`EvoLink request failed (${response.status}): ${body}`);
}
return response.json() as Promise<T>;
}
async function submitVideo(payload: VideoRequest): Promise<VideoTask> {
return requestJson<VideoTask>("/v1/videos/generations", {
method: "POST",
body: JSON.stringify(payload),
});
}
async function getTask(taskId: string): Promise<VideoTask> {
return requestJson<VideoTask>(
`/v1/tasks/${encodeURIComponent(taskId)}`,
);
}
function wait(milliseconds: number): Promise<void> {
return new Promise((resolve) => setTimeout(resolve, milliseconds));
}
async function waitForVideo(
taskId: string,
timeoutMs = 10 * 60 * 1000,
pollIntervalMs = 5_000,
): Promise<string> {
const deadline = Date.now() + timeoutMs;
while (Date.now() < deadline) {
const task = await getTask(taskId);
if (task.status === "completed") {
const resultUrl = task.results?.[0];
if (!resultUrl) {
throw new Error("Task completed without a result URL");
}
return resultUrl;
}
if (task.status === "failed") {
throw new Error(task.error?.message ?? "Video generation failed");
}
await wait(pollIntervalMs);
}
throw new Error(`Timed out while waiting for task ${taskId}`);
}
async function main(): Promise<void> {
const task = await submitVideo({
model: "minimax-h3-text-to-video",
prompt:
"A slow aerial approach toward a coastal observatory at sunrise, " +
"natural cloud movement, cinematic wide shot",
quality: "2k",
aspect_ratio: "16:9",
duration: 6,
});
const videoUrl = await waitForVideo(task.id);
console.log(videoUrl);
}
void main();高请求量系统应当用 Callback 和持久化任务记录替代应用侧轮询。任务 ID 应作为请求、账单记录、日志和最终结果之间的主要关联字段。
13. 完整 Python 实现
import os
import time
from typing import NotRequired, TypedDict, cast
import requests
API_BASE = "https://api.evolink.ai"
API_KEY = os.environ["EVOLINK_API_KEY"]
HEADERS = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
class VideoError(TypedDict):
code: NotRequired[str]
message: NotRequired[str]
class VideoTask(TypedDict):
id: str
status: str
results: NotRequired[list[str]]
error: NotRequired[VideoError]
class VideoPayload(TypedDict):
model: str
prompt: str
image_start: NotRequired[str]
quality: NotRequired[str]
duration: NotRequired[int]
def submit_video(payload: VideoPayload) -> VideoTask:
response = requests.post(
f"{API_BASE}/v1/videos/generations",
headers=HEADERS,
json=payload,
timeout=30,
)
response.raise_for_status()
return cast(VideoTask, response.json())
def get_task(task_id: str) -> VideoTask:
response = requests.get(
f"{API_BASE}/v1/tasks/{task_id}",
headers=HEADERS,
timeout=30,
)
response.raise_for_status()
return cast(VideoTask, response.json())
def wait_for_video(
task_id: str,
timeout_seconds: int = 600,
poll_interval_seconds: int = 5,
) -> str:
deadline = time.monotonic() + timeout_seconds
while time.monotonic() < deadline:
task = get_task(task_id)
status = task["status"]
if status == "completed":
results = task.get("results", [])
if not results:
raise RuntimeError("Task completed without a result URL")
return str(results[0])
if status == "failed":
error = task.get("error", {})
message = error.get("message", "Video generation failed")
raise RuntimeError(message)
time.sleep(poll_interval_seconds)
raise TimeoutError(f"Timed out while waiting for task {task_id}")
task = submit_video(
{
"model": "minimax-h3-image-to-video",
"prompt": (
"The camera slowly orbits the product while the background "
"light shifts from warm to cool. Preserve the product design."
),
"image_start": "https://assets.example.com/product.webp",
"quality": "2k",
"duration": 8,
}
)
print(wait_for_video(task["id"]))这份示例在尽量减少依赖的同时,声明了代码会读取的字段。更大的 Python 服务可以使用 Pydantic 校验完整响应,再写入存储。
14. 参数与提示词速查
参数支持情况
| 参数 | 文生视频 | 图生视频 | 参考视频 | 说明 |
|---|---|---|---|---|
model | 是 | 是 | 是 | 使用对应模式的模型 ID |
prompt | 必填 | 必填 | 必填 | 支持中文和英文 |
quality | 是 | 是 | 是 | 仅支持 2k |
duration | 是 | 是 | 是 | 4–15 的整数 |
aspect_ratio | 是 | 否 | 是 | 文生视频和参考生视频支持 adaptive 或固定比例;图生视频不接受该字段,比例由输入图片决定 |
image_start | 否 | 是 | 否 | 首帧 |
image_end | 否 | 是 | 否 | 尾帧 |
image_urls | 否 | 否 | 是 | 最多 9 项 |
video_urls | 否 | 否 | 是 | 最多 3 项 |
audio_urls | 否 | 否 | 是 | 最多 3 项,不能单独使用 |
callback_url | 是 | 是 | 是 | 公开 HTTPS URL |
文生视频提示词结构
[主体] + [动作] + [环境] + [镜头运动] + [光线] + [视觉氛围]示例:
一名骑行者在黎明时穿过雾林上方的悬索桥。镜头从后方跟随,随后上升到航拍全景。柔和自然光,动作真实。
图生视频提示词结构
[需要增加的运动] + [镜头运动] + [必须保留的元素] + [转场或结束状态]示例:
镜头围绕椅子缓慢移动半圈,阳光逐渐掠过地面。保持椅子的形状、材质和颜色完全不变。
参考视频提示词结构
使用 [Image/Video/Audio 编号] 作为 [具体用途]。
[描述新场景、动作、镜头和最终构图。]示例:
使用 Image 1 作为角色,Image 2 作为车辆,Video 1 作为运镜参考。角色在日落时分的安静沙漠中走下车辆,镜头沿用 Video 1 的向前弧形运动。
15. 常见错误与解决方法
| 错误或现象 | 常见原因 | 解决方法 |
|---|---|---|
401 unauthorized | API Key 缺失、格式错误或已经失效 | 检查 Bearer Header 和服务端环境变量 |
402 insufficient quota | 账户余额不足 | 充值或缩小计划任务量 |
403 permission denied | Key 或账户没有路由访问权限 | 检查密钥权限和模型可用状态 |
404 task_not_found | 任务 ID 错误或已不可用 | 原样保存创建接口返回的任务 ID |
429 rate_limit_exceeded | 请求过多 | 使用指数退避并限制并发 |
请求拒绝 768p | H3 只接受 2k | 设置 "quality": "2k" |
| 服务无法读取图片 | URL 私有、过期或禁止外部访问 | 通过 EvoLink 文件服务上传 |
| Base64 图片被拒绝 | 路由要求公开 URL | 上传文件并使用返回的 file_url |
| 参考请求无效 | 只提供了音频 | 至少添加一张图片或一段视频 |
| 参考素材被拒绝 | 数量、大小、格式或总时长超过限制 | 提交前校验素材 |
| 任务完成但结果无法访问 | 结果 URL 已超过 24 小时有效期 | 将视频复制到持久化存储 |
| Callback 被重复处理 | 回调重试或事件被处理两次 | 在数据库中实现幂等处理 |
只有在不修改请求也可能成功时才应重试,例如临时网络故障或限流。参数错误和不受支持的素材需要先修正,再重新提交。
16. 定价与成本规划
规划成本时需要考虑:
- 输出时长越长,请求的生成工作量越大。
- 参考视频模式还可能计算输入参考视频的时长。
- 验证提示词或工作流时,先使用满足需求的最短时长。
- 开始大批量任务前,先进行少量测试生成并检查结果。
- 每个任务都记录模式、输出时长、参考视频时长、状态和成本。
- 评估每条可用视频的成本时,要区分失败生成和可用结果。
EvoLink 的统一 API 也便于生产团队比较 H3 与其他视频模型,而不必替换鉴权、任务跟踪和账单集成。
17. 生产环境检查清单
上线前确认:
- API Key 只保存在服务端。
- 提交前校验各模式的专属参数。
- 媒体 URL 可以公开访问,并在生成期间持续有效。
- 为请求设置超时。
- 限制轮询频率和最长等待时间。
- 遇到
429和临时服务错误时进行退避。 - 开始轮询前先保存任务 ID。
- 不要假设 H3 任务可以取消;当前合同返回
can_cancel: false。 - 将 Callback 视为可能重复送达的事件。
- 只有成功接收事件后才返回 2xx。
- 临时 URL 过期前保存已完成的视频。
- 记录模型 ID、时长、参考输入、状态和结果。
- 设置账户级并发和预算控制。
- 不依赖未写入文档的 Header 或输出设置。
18. 实际使用场景
| 使用场景 | 推荐模式 | 原因 |
|---|---|---|
| 快速验证广告创意 | 文生视频 | 从文案得到视觉测试的路径最短 |
| 让产品图动起来 | 图生视频 | 保持提供的产品构图 |
| 制作前后状态转场 | 图生视频 | 首尾帧可以定义两个状态 |
| 角色主导的短视频 | 参考视频 | 多份视觉参考可以约束主体 |
| 匹配某种运镜 | 参考视频 | 短视频素材可以提供运动参考 |
| 探索分镜 | 文生视频或图生视频 | 根据是否已经有确认过的画面选择 |
| 在 App 中加入视频生成 | 任意模式 | 统一端点和任务流程简化集成 |
| 多模型生产路由 | 任意模式 | 同一 EvoLink Key 和任务系统可调用其他模型 |
19. 常见问题
怎么接入 MiniMax H3 API?
POST https://api.evolink.ai/v1/videos/generations 发送请求。应该使用哪个 MiniMax H3 模型 ID?
minimax-h3-text-to-video;需要首尾帧控制时使用 minimax-h3-image-to-video;需要有顺序的图片、视频和音频参考时使用 minimax-h3-reference-to-video。MiniMax H3 支持 2K 视频吗?
2k 作为画质值。API 支持 4K 或 60 FPS 输出吗?
当前 H3 API 合同没有提供这些输出控制。不要提交文档中没有的画质、帧率、码率或编码格式。
最长可以生成多少秒?
当前支持 4–15 秒的整数时长。
可以上传本地图片吗?
file_url 传给生成接口。生成接口接受 Base64 图片吗?
不接受,需要使用公开 HTTP(S) URL。
最多可以使用多少份参考素材?
参考视频最多接收 9 张图片、3 段视频和 3 段音频,同时还要满足单文件和总时长限制。
可以只用音频参考生成视频吗?
不可以。参考请求必须至少包含一张图片或一段视频,音频只能作为额外参考。
怎么查询生成状态?
GET /v1/tasks/{task_id},或者在原始请求中提供公开 HTTPS Callback URL。生成结果 URL 可以保存多久?
结果 URL 有效期为 24 小时,需要在过期前下载视频或转存到自己的存储。
JavaScript 和 Python 都能调用 MiniMax H3 吗?
可以。该 API 使用标准 HTTPS,任何支持 JSON 请求和 Bearer 鉴权的服务端环境都可以调用。
应该轮询任务还是使用 Callback?
测试和低请求量脚本使用轮询更方便;生产队列和较大请求量通常更适合使用 Callback。


