Nodes/ComfyUI-AccelDiff/AccelDiff Unified
ComfyUI Node

AccelDiff Unified

One node, ten acceleration tricks — AccelDiff Unified cuts sampling without retraining

By jiajianxie·Created 2 months ago·Updated 23 days ago· 3
AccelDiff Unified
  • model
  • sampler
  • model
sampler_methodNone
model_methodNone
sampler_name
max_skip_steps4
threshold0.010
ec_threshold0.025
ret_steps5
lagrange_term3
lagrange_int4
lagrange_step20
max_interval4
acc_start10
acc_end47
teacache_model_typewan2.1_t2v_1.3B_ret_mode
rel_l1_thresh0.40
start_percent0.00
end_percent1.00
cache_devicecuda
magcache_model_typewan2.1_t2v_1.3B
magcache_thresh0.06
retention_ratio0.20
magcache_K2
start_step0
end_step-1
taylorseer_model_typeflux
max_order1
fresh_threshold6
first_enhance3
hicache_model_typeflux
hicache_prediction_modehicache
hicache_max_order1
hicache_fresh_threshold6
hicache_first_enhance3
hicache_scale_factor0.70
seacache_model_typeflux
seacache_thresh0.30
seacache_power_exp2.0
seacache_ret_steps1
tcpade_model_typewan2.1
tcpade_start_step4
tcpade_end_step-1
tcpade_interval8
tcpade_n_threshold1.4
tcpade_predictor_order3
tcpade_history_size6
tcpade_cache_devicecuda
zeus_denominator3
zeus_modular0,1
zeus_acc_start10
zeus_acc_end45
zeus_interp_modepsi
zeus_caching_modereuse_interp
zeus_max_interval4
zeus_lagrange_term3
zeus_lagrange_int6
zeus_lagrange_step24

AccelDiff Unified is the kind of node that makes you do a double take: one node, ten published diffusion-acceleration methods, and none of them require you to retrain, fine-tune, or download a single new weight. It's the flagship of the jiajianxie/ComfyUI-AccelDiff pack, released in June 2025 and expanded the same month from four methods to ten. If you've been staring at Wan or Flux renders crawl by, this is aimed at you.

The idea behind it

Diffusion sampling is wasteful. Neighboring timesteps compute nearly identical things, and a whole family of "training-free" methods exploits that redundancy without touching the model weights. That's a different bet than distillation (LCM, Lightning LoRAs), which bakes fewer steps into the model itself and costs you a separate LoRA plus real quality. Training-free acceleration keeps your exact model and just skips or cheapens redundant computation. The tradeoff is still there - you're buying speed with approximation - but you can dial it per render.

The pack splits those methods into two families, and the node lets you use either one or stack both:

  • Sampler-level (AdaptiveDiff, EasyCache, SADA, ZEUS): reuse or approximate the predicted noise across timesteps, so whole steps get skipped. These produce a SAMPLER.
  • Model-level (TeaCache, MagCache, TaylorSeer, HiCache, SeaCache, TC-Pade): wrap the model and cache intermediate features - attention maps, transformer block outputs - inside it, so each remaining step costs less.

TeaCache is the one you've probably already met; it's a staple of Wan video workflows, where it's good for a solid chunk of runtime on longer clips. MagCache and the rest are newer papers that made it in during that June 2025 update.

How the node actually works

Under the hood it's a dispatcher, not a magic engine. Two dropdowns - sampler_method and model_method, both defaulting to None - pick your method, and the node imports the matching implementation and wraps it for you. The genuinely clever part is the frontend. The pack ships js/mine.js, which redraws the node live: it hides every parameter widget that doesn't apply to your selection, shows the model input slot only when you've picked a model method, and reveals sampler_name only when you've picked a sampler method. Without that you'd be staring at roughly fifty widgets, most of them irrelevant.

The inputs and outputs that matter

You really only touch a handful of fields, depending on which side you enable:

  • sampler_method / model_method - the two dropdowns. Set one, the other, or both.
  • sampler_name - the base sampler (euler, dpmpp_2m, …) your chosen sampler wrapper drives. Only appears for sampler methods. Note that ddim isn't supported and silently maps to euler.
  • The threshold knobs - TeaCache's rel_l1_thresh, EasyCache's ec_threshold, MagCache's magcache_thresh. This is your quality/speed dial: lower is conservative, higher is faster but risks artifacts.
  • The *_model_type dropdowns (e.g. teacache_model_type, magcache_model_type) - these must match your actual model architecture (flux, wan2.1_t2v_1.3B, hunyuan_video, …). Get this wrong and the caching heuristics behave badly.

Two outputs: sampler and model. Wire the SAMPLER into a KSampler's sampler input, and/or pass the MODEL between your checkpoint loader and the KSampler. Combined acceleration looks like:

[Loader] --model--> [AccelDiff Unified] --model--> [KSampler]
                                     \--sampler-------> [KSampler]

Installing it

Two ways, both standard. ComfyUI Manager, searching for ComfyUI-AccelDiff, is the easy route. Or manually:

