MiniMax H3 FirstBlockCache
Skip most of MiniMax H3's transformer for a 1.5× speedup — the catch is honest
- model
- MODEL
MiniMax H3 is a 33B video model. Every denoising step pushes the whole stack, and when you're rendering 20 steps of 2K video you feel every one of those billions of parameters. ApplyMiniMaxH3FirstBlockCache is a single model-patch node that makes most of that stack go quiet on most steps, and the author's benchmarks say it buys roughly 1.5× less time on a fixed seed - about a third off your render. It doesn't call an API, needs no key, and it's not trying to be lossless - it's a speed trade, and the README is refreshingly upfront about that.
How it works
This is a cross-step block cache - the same family as TeaCache and the FirstBlockCache idea that Wan users benchmarked to death on Wan 2.2. The idea: adjacent denoising steps produce latent states that barely differ, so why recompute the expensive parts?
The trick is in the name. On every step it always runs the first transformer block - the cheap, early part that catches most of the change. It compares that first block's output to the previous step's, and if the difference is small enough (below a threshold), it skips the entire remaining block stack and just adds the residual those blocks produced on the last full step. Small change, tiny effort, same answer-ish. Two details keep it from spiraling: caching only happens inside a protected 10–95% denoising window (the extreme ends of the trajectory are where things actually move), and it allows at most two consecutive cache hits before forcing a full step, so drift can't accumulate forever.
The pack is an independent implementation of a design from NVIDIA Research's Sol Video Inference Engine - not an NVIDIA port, so don't compare its numbers to Sol Engine's full-stack figures. No CUDA kernels, no Triton, just set_model_patch_replace hooks on H3's double_block patches - it works wherever native MiniMax H3 already runs.
The inputs that matter
The node takes one job input - model (a MODEL) - plus a mode dropdown and a handful of sliders:
mode- the only thing you'll usually touch. Three calibrated presets:H3 Safe(threshold 0.08),H3 Fast(0.10, the default and the README's recommendation), andH3 Aggressive(0.12).threshold,start_percent,end_percent,max_consecutive_hits,temporal_guard- all for theCustommode. These widgets stay disabled in the UI unless you pickCustom; the presets keep their calibrated values. If you go custom,start_percentmust be smaller thanend_percentor the node throws.temporal_guard(custom only) is a nice touch for video: it also checks the most-changed frame, so fast local motion doesn't sneak past a low global average.
The single output is a patched MODEL. Wire it everywhere the unpatched diffusion model went: Load Diffusion Model → this node, with the patched MODEL feeding Basic Scheduler and Basic Guider.
Installing it
No dependencies, no model downloads, no pip step - the pyproject ships an empty dependency list, which is the whole appeal.
cd ComfyUI/custom_nodes
git clone https://github.com/duckyshell/ComfyUI-MiniMaxH3-FirstBlockCache.git
Then restart ComfyUI, or grab it via ComfyUI Manager by searching "MiniMax H3 FirstBlockCache". The pack itself is trivially light; the model it needs is the other story - H3's full weights run ~42.5 GB, so you're presumably already on a quantized build if this node is on your radar.
What to watch out for
- It only patches real MiniMax H3. Plug it into any other diffusion model and it raises a clear error - "only supports native MiniMaxH3".
- It refuses to stack with other cache nodes. EasyCache, LazyCache, CacheDiT, or the T8 block cache will trip its conflict check and it'll refuse to apply. If you see that error, drop the other cache and connect this one directly after the model loader.
- It's an approximation, and the README says so. Cached and uncached runs follow different numerical trajectories even at a fixed seed - deterministic per mode, but not identical to a no-cache render. Review important outputs visually, and drop to
Safeif fidelity matters more than seconds. - One caveat that isn't this node's fault: MiniMax H3's community license excludes the US, EU, UK and Korea from running the local weights at all. A 1.5× speedup is moot if you shouldn't be running the model where you are.
Tested on an RTX 5090; nothing Blackwell-specific, so 30- and 40-series should work whenever your ComfyUI build already runs H3. If a third of your render time is starting to feel like a lot, this is the cheapest ~30% you'll find.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| mode | COMBO | H3 Fast — 0.10 / max 2 | 4 options: H3 Safe — 0.08 / max 2, H3 Fast — 0.10 / max 2, H3 Aggressive — 0.12 / max 2, Custom — manual values |
| threshold | FLOAT | 0.1000–1 | — |
| start_percent | FLOAT | 0.100–1 | — |
| end_percent | FLOAT | 0.950–1 | — |
| max_consecutive_hits | INT | 21–20 | — |
| temporal_guard | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |