ComfyUI Node

MiniMax H3 Cache

Skip work in MiniMax H3 sampling without breaking the model

By silveroxides·Created 2 months ago·Updated about 7 hours ago· 24
MiniMax H3 Cache
  • model
  • model
reuse_threshold0.05
start_percent0.15
end_percent0.90
max_steps2
deviceauto
verbosefalse

MiniMax H3 is a 33B model, which means every sampling step is expensive, and video sampling means a lot of steps. UC_MiniMaxH3Cache is a speed node: it applies an approximate block-stack residual cache to a cloned copy of the H3 model, so that when the features coming out of the model's transformer blocks haven't changed much since the last step, it reuses the cached residual instead of running the whole block stack again. In the middle of a long sampling run, adjacent steps can be very similar - and that's where the time goes back into your pocket.

It's part of silveroxides/ComfyUI-UtilsCollection. The implementation detail worth trusting: it does not monkey-patch the Core model class globally. It patches a cloned model patcher (via the ModelPatcher's object-patch mechanism), so the behavior lives and dies with the patched clone you pass to the sampler. If the cache misbehaves, your other workflows aren't affected - that's a genuinely careful design choice, and it's the first thing to check when a "cache" node makes you nervous about side effects.

What's on the node

  • model - the H3 diffusion model to patch. The output goes to your sampler.
  • reuse_threshold (default 0.05) - the big one. Maximum accumulated relative feature change allowed for reuse. Higher values skip more work but can reduce fidelity; lower values run more real steps. Start at the default and nudge up only if quality holds.
  • start_percent / end_percent (default 0.15 / 0.90) - sampling progress window where caching is allowed. Early steps do the structural work, so caching only kicks in after 15%; the last 10% is left uncached because late steps polish detail.
  • max_steps (default 2) - most consecutive block-stack skips allowed, so you never skip so many steps in a row that the model drifts.
  • device - auto keeps the cached residual with the model, cuda requires CUDA, cpu offloads the cached residual to system RAM (useful on tight VRAM).
  • verbose - prints per-step cache decisions plus a final skip summary. Turn it on once to see what you're actually saving.

Outputs

  • model - the patched clone, which must feed your sampler just like the input did.

Installing it

Via the pack:

  • ComfyUI Manager: search "ComfyUI-UtilsCollection".
  • Or:
cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI-UtilsCollection

Restart ComfyUI. No extra downloads for the node; you need H3 itself, which is a big, license-gated download - the H3 Community License excludes the US, EU, UK and Korea, so confirm you're in the applicable territory before building a workflow on it.

Gotchas

This is an approximate cache, and "approximate" is the honest word: crank reuse_threshold too far and you'll trade fidelity you can see for time you can measure. Turn on verbose and compare a cached run against a plain run on the same seed before you trust it for final renders. Also, the cache only helps when consecutive steps are genuinely similar - on short, high-detail runs with big per-step changes it may skip little, and that's not a bug, that's the guardrails doing their job. If you're on limited VRAM, the cpu device option exists precisely because keeping the residual on the GPU can squeeze a 33B model you were already close to the edge on.

Categoryadvanced/model/patches

Inputs (7)

NameTypeDefaultDescription
modelMODEL
reuse_thresholdFLOAT0.050–1Maximum accumulated relative feature change allowed for reuse. Higher values skip more work and may reduce fidelity.
start_percentFLOAT0.150–1Sampling progress at which cache reuse may begin.
end_percentFLOAT0.900–1Sampling progress after which cache reuse stops.
max_stepsINT21–10Maximum number of consecutive block-stack skips.
deviceCOMBOautoauto keeps the residual with the model, cuda requires CUDA, and cpu offloads the cached residual.
verboseBOOLEANfalsePrint per-step cache decisions and a final skip summary.

Outputs (1)

NameTypeDescription
modelMODEL