cd ComfyUI/custom_nodes/
git clone https://github.com/jiajianxie/ComfyUI-AccelDiff
cd ComfyUI-AccelDiff
pip install -r requirements.txt

Then restart ComfyUI. The dependency list is blessedly light - torch>=2.1.0, scipy, einops, numpy, tqdm - and there are no model files to download. Everything is pure Python over whatever model you already have. Python >= 3.10 is required.

Where people get burned

  • Wrong model type. The *_model_type dropdowns have defaults tuned for specific models, and the defaults differ per method (TeaCache defaults to a Wan ret-mode, MagCache to plain Wan, the newer methods to flux). If your render looks off or the speedup never shows, this is the first thing to check.
  • Pushing thresholds too far. Every method's docs give you a range; past the aggressive end you get blur, ghosting, or temporal flicker - especially on video. Start conservative, then creep up.
  • Mixing up the output pins. sampler goes to KSampler's sampler input; model goes inline between loader and KSampler. They're not interchangeable, and a sampler method does not need a model hooked into this node at all.
  • Expecting magic on image models. These methods shine on video, where redundancy between steps is huge. On a 20-step SDXL render you might save seconds; on an 81-frame Wan clip you save minutes.

One honest caveat: this pack is new and genuinely obscure - essentially zero community chatter, so you're working from the README and the per-method docs (which are surprisingly thorough, each with tuning guides and the paper reference). That's fine for a tool this focused, but don't expect a fleet of YouTube tutorials to bail you out.

CategoryAccelDiff

Inputs (57)

NameTypeDefaultDescription
sampler_methodCOMBONone5 options: None, AdaptiveDiff, EasyCache, SADA, ZEUS
model_methodCOMBONone7 options: None, TeaCache, MagCache, TaylorSeer, HiCache, SeaCache, +1
sampler_nameoptCOMBO16 options: euler, heun, heunpp2, dpm_2, lms, dpm_fast, +10
modeloptMODEL
max_skip_stepsoptINT40–10
thresholdoptFLOAT0.0100–1
ec_thresholdoptFLOAT0.0250–1
ret_stepsoptINT50–100
lagrange_termoptINT30–5
lagrange_intoptINT41–20
lagrange_stepoptINT205–100
max_intervaloptINT41–20
acc_startoptINT100–100
acc_endoptINT47-100–200
teacache_model_typeoptCOMBOwan2.1_t2v_1.3B_ret_mode16 options: flux, flux-kontext, ltxv, lumina_2, hunyuan_video, hidream_i1_full, +10
rel_l1_threshoptFLOAT0.400–10
start_percentoptFLOAT0.000–1
end_percentoptFLOAT1.000–1
cache_deviceoptCOMBOcuda2 options: cuda, cpu
magcache_model_typeoptCOMBOwan2.1_t2v_1.3B12 options: flux, flux_kontext, chroma, qwen_image, hunyuan_video, hunyuan_video1.5, +6
magcache_threshoptFLOAT0.060–0.3
retention_ratiooptFLOAT0.200.1–0.3
magcache_KoptINT20–6
start_stepoptINT00–100
end_stepoptINT-1-100–100
taylorseer_model_typeoptCOMBOflux4 options: flux, hunyuan_video, wan2.1, hidream
max_orderoptINT10–4
fresh_thresholdoptINT62–20
first_enhanceoptINT31–10
hicache_model_typeoptCOMBOflux4 options: flux, hunyuan_video, wan2.1, hidream
hicache_prediction_modeoptCOMBOhicache2 options: hicache, taylor_scaled
hicache_max_orderoptINT10–4
hicache_fresh_thresholdoptINT62–20
hicache_first_enhanceoptINT31–10
hicache_scale_factoroptFLOAT0.700.01–2
seacache_model_typeoptCOMBOflux3 options: flux, hunyuan_video, wan2.1
seacache_threshoptFLOAT0.300–2
seacache_power_expoptFLOAT2.01–5
seacache_ret_stepsoptINT10–10
tcpade_model_typeoptCOMBOwan2.12 options: flux, wan2.1
tcpade_start_stepoptINT40–100
tcpade_end_stepoptINT-1-1–200
tcpade_intervaloptINT81–100
tcpade_n_thresholdoptFLOAT1.40–5
tcpade_predictor_orderoptINT31–4
tcpade_history_sizeoptINT63–12
tcpade_cache_deviceoptCOMBOcuda2 options: cuda, cpu
zeus_denominatoroptINT32–6
zeus_modularoptSTRING0,1
zeus_acc_startoptINT100–100
zeus_acc_endoptINT45-100–200
zeus_interp_modeoptCOMBOpsi2 options: psi, x_0
zeus_caching_modeoptCOMBOreuse_interp3 options: reuse_interp, interp_all, reuse_all
zeus_max_intervaloptINT41–20
zeus_lagrange_termoptINT30–5
zeus_lagrange_intoptINT61–20
zeus_lagrange_stepoptINT245–100

Outputs (2)

NameTypeDescription
samplerSAMPLER
modelMODEL