MiniMax H3 Lands on a 5060 Ti: Native Audio-Video Generation Squeezed into 12.5 GB
Column Purpose: Use my RTX 5060 Ti 16G + 64GB RAM "budget battle wagon" to do something novel that justifies the electricity bill.
In the last chapter, we tackled "who is speaking" (Whisper + pyannote). This chapter, we play with something more intense — an AI video model, and one that comes with its own sound.
What is MiniMax H3
On August 3, 2026, MiniMax open-sourced H3 — a full-modality video generation model.
In plain English: previous AI video models were silent film actors — the visuals finished, dubbing was outsourced, lip-syncing required another model, and sound effects were left to chance. You'd have Model A generate the video, Model B dub it, Model C handle lip-sync, and Model D add sound effects, then stitch it all together like Frankenstein's monster. Each part looked fine individually, but together it wasn't human.
H3 is the entire film crew packed into one package: text, image, video, and audio are jointly understood within the same context, and the generated video comes with native stereo sound — dialogue, sound effects, and music "grow" together with the video in a single diffusion process, not pasted on afterward.
Hard specs: up to 2K resolution, 24fps, max ~15 seconds, 33B parameters. What does 33B mean? Running it on a 16G graphics card is like using a compact car to haul a shipping container. But don't panic, someone has already solved this problem for us.
It has two functionally distinct weight variants. Downloading the wrong one won't cause an explosion, just an existential crisis:
| Variant | Use Case |
|---|---|
| fl2va (first/last-frame) | Text-to-video, image-to-video, first/last frame interpolation; can also use the last frame of one segment to continue the next, enabling infinite sequels — a blessing for serial content |
| ref2va (reference) | Reference-to-video: up to 9 reference images + 3 reference videos + 3 reference audio clips, locking character, style, camera movement, and voice |
Those working on character consistency should look directly at ref2va — what previously required begging and pleading with LoRA training to solve "every image is a different person" is now an official feature, ready to use out of the box. No more collapsing in frustration at generated images thinking: "Is this even the same character?"
Where to Get the Model: NVFP4 Community Quantized Version
The official weights (MiniMaxAI/MiniMax-H3) require 120G+ VRAM at full precision, an instant farewell for the average household — it's like trying to charge a Tesla from a standard home outlet; the plug won't even fit.
The ComfyUI official curated version (Comfy-Org/MiniMax-H3) applied int8 quantization, lowering the barrier to 20G. What we're using this time is a community expert's NVFP4 version, further slimmed down to 12.5G:
This repository deserves some discussion. It's not mindless compression — Comfy-Org's pruned version itself performed a clever surgical operation: it discovered that the 13B parameters responsible for AdaLN modulation (39.4% of the total model) are actually only related to the timestep, so they were sliced into an 8-dimensional lookup table. 130 billion parameters collapsed into 40 million, a compression of roughly 326 times.
Why is this important? Because AdaLN is precisely the part least suitable for quantization — it issues scaling coefficients to every residual stream, and errors there multiply and accumulate across all 50 layers. It's like reducing the precision of a pacemaker from 99.9% to 90%; the extra 9.9% error propagates through the bloodstream to the entire body. After the surgery, AdaLN is small enough to be kept at full precision for free, and the remaining attn+mlp can be quantized with confidence.
The NVFP4 version further compresses the 200 layers into 4bit on top of this:
| int8_convrot | nvfp4 | |
|---|---|---|
| File Size | 21.0 GB | 12.5 GB |
| Sampling VRAM | 20.0 GB | 11.9 GB |
| Speed (s/it) | 2.17 | 1.90 |
Smaller, faster, more efficient — a model student in the quantization world. Note: NVFP4 requires the Blackwell architecture (RTX 50 series). Older cards should use the int8 version. The mood of 40-series users right now: 💔
Files to download from the repository:
minimax_h3_ref2va_pruned_nvfp4.safetensors(12.5G, reference-to-video)minimax_h3_fl2va_pruned_nvfp4.safetensors(12.5G, text/image-to-video)qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors(15G, text encoder, Comfy-Org original mirror)minimax_h3_video_vae_fp16.safetensors+minimax_h3_audio_vae_fp32.safetensors(VAEs deliberately not quantized — they only run once per generation, errors are directly visible, no savings to be had here)
Where to Get the Workflows
The Comfy-Org/MiniMax-H3 page provides three official templates. Download the JSON directly and drag it into ComfyUI:
- I2V (Image-to-Video): https://github.com/Comfy-Org/workflow_templates/blob/main/templates/video_minimax_h3_i2v.json
- T2V (Text-to-Video): https://github.com/Comfy-Org/workflow_templates/blob/main/templates/video_minimax_h3_t2v.json
- R2V (Reference-to-Video): https://github.com/Comfy-Org/workflow_templates/blob/main/templates/video_minimax_h3_r2v.json
The templates reference int8 model names by default. After loading, just switch the UNETLoader dropdown to your nvfp4 file — a single node change, no need to rework everything.
Local Deployment Steps
1. Upgrade ComfyUI to 0.30.0+
H3 is a core native node, absent in lower versions. Integrated package users should use the launcher to upgrade; don't manually git pull — unless you want to experience the extreme sport of "three hours of errors, two seconds to rollback."
2. Place Models in Correct Directories
ComfyUI/models/
├── diffusion_models/
│ ├── minimax_h3_ref2va_pruned_nvfp4.safetensors # For R2V
│ └── minimax_h3_fl2va_pruned_nvfp4.safetensors # For T2V/I2V
├── text_encoders/
│ └── qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors
└── vae/
├── minimax_h3_video_vae_fp16.safetensors
└── minimax_h3_audio_vae_fp32.safetensors
The full set is about 34G. If you're a 1T hard drive user, panic is setting in now. Don't worry, 4T users remain calm — like the protagonist of this column's "hard drive evolution history."
3. Load the Template Workflow, Check Three Things
- UNETLoader selects the correct variant (t2v/i2v uses fl2va, r2v uses ref2va — their weights are not interchangeable, choosing wrong will make the generated video look pixelated)
- CLIPLoader type is
minimax - Sampler is
res_multistep
4. Test at Low Resolution First
The official recommendation is 0.4 megapixels (864×480) for preview. The frame count must satisfy 17n+5 (e.g., 5 seconds = 125 frames). Full quality 1344×768 is reserved for final output.
The first time I ran it, I didn't check the frame requirement, casually entered 100 frames, and got an error. Changed to 102 frames, another error. Finally discovered the formula is 17n+5 — this isn't a frame requirement, it's a math problem from the college entrance exam.
16G VRAM + 64G RAM can run it in practice, relying on dynamic offloading. It's slow, but it runs — a family sedan hauling a shipping container, at 20 km/h, the cargo is moving.
Prompting: It's a Director, Not a Wishing Well
Finally, the easiest place to stumble: H3's prompts need to be written with structure, not prose. It was trained on structured storyboard scripts (officially called H3-Context-IR). Wishful literature like "a beauty in the rain, masterpiece" will yield a mess — possibly a beauty, possibly rain, possibly an abstract painting by a master.
Some say "prompts aren't important, the model understands natural language anyway" — whoever said that definitely hasn't run H3. You give a director a story, he makes a film. You give a director a sentence, he makes a commercial — the kind that lasts three seconds.
Key points:
- Use
[Shot 1],[Shot 2] At 00:03.000to timestamp storyboards - Dialogue must be written in the original language, otherwise you'll get perfect lip-sync but garbled content. Speaker, action, and tone go outside;
<d>[English] dialogue text </d>contains only the language tag and the dialogue itself - Camera movement written as "type + amplitude + speed"
- Reference images referenced by connection order using
<Picture 1>tags - Main body target 350–500 words
The official example looks like this:
[Shot 1] Live-action, cinematic, the young woman shown in <Picture 1>
remains beside the rain-covered train window... The quiet young woman (S1) says:
<d>[English] I get off at the next station.</d>
overall_soundscape: The train wheels produce a steady metallic rhythm...
non_diegetic_music: Sustained cello notes at a slow tempo...
Yes, even ambient sound and music have dedicated sections — it has native audio, not writing sound is like buying a surround sound system just to hear a beep.
The first time I wrote a prompt, the sound section alone was 150 words. In the resulting video, the rain, wheel sounds, and cello were layered clearly — leagues beyond the "audio-video desync" versions I previously stitched together from three models.
Conclusion
Audio-video integration, official-grade character consistency, 22B squeezed into a consumer graphics card — any one of these three things is worth an article, and H3 did all of them in a day.
The silent film era is over. Before, you were a prompt engineer; now, you are a director — even if the equipment at hand is just a 5060 Ti and a heart that wants to shoot a blockbuster.
Directors, action. 🎬
If this article helped you successfully run your first AI video with sound, or helped you dodge the mathematical trap of the "frame count formula," likes, comments, and shares are all welcome.
Thank you everyone 🙏 May your storyboards be clear, your dialogue accurate, your audio and video synchronized, and your characters consistent.