ApplyFirstBlockCachePatch
One dial, big speedup
- model
- model
This is the plain version of ApplyFirstBlockCachePatchAdvanced: same First Block Cache trick, one less knob. It runs the transformer's first double block as a cheap probe, compares its output to the previous step's, and when they're close enough it skips the rest of the double blocks and the single blocks, reusing the last fully-computed result. For Flux at 20+ steps that's a lot of skipped work, and it's why this node family gets you roughly 1.8x on Flux without retraining anything.
The Advanced sibling adds start_at/end_at so you can confine caching to the middle of the denoising schedule. This one caches the whole run, which is simpler to reason about - you just trade one dial.
The one dial
residual_diff_threshold- how similar a step must look before it's skipped. Higher = more skipping = faster and fuzzier. Author's reference values: Flux 0.12 ≈ 1.8x, HunYuanVideo 0.1 ≈ 1.6x, LTXVideo 0.05 ≈ 1.2x, MochiVideo 0.03 ≈ 1.5x, WanVideo 0.05 ≈ 1.5x.0turns it off completely, which also makes the node a harmless pass-through.
model in, model out. That's the whole interface - this is a "set it and forget it" node once you've found your threshold.
Wiring and install
It only does anything when a *ForwardOverrider is in the same model path (DitForwardOverrider auto-detects Flux versus video, FluxForwardOverrider and VideoForwardOverrider are the scoped versions). Chain: loader → cache patch → overrider → guider/KSampler.
Part of ComfyUI_Patches_ll:
cd ComfyUI/custom_nodes
git clone https://github.com/lldacing/ComfyUI_Patches_ll.git
# restart ComfyUI
ComfyUI Manager will find it as ComfyUI_Patches_ll. Needs ComfyUI ≥ 0.3.17; no model downloads, no heavy dependencies.
Gotchas
- MochiVideo is the pack's known weak spot - the README says accelerated output quality is poor and can fail, so skip it there.
- No speedup, no error. Missing overrider means the hooks never fire. That's the silent failure to check first.
- Smearing when pushed too far. If the image starts losing structure, back the threshold down.
If you think you might want caching only during the middle 20–80% of sampling (which is the classic safe window, and where aggressive Flux settings live), grab the Advanced version instead. Otherwise this one dial is all there is, and that's a feature.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| residual_diff_threshold | FLOAT | 0.000–1 | Flux: 0 (original), 0.12 (1.8x speedup). HunYuanVideo: 0 (original), 0.1 (1.6x speedup). LTXVideo: 0 (original), 0.05 (1.2x speedup). MochiVideo: 0 (original), 0.03 (1.5x speedup). WanVideo: 0 (original), 0.05 (1.5x speedup). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |