MiniMax-H3 video api
base · https://h3.yiling.ink
内部部署 · 视频+音频生成

MiniMax-H3 视频生成 API

一套 OpenAI 风格的异步接口:提交文本/图像/参考素材,生成带原生立体声的视频。部署在自有双 A800 服务器,Bearer Token 鉴权,私有可控。

在线 可用 最高 1344×768 · 24fps 4–15 秒 · 32kHz 立体声 最快 2.3 分钟/条 t2va · fl2va · ref2va

01 概览

H3 是一个全模态视频生成模型,在一次前向里联合生成画面与同步立体声(人声、音效、音乐)。接口为异步:提交任务立即拿到 id,再轮询状态、完成后取件。

Base URL
h3.yiling.ink
协议
HTTPS · REST
请求体
multipart/form-data
鉴权
Bearer Token
并发
串行 1 路 · 异步排队
输出
MP4(H.264 + AAC)
兼容性接口按 OpenAI Sora-2/v1/videos 规范设计(响应里 model 字段显示 sora-2),但由本地 H3 引擎生成。已有 Sora 客户端稍改即可接入。

02 鉴权

每个请求(提交/查询/下载)都需在请求头带上 Bearer Token,否则返回 401。Token 校验在 nginx 网关层完成,后端服务只监听内网,外部扫描无法直连。

Authorization header
Authorization: Bearer h3-c7203631286407cd4e86136b11b4ab2e8cc601f5879902ce
私钥,请妥善保管以上是你的专属 Token。泄露即可被他人调用消耗 GPU;需要轮换时改一处 nginx 配置即可失效旧 Token。

03 快速开始

文生视频(t2va),8 步快档,约 2–3 分钟出片。三个必填字段:tasktargetprompt

curl · 提交
curl https://h3.yiling.ink/v1/videos \
  -H "Authorization: Bearer h3-c72036…901f5879902ce" \
  -F task=t2va \
  -F 'target={"short_edge":768,"aspect_ratio":"16:9","duration_seconds":5}' \
  -F prompt=一只橘猫在钢琴键上散步,阳光洒进房间,轻柔的钢琴声 \
  -F num_inference_steps=8 \
  -F seed=42

# → {"id":"7932b6bd-…","status":"queued","progress":0, …}
Python · 提交 + 轮询 + 下载
import requests, time

BASE  = "https://h3.yiling.ink"
TOKEN = "h3-c7203631286407cd4e86136b11b4ab2e8cc601f5879902ce"
H     = {"Authorization": f"Bearer {TOKEN}"}

# 1) 提交任务(multipart 表单)
r = requests.post(f"{BASE}/v1/videos", headers=H, data={
    "task": "t2va",
    "target": '{"short_edge":768,"aspect_ratio":"16:9","duration_seconds":5}',
    "prompt": "一只橘猫在钢琴键上散步,阳光洒进房间",
    "num_inference_steps": 8,
    "seed": 42,
})
vid = r.json()["id"]

# 2) 轮询直到完成
while True:
    s = requests.get(f"{BASE}/v1/videos/{vid}", headers=H).json()
    if s["status"] in ("completed", "failed"): break
    time.sleep(5)

# 3) 取件:s["inference_time_s"], s["file_paths"], 或 /content 下载
print(s["status"], s["inference_time_s"])

04 端点

POST/v1/videos提交生成任务,返回 job id(立即返回,不阻塞)
GET/v1/videos/{id}查询任务状态与结果(轮询用)
GET/v1/videos/{id}/content下载生成的 MP4 文件
GET/v1/videos列出历史任务

辅助端点:GET /health 健康检查 · GET /model_info 模型信息 · GET /openapi.json 完整 schema。


05 请求参数

POST /v1/videos 使用 multipart/form-data。下表为常用字段;标红的三项必填。

核心字段

字段类型说明 / 取值
task必填string任务模式:t2va(文生视频)· fl2va(首/尾帧)· ref2va(参考素材)
target必填json string输出规格对象,如 {"short_edge":768,"aspect_ratio":"16:9","duration_seconds":5}
prompt必填string文本描述。支持中英等 11 种语言;含台词时会生成对应人声
num_inference_stepsint去噪步数。质量档 50,均衡 20,快档 8(配合 Turbo)。见 预设
seedint随机种子,固定后可复现同一结果
negative_promptstring负向提示,描述不希望出现的内容
guidance_scalefloatCFG 引导强度。蒸馏/Turbo 权重下用 1.0(过高会中止)
flow_shiftfloat流匹配偏移。官方 benchmark 视频 12 / 音频 3
num_outputs_per_promptint同一 prompt 生成多少条(默认 1)

target 输出规格对象

子字段类型取值
short_edgeint短边像素,默认 768。长边按比例算(宽高需为 32 倍数)。降到 960×544 每步约快 2.3×
aspect_ratiostring21:9 · 16:9 · 4:3 · 1:1 · 3:4 · 9:16
duration_secondsnumber时长,415

