EasyCache
EasyCache — ComfyUI's built-in step-skipper that can nearly halve sampling time
- model
- MODEL
EasyCache is the "free speed" node hiding in your ComfyUI install. Drop it between your model loader and the sampler, and it silently skips a chunk of the denoising steps - in the author's own tests it skipped 21 of 40 steps on Flux Kontext (a ~2.1x speedup) and 9 of 20 on Qwen Image Edit. No extra files, no per-model config file, no install. It ships with ComfyUI core and has been there since August 2025.
The catch, and it's a real one: "free" means "at the cost of some visual clarity," as the official release post put it. You're trading detail for time, and the whole thing is tuned by a single slider.
How it works
EasyCache comes from the step-skipping family that includes TeaCache, and it's genuinely elegant in how it sidesteps TeaCache's pain points. TeaCache needs a set of hyperparameters hand-tuned per model; EasyCache needs exactly one (reuse_threshold). TeaCache needs per-model code changes; EasyCache just wraps the model's forward() function and looks at what goes in and what comes out.
Here's the trick: during sampling, consecutive steps barely change the latent. So EasyCache tracks a diff between each step's input and output, and when the next step's input is close enough to the previous one, it reuses the stored diff and skips the model call entirely. To compare cheaply it subsamples the tensors by 8 and estimates a "relative transformation rate" - how much the latent is actually moving - instead of doing a full comparison. One wrapper around the forward pass, and every model in ComfyUI that has wrapper compatibility gets day-0 support. That's Flux, Wan, Hunyuan Video, LTXV, Qwen Image, Cosmos, Lumina2, HiDream, AuraFlow - the list is enormous.
The inputs that matter
- model - your patched MODEL, straight from the loader or LoRA stack. Output feeds into the KSampler. That's the whole graph change.
- reuse_threshold (default 0.2) - the one real knob. Higher = more steps skipped = faster and fuzzier. Lower = fewer skips = closer to the uncached result. For 480p video people commonly drop below 0.1.
- start_percent (0.15) and end_percent (0.95) - the sampling window where skipping is allowed. Early steps fix composition; if your image drifts from the non-cached version, raise start_percent. Late steps add fine detail; if detail looks thin, lower end_percent.
- verbose - off by default. Flip it on while tuning and the console spams per-step numbers, including what the code "sees" at each threshold. That's the difference between guessing and dialing.
Troubleshooting
- Quality loss is the point. This is a speed-first node, not a quality one. In the Wan world it's famously used for static backgrounds and locked-off shots; complex motion and realistic scenes are where it degrades most visibly. If output matters, treat EasyCache as a seed-farming tool, not your final pass.
- Artifacts with distilled step-reducer LoRAs. A common report: Wan 2.2 with a LightX2V 4-step LoRA plus EasyCache produces "oil painting" artifacts, and removing the node fixes it. The community's first debugging move is literally "remove easycache and try again."
- Still experimental. The node is marked beta in core and got several post-release fixes (channel-mismatch handling, conditioning-change edge cases, an early crash when tensor shapes changed mid-run). If a workflow behaves differently after a ComfyUI update, EasyCache is a plausible culprit.
- Start at threshold 0 and work up if you want the safest baseline, then eyeball the verbose logs.
It's not magic and it's not for your hero images, but when you're burning 20-50 steps a generation on a 12B video model, skipping a third of them for a couple percent of clarity is a trade plenty of people make.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | The model to add EasyCache to. | |
| reuse_threshold | FLOAT | 0.200–3 | The threshold for reusing cached steps. |
| start_percent | FLOAT | 0.150–1 | The relative sampling step to begin use of EasyCache. |
| end_percent | FLOAT | 0.950–1 | The relative sampling step to end use of EasyCache. |
| verbose | BOOLEAN | false | Whether to log verbose information. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | The model with EasyCache. |