Guides

MiniMax H3 in ComfyUI: the version, the files, and the flag that stops the OOM

Native nodes shipped in 0.30.0. The fix that stops it running out of memory shipped in 0.32.0, and most guides still stop at 0.30.0. Here is the current state, with pull request numbers.

Aug 11, 20269 min readEditorial deskEditorial desk
MiniMax H3 in ComfyUI: the version, the files, and the flag that stops the OOM

To run MiniMax H3 in ComfyUI you need ComfyUI 0.32.0 or later, four model files totalling 42.47 GB, and no custom nodes. Native support arrived in 0.30.0, but the sampler fix for distorted audio landed in 0.31.0 and the peak-memory fix in 0.32.0. On a 24 GB card, host RAM decides whether it finishes.

Everything here is dated. Nine H3 fixes shipped after 0.30.0, so a guide written in the first week describes a different program. Each fact below carries its pull request number and its release.

Check this before you download anything: the MiniMax H3 Community Licence excludes the US, the EU, the UK and South Korea from the grant to run the weights locally, and §V.4 extends that restriction to the output. The hosted API is not covered by the territory clause. A summary, not legal advice — the full licence breakdown has the clauses.

What 0.30.0 gives you, and what it does not

0.30.0 is where the nodes and the three local example templates appear. That is all it is.

Six more fixes arrived in 0.31.0 on 8 August, led by kijai's #15243, Fix sampler issues for audio with minimax. Three arrived in 0.32.0 on 11 August, including comfyanonymous's #15486, Fix peak memory issue with H3 — the reason a 24 GB card that used to die now finishes.

ReleasePRWhat it fixesSeverity
0.31.0#15243Sampler over-steps the audio schedule; at 4 steps it is noiseblocker
0.31.0#15390EasyCache corrupts the soundtrackmajor
0.31.0#15377Full offload of the audio VAE failsmajor
0.31.0#15334The int8_convrot VAE will not loadmajor
0.31.0#15322Masked sampling is wrongminor
0.31.0#15268Device-mismatch errors during VAE decodeminor
0.32.0#15486The OOM one. Update before you patch anything by handblocker
0.32.0#15477Tiled VAE decode crashes on NestedTensor latentsmajor
0.32.0#15446Decode is slower and heavier without itminor

