我想在本地生成视频。理由很朴素:素材不想往别人的服务器上传,模型也不要按次付费。
折腾了几天,把 MiniMax H3 在本机跑通了 —— 文生视频、图生视频,到后来的”视频锁动作 + 图片锁人物”换人,都跑起来了。过程中翻了不少社区教程和官方模板,也踩了足够多的坑。这里把整条流程记下来,省得以后重来一遍。
一、先看硬件能跑哪一档
我的显卡是 RTX 5060 Ti 16GB。这个显存跑视频模型不算宽裕,所以档位选择是第一步。
最后跑的是官方的 int8 档(在这个卡上属于最高可跑画质),要凑齐四个文件:
| 用途 | 文件 | 体积 |
|---|---|---|
| 主模型 | minimax_h3_fl2va_pruned_int8_convrot | 21 GB |
| 文本编码器 | qwen3vl_32b_minimax_h3_nvfp4_awq | 15.7 GB |
| 视频 VAE | fp16 | 5.2 GB |
| 音频 VAE | fp32 | 0.6 GB |
最后一个要单独说:音频 VAE 必须是 fp32。用 fp16 的话视频能出,但是没有声音 —— 这个坑不踩一次是想不到的。
H3 是音画同时生成的,所以除了视频 VAE,还带一个音频 VAE。两者精度要求不一样。
二、装完怎么启动
环境是独立的一套,不跟系统 Python 混:
- 目录:
D:\ai\ComfyUI - 独立 venv,Python 3.12,torch 2.14.0 + cu130
- 启动:双击
启动H3.bat,然后浏览器开http://127.0.0.1:8188
ComfyUI 用的是 0.37,内置了 H3 的节点和官方模板 —— 在 Workflow → Browse Templates 里选 video_minimax_h3_t2v 之类(注意不是 api_ 前缀的那些,那是给云端 API 用的)。
三、加速:官方 Turbo LoRA
默认是 20 步采样,出一支 5 秒视频要等到天荒地老。官方给了三个 Turbo LoRA:
| 文件 | 用途 |
|---|---|
minimax_h3_fl2v_turbo_4step | 文生 4 步 |
minimax_h3_fl2v_turbo_8step | 文生 8 步(官方模板默认引用) |
minimax_h3_ref2v_turbo_4step | 图生 / 参考 4 步 |
各约 2 GB,放在 D:\ai\ComfyUI\models\loras\。
关键在于:官方模板本身就内置了 Turbo 机制,一个布尔开关控制 ——
False:20 步,不用 LoRATrue:6 步 + Turbo LoRA
我把 user/default/workflows/ 下三个工作流的这个开关默认改成了 True。省得每次手动点。
模型在官方仓库
Comfy-Org/MiniMax-H3里,LoRA 在loras/子目录下。
四、第一次跑通
用官方 t2v 工作流 + 8step Turbo LoRA,出了一支:
- 5 秒,768p,24fps(1344×768)
- H.264 编码 + AAC 32kHz 立体声
- 音画同步
当时挺意外的是声音部分 —— 没额外配音,模型自己把音轨也生成了。
五、走 API 的两个坑
我不喜欢手动拖节点,想用脚本调 /prompt 接口批量生成。于是撞上两个坑:
坑一:官方模板是 subgraph 格式。
节点藏在 definitions.subgraphs[0].nodes 里,顶层只有一个 UUID 类型的实例节点。要发 /prompt,得手动展开成扁平图。
展开的时候还得知道哪些值藏在实例节点的 widgets_values 里 —— 比如第 9 个是 turbo_mode 布尔、第 12 个是 turbo_steps。
坑二:SaveVideo 节点要显式传参。
format='auto' 和 codec='auto' 两个都得给,不然保存会出问题。
六、进阶:视频锁动作 + 图片锁人物
这是我最想要的功能。
光靠一句提示词,人物的长相、动作都是随机的,同一支片子里前后能换好几张脸。要做到”动作照抄某个视频、人物按某张图”,得用 ref2va(reference-to-video,带参考)。
先补一个模型:minimax_h3_ref2va_pruned_int8_convrot.safetensors(21 GB),跟原来的 fl2va 并存,模板是 video_minimax_h3_r2v.json(这个模板的节点在顶层,不像 t2v 那样藏在 subgraph 里,好办得多)。
参考图怎么给
核心节点是 MiniMaxH3ReferenceToVideo,参考图的输入键名有点讲究:
- 键是
ref_images.ref_image_0—— 0 开始、且带前缀 - 但提示词里引用它要写
<Picture 1>—— 1 开始
这个 0/1 之差不注意就会对着空气调半天。
单图 + 闪身步的提示词 + 4step Turbo,出来是 5 秒竖屏 768×1344,约 6 分钟。比纯文生慢,因为参考图每一步采样都参与计算。
换上自己的素材
后来我改成”视频锁动作 + 图片锁人物”,链路是这样的:
LoadVideo (读入原视频,输出 VIDEO)
↓
GetVideoComponents (把 VIDEO 拆成 IMAGE 帧序列,images 在 output slot 0)
↓
MiniMaxH3ReferenceToVideo
├─ ref_videos.ref_video_0 ← 视频(锁动作)
└─ ref_images.ref_image_0 ← 图片(锁人物)
好消息:LoadVideo 和 GetVideoComponents 是 ComfyUI 内置节点(在 comfy_extras/nodes_video.py),不用装 VHS。
原视频是 B 站上下的一段民间舞教学(BV1KrhD6KEwj,86 秒 720p),截了其中 8~13 秒转成 24fps,存进 input/ 当动作参考。
出来的效果对得上:动作跟着原片走,脸是自己的。
代价是时间 —— 双参考 5 秒横屏 1344×768,约 16 分钟。视频参考同样是逐帧参与计算,比单图慢了一倍多。
七、网络与环境:这几关最耗人
模型本身不难,难的是把文件搬下来。
GitHub / HuggingFace 直连不通。 可用的通道是:
| 要拿的东西 | 走哪 |
|---|---|
| GitHub 仓库 | git clone https://ghfast.top/https://github.com/xxx |
| HuggingFace 模型 | 换 ModelScope 镜像:git clone https://www.modelscope.cn/Comfy-Org/MiniMax-H3.git + git lfs fetch --include |
| pip 包 | 用 pypi.org 源,并加 NO_PROXY="*" |
那个 NO_PROXY 不是多此一举:系统里残留着一个死掉的代理端口,不加它 pip 会被自己的代理拦住。
git lfs fetch 报 “Could not scan for Git LFS files”。 解法是改用 git clone --no-checkout(不要带 --filter=blob:none),之后 lfs fetch 就正常了。
ModelScope 的 Python API 不认 Git Bash 路径。 model_file_download 的 local_dir 给它 /d/... 这种写法,它会傻乎乎地建出一个 D:\d\ 目录。老老实实写 Windows 路径 D:\xxx。
npm 也有一关。 全局配置里 proxy / https-proxy 都指向 http://127.0.0.1:7897(Clash 留下的),代理没开的时候 npm install 直接 ECONNREFUSED。装东西之前得先:
npm config delete proxy
npm config delete https-proxy
# 装完再恢复(两条都要恢复)
npm config set proxy http://127.0.0.1:7897
npm config set https-proxy http://127.0.0.1:7897
顺带一提:空字符串绕不过去,npm 会拒绝,必须给一个合法的 http URL。
八、值不值
说实话,本地跑视频模型,快不是它的优点。
一次 5 秒的视频,几分钟到十几分钟 —— 云端服务大概几十秒就好了。它值得的地方在于:
- 素材不出本机。要换人、要试各种姿势,拿自己或家人的脸去调,本地跑心里踏实。
- 不按次计费。跑废一百次和跑对一次,成本一样(都是电费)。
- 可以随便改。节点、LoRA、步数、参考图,全在手里。
不划算的地方也很清楚:16G 显存就是这个量级的天花板。再往上就得换卡了,那是另一个话题。
小结
整条链路是:
部署(int8 四件套 + 音频 VAE 用 fp32)
→ 官方 Turbo LoRA 提速(开关改 True:20 步 → 6 步)
→ 内置模板跑通文生视频(带音轨)
→ 走 API 要展平 subgraph、SaveVideo 补参数
→ ref2va 补上参考能力(图 / 视频都能当参考)
→ 换人:LoadVideo → GetVideoComponents → ReferenceToVideo
最花时间的其实不是模型,是下载和网络。模型本身装完就能跑,官方模板和质量都在那儿摆着。
真要说经验,只有两条:
- 音频 VAE 必须 fp32,这个错不看日志看不出来。
- 参考图的键名 0 开始、提示词里 1 开始,别跟自己较劲。
剩下的,交给显存和时间。