条件输入(fl2va / ref2va 用)

字段类型说明
input_referencefile上传参考/首帧图片(二进制)
reference_urlstring参考/首帧图片的 URL
video_referencefile上传参考视频片段(ref2va)
video_url / video_pathstring参考视频的 URL 或服务器路径

增强与输出(可选)

字段类型说明
enable_teacachebool开启时间步缓存加速(近无损,约 1.4×)
enable_frame_interpolationbool补帧,配 frame_interpolation_exp / _scale
enable_upscalingbool超分,配 upscaling_scale
output_qualitystring输出画质档位
generator_devicestring默认 cuda

完整字段(含 fpsnum_framessizetrue_cfg_scalemax_sequence_lengthextra_body 等)以 GET /openapi.json 为准。


06 三种任务模式

task 字段选择。当前服务加载的是 FL2VA 检查点,支持 t2vafl2va;ref2va 为独立检查点能力。

task含义输入典型用途
t2va文本 → 音视频仅 prompt纯创意生成、有声短片
fl2va首/尾帧 → 音视频prompt + 1~2 张图
首帧 / 尾帧 / 首尾帧
图片动起来、指定开场结尾
ref2va参考素材 → 音视频prompt + ≤9 图 / ≤3 视频 / ≤3 音频角色一致性、风格/音色参考
fl2va · 首帧图生视频
curl https://h3.yiling.ink/v1/videos \
  -H "Authorization: Bearer $TOKEN" \
  -F task=fl2va \
  -F 'target={"short_edge":768,"aspect_ratio":"16:9","duration_seconds":5}' \
  -F prompt=镜头缓缓推近,人物微笑转头 \
  -F input_reference=@first_frame.png \
  -F num_inference_steps=8

07 响应结构

提交与查询都返回同一个 VideoResponse 对象。关键字段:

字段类型说明
idstring任务唯一 id,轮询/下载都用它
statusstringqueued in progress completed failed
progressint进度百分比 0–100
file_pathsarray生成的 MP4 服务器路径(可多条)
urlstring下载 URL(如提供)
inference_time_sfloat实际生成耗时(秒)
peak_memory_mbfloat显存峰值(MB)
size / secondsstring实际分辨率与时长
errorobject失败时的错误详情
completed 示例
{
  "id": "7932b6bd-c572-4b0a-b04b-429578587f94",
  "status": "completed",   "progress": 100,
  "size": "1344x768",      "seconds": "5.166667",
  "inference_time_s": 139.58,
  "peak_memory_mb": 36506.0,
  "file_paths": ["outputs/7932b6bd-….mp4"]
}

08 异步流程

视频生成耗时以分钟计,接口设计为异步三段式。提交后客户端无需保持长连接,拿 id 走人,之后轮询即可。

步骤调用结果
1 · 提交POST /v1/videos立即返回 id + queued
2 · 轮询GET /v1/videos/{id}每 5 秒查一次 status / progress
3 · 取件GET /v1/videos/{id}/content完成后下载 MP4
排队行为可以一次性提交多条,它们进入服务内部队列逐条串行执行(当前同时只跑 1 路)。超出处理能力不会报错,而是排队。服务重启会清空未完成队列——需要生产级持久化时,建议在前面加一层任务网关(可另行部署)。

09 预设与样片

同一 prompt、同一 1344×768 / 5 秒规格,在双 A800 上的实测三档。步数越少越快,画质略降。点卡片播放样片

质量档

质量档 · 50 步

num_inference_steps50
耗时958 s · 16 min
显存峰值73 GB
相对
均衡档

均衡档 · 20 步

num_inference_steps20
耗时286 s · 4.8 min
显存峰值35 GB
相对3.3×
Turbo推荐

快档 · 8 步 Turbo

num_inference_steps8
耗时139.6 s · 2.3 min
显存峰值36 GB
相对6.9×
选型建议日常默认走快档(8 步 Turbo)——CFG 蒸馏权重下 6–8 步已是清晰度舒适区,质量几乎无损而快近 7 倍。需要极致画质时再传 num_inference_steps=50。样片链接:h3.yiling.ink/samples/

10 能力与限制

项目规格
输出时长4–15 秒
宽高比21:9 / 16:9 / 4:3 / 1:1 / 3:4 / 9:16 等(宽高为 32 倍数)
分辨率短边默认 768(当前 1344×768);2K 需 H3-Regenerate-2K
帧率24 FPS
音频32 kHz 立体声,与画面联合生成
台词语言稳定支持 11 种:中/英/日/韩/法/德/意/西/葡/俄/阿
并发同时 1 路(串行),异步队列;吞吐 ≈ 20 条/小时(快档)
硬件2× NVIDIA A800 80GB,denoiser 张量并行,驱动 580 / CUDA 13
关于并发当前一个实例占用两张卡(张量并行)。若需要多路并发,方向是让模型单卡常驻后双卡各起一个独立实例 + 网关分发——可另行规划。