0.33.1 on 13 August added MiniMax ContextIR and Regenerate-2K API nodes (#15471), so the hosted 2K stage can be chained onto a local graph. The weights for it are still not open, and we have not run this ourselves.

cd /path/to/ComfyUI
git pull
python -m pip install -r requirements.txt
python main.py --version        # expect 0.32.0 or later

Windows portable: use the bundled update script or the in-app updater.

Which model files to download, and where they go

Do not clone the repository — it holds every precision variant and totals about 475 GB. A text-to-video or image-to-video graph loads exactly four files, byte-checked against Hugging Face on 14 August.

FileSizeGoes in
minimax_h3_fl2va_pruned_int8_convrot.safetensors20.97 GBmodels/diffusion_models/
qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors15.69 GBmodels/text_encoders/
minimax_h3_video_vae_fp16.safetensors5.21 GBmodels/vae/
minimax_h3_audio_vae_fp32.safetensors0.61 GBmodels/vae/
Total42.47 GB = 39.55 GiB
hf download Comfy-Org/MiniMax-H3 \
  diffusion_models/minimax_h3_fl2va_pruned_int8_convrot.safetensors \
  text_encoders/qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors \
  vae/minimax_h3_video_vae_fp16.safetensors \
  vae/minimax_h3_audio_vae_fp32.safetensors \
  --local-dir ComfyUI/models

Reference-to-video adds a fifth file, the separate Ref2VA checkpoint, taking the set to 63.44 GB. Loading the FL2VA file into an R2V graph is the most common first-run failure.

Two widely-copied file tables report these figures in gibibytes while labelling them GB. If you cleared 39.6 GB of disk, you are 2.9 GB short before ComfyUI writes anything.

On precision: bf16 is 66.28 GB for the diffusion model alone — pick it only if you know why. fp8_scaled is 20.96 GB, almost identical in size to int8_convrot; choose it only if int8_convrot will not build in your environment.

Then: Workflow → Browse Templates → Video → MiniMax H3. Three local templates, plus three that call the API.

Will your GPU run it?

There is no official minimum, and every hardware table you will find disagrees with the others because they measured different things.

Host RAM is what kills the run, not VRAM

On a 4090 running the pruned INT8 stack, only about 6.6 GB sits in VRAM during sampling — the weights live in host memory and page in. So the failure is a host-memory failure. One documented 3090 run reached 29,866 MB of 31,997 MB and was killed by the kernel; the same job with --disable-pinned-memory peaked at 7,508 MB and finished in 23 minutes 17 seconds. You cannot page out pinned memory, which is why adding swap on its own changes nothing.

If you are on 0.30–0.31 and cannot update, the reproducible recipes change one constant — MiniMaxH3.memory_usage_factor in comfy/supported_models.py, from 0.114 to 1.0. On 0.32.0 or later, update first and only patch if it still OOMs.

Measured runs, and the hardware behind each one

Fourteen runs have been published with enough detail to attribute. None is a benchmark — nobody has held the variables still. Read them as existence proofs: this configuration finished, in this long.

GPUVRAMHost RAMCanvasLengthTime
RTX 306012 GB16 GB0.2 MP5 s51 min 07 s
RTX 306012 GB32 GB864×4805.17 s, 20 stepsunder 9 min
RTX 30708 GB32 GB0.4 MP5 s~9–10 min
RTX 4090 Laptop + SageAttention16 GB32 GB960×5405 s, 20 steps182 s
RTX 5070 Ti16 GB64 GB0.4 MP5 / 10 / 15 s~2 / 4.5 / 7 min
RTX 508016 GB1.0 MP10 s13 min 36 s
RTX 409024 GB832×48015 s, 8 steps~25–30 min
RTX 309024 GB31 GB15 s23 min 17 s
2× RTX 5090 (SGLang, not ComfyUI)32 GB each377 GiB1344×768124 frames, 50 steps559.67 s

That last row is a different runtime on two cards with 377 GiB of host RAM. It is listed for scale, not for comparison — using it to predict single-card ComfyUI speed is wrong. On a single 4090, the same recipe gives a feasibility edge: 832×480 finishes at both 124 and 362 frames, 1088×640 finishes at 124 frames, and both 1088×640 at 192 frames and 1344×768 at 362 frames OOM.

Whether the card pays for itself is a separate calculation.

Resolution, frames, and the 17n+5 grid

Three settings on the Resolution Selector produce width and height. Keep Multiple at 32 — that is H3's grid. The native canvas is a 768-pixel short edge capped at 768×1344. At 16:9, Megapixels 0.98 gives exactly 1344×768; the 1.0 preset gives 1376×768, which is off the documented canvas. Templates ship at 0.4 MP. Start there. The floor is 384p; 256p fails outright.

Frame counts snap to 17n+5 at 24 fps, so most requests round up. 175 frames is 7.29 seconds; there is no 7.00. Across the whole 4–15 second range exactly one value lands on a whole second: 192 frames, 8.000 seconds. The validated ceiling is 362 frames, or 15.08 seconds.

No audio, or distorted audio

Two different failures with two different causes.

Silence is a wiring problem. Both VAEs must be loaded and the VAEDecodeAudio output must reach the save node. Check the file, not the player — you should see H.264 at 24 fps and AAC stereo at 32 kHz. No second stream means the graph is wrong, not the model.

ffprobe -hide_banner out.mp4

Distortion is a sampler problem. H3 runs picture and sound on two flow schedules, shift 12 and shift 3, and a single-clock sampler over-steps one of them. At 20 steps the error is invisible; at the 4 steps a Turbo LoRA uses, it becomes clipping and noise. ComfyUI 0.31.0 handles both schedules natively through ModelSamplingAV. Below that version you need larryvrh's dual-clock sampler.

Errors, and the one-line fix for each

Two rules before you change anything. Change one variable at a time and rerun the same prompt and seed — stacking --lowvram, --reserve-vram, --cache-none and a quantised checkpoint at once leaves you with no idea which one helped. And get one plain official template to finish before you add SageAttention, TeaCache, EasyCache or a GGUF loader.

Symptom in the consoleCauseFix
CUDA out of memory during samplingCanvas × frames exceed the planDrop Megapixels first, frames second. On 0.30–0.31, update to 0.32.0 (#15486)
Process killed, machine freezes, no CUDA errorHost RAM. Pinned memory cannot be paged out--disable-pinned-memory --disable-async-offload
OOM only during VAE decodeDecode allocation scales with framesFewer frames or smaller canvas; update to 0.32.0 (#15477, #15446)
MiniMaxH3… nodes or templates absentCore older than 0.30.0python main.py --version, update, restart
No "text to video" node anywhereMisunderstandingThe T2V template is MiniMaxH3ImageToVideo with nothing connected. Do not install third-party replacements
Loader error on the R2V graphFL2VA checkpoint selected instead of Ref2VASelect minimax_h3_ref2va_pruned_int8_convrot.safetensors
Output has no audio streamAudio VAE not loaded, or VAEDecodeAudio not reaching the save nodeCheck both, verify with ffprobe
Audio clips, buzzes or turns to noiseTwo flow schedules stepped on one clockUpdate to 0.31.0 (#15243), or use larryvrh's Turbo Sampler
Generation fails at 256pBelow H3's 384p floorUse the template presets

Making it faster, in the order that helps

In this order, because the first two are free and the last one costs quality.

  1. Update. 0.32.0's VAE optimisation and memory fix are worth more than any flag.
  2. Drop the canvas before the length. 0.4 MP finishes where 1 MP on a 24 GB card often does not.
  3. SageAttention. Launch with --use-sage-attention, or patch it in with KJNodes. ComfyUI estimates roughly double; offload-bound machines see less. The dtype fallback warnings are expected.
  4. Turbo LoRA. larryvrh's v4 cuts sampling from about 20 steps to 4–8. Use 6–8; 4 smears fast motion, and past 8 it stops helping.

Do not add --lowvram alongside --disable-pinned-memory. They conflict.

When not to run it in ComfyUI

Three cases where local is the wrong answer, and one where it is clearly the right one.

Local is wrong if you are in the US, EU, UK or South Korea and self-hosting the weights; the licence does not grant it. It is wrong if you need 2K from open weights, because Regenerate-2K was never released. And it is wrong on 8 GB with 16 GB of system RAM, where a five-second clip has been reported at 51 minutes.

Local is right if you have 24 GB of VRAM, 32 GB of host RAM and a permitted territory. ComfyUI then gives you batching, LoRAs and node-level control that no hosted interface, ours included, can match. That is why every filename and flag here is spelled out.

Questions after a failed first run

Do I need a custom node? No. Native since 0.30.0, and the templates use core nodes only.

Why is there no text-to-video node? The T2V template is MiniMaxH3ImageToVideo with nothing connected. By design.

Which version should I actually run? 0.32.0 or later. 0.30.0 runs, but misses nine H3 fixes.

Why is my output silent? Both VAEs must load and VAEDecodeAudio must reach the save node. Verify with ffprobe.

Why does the sound break at 4 steps? Single-clock sampling over-steps the audio schedule. Fixed in 0.31.0.

How much disk do I need? 42.47 GB for T2V and I2V, 63.44 GB with Ref2VA, plus cache.

Can a 12 GB card do it? Yes, with heavy offload. A maintainer reported 864×480, 124 frames, 20 steps, under nine minutes.

Why did my 7-second clip run long? Frames snap to 17n+5. 175 frames is 7.29 seconds.

Should I use a GGUF build? There is no official one. Try it only after the official stack works.

Can I get 2K locally? Not from open weights. Since 0.33.1 you can chain the hosted Regenerate-2K node.


What may change. This moves weekly: check the ComfyUI releases for H3 entries newer than 0.33.1. The 362-frame ceiling is third-party documentation, not an official cap. And the memory_usage_factor patch may already be unnecessary on 0.32.0 and later. Last verified 2026-08-14.

Editorial desk

Written by

Editorial desk

minimax-h3ai.video

All articles