H3 Model Loader (safetensors + GGUF)
One dropdown that handles safetensors and GGUF, with a VRAM brain
- MODEL
The first node in every H3 graph, and the one that decides whether your render crawls or cruises. H3ModelLoaderAny loads the MiniMax-H3 diffusion checkpoint from a single dropdown, whether it's a .safetensors file or a .gguf quant. The routing is automatic - safetensors through ComfyUI core, GGUF through ComfyUI-GGUF (patched for the minimax_h3 architecture, which the stock list doesn't know). But the real reason to use this loader over a plain one is activation_reserve_gb, and what that default of 0 does.
Why the VRAM brain matters
H3 is a ~33B-parameter video model, and its activation memory is enormous and shape-dependent - a reference-laden chained shot needs roughly twice the pool of a bare first shot. ComfyUI's stock estimator is deliberately conservative, and at large frame counts that conservatism costs you: it over-reserves, the DiT loads only partially, and you stream weights from system RAM on every step. That's the "random 3-hour render for identical work" phenomenon this pack spent release notes hunting.
With activation_reserve_gb = 0 (AUTO, the recommended setting), this loader sizes the reserve for the actual render shape, measures the real peak each run, and tightens itself per machine - lower resolutions get faster automatically. It also runs a leftover-VRAM sweep before the first DiT load when the encoder runs on another box, because stale encoder weights on the card are how shot 1 ends up 2.5x slower than shot 2.
The dials
model_name- the dropdown of checkpoints inmodels/diffusion_models/. It's recursive, so a.gguffiled underdiffusion_models/gguf/shows up, which a flat list would miss.activation_reserve_gb-0= AUTO (leave it). Set a number to pin the reserve by hand, and understand what you're giving up: a fixed number is for one resolution, and the wrong number is 5-10x slower, not a little slower.-1= OFF, which leaves ComfyUI's stock estimator alone entirely - an escape hatch for cards or setups where the auto-reserve mis-plans, at the cost of the leftover sweep and per-shape learning.
One output, MODEL, straight into your sampler.
Install
It ships in the H3 Multishot pack:
cd ComfyUI/custom_nodes
git clone https://github.com/jlucasmcrell/ComfyUI-H3-Multishot
or ComfyUI-Manager → H3 Multishot. Restart; ComfyUI v0.30.0+ for native H3 support.
The model itself is the heavy lift. The shipped workflows use ref2va; fl2va chains equally well and is the lighter-on-tokens choice. Quantized GGUFs come from huggingface.co/joeygambino/MiniMax-H3-GGUF - Q8_0 for 32GB, Q5_1 for 24-32GB, Q4_0 for 16GB. If you run GGUF you also need ComfyUI-GGUF installed, and if you hit Unexpected architecture type in GGUF file: 'minimax_h3', the pack's in-memory patch didn't activate - run its on-disk fallback once and restart:
cd ComfyUI/custom_nodes/ComfyUI-H3-Multishot
python apply_gguf_arch_patch.py
The README's honest guidance: Q5_1 is the sweet spot for 24-32GB cards, Q8_0 for 32GB+. And don't skip the console messages - when this loader measures your pool, it prints what it found, and that line is often the first hint a render is about to thrash.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | safetensors or GGUF - loader routes automatically. | |
| activation_reserve_gbopt | FLOAT | 0.0-1–128 | 0 = AUTO (recommended). The pack sizes the activation reserve for the actual render shape, measures the real peak each run, and tightens itself per machine - lower resolutions get faster automatically. Set a number only to pin the reserve by hand; that number is for ONE resolution and the wrong number is 5-10x slower, not a little slower. -1 = OFF: leave ComfyUI's stock estimator alone (issue #17; for cards/setups where the auto-reserve mis-plans - you lose the leftover sweep and per-shape learning). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |