Nodes/Eric Qwen-Edit & Qwen-Image Nodes/Eric Qwen-Edit Spectrum Accelerator
ComfyUI Node

Eric Qwen-Edit Spectrum Accelerator

Skip half the denoising steps without retraining anything

By EricRollei·Created 6 months ago·Updated 4 months ago· 20
Eric Qwen-Edit Spectrum Accelerator
  • pipeline
  • pipeline
enabletrue
warmup_steps3
window_size2
flex_window0.75
w0.50
lam0.10
M4
min_steps15

Eric Qwen-Edit Spectrum Accelerator is a free speedup that sits between your loader and any edit node. Wire it in, and the transformer stops running on every denoising step - it predicts what the skipped steps would have produced using a technique from a CVPR 2026 paper (adaptive spectral feature forecasting) and only re-runs the real thing when the prediction would start to drift. The README claims ~3-5× faster, and for a 20B model running two forward passes per step (true CFG), that's the difference between waiting and actually iterating.

How it works, without the paper

Think of it as a caching system with a predictor attached. For the first few steps it runs the full transformer so it has real data to learn from. After that, on the steps it skips, it fits a Chebyshev polynomial to the recent feature history and extrapolates the transformer's output instead of computing it. Later denoising steps change less, so it gets progressively lazier - that's the "flexible window" doing its job. The defaults are tuned and honestly fine: warmup_steps=3 (always full-compute at the start), window_size=2 (every other step cached after warmup), flex_window=0.75 (windows grow as steps progress), w=0.5 (equal blend between the Chebyshev and Newton forward-difference predictors), lam=0.1 (ridge regularization), M=4 (polynomial degree).

Two inputs actually matter to a beginner:

  • enable - the on/off switch. Set it False and the node is a pure pass-through, which makes it easy to A/B.
  • min_steps (default 15) - the guardrail. Below this step count Spectrum auto-disables itself, because there aren't enough steps to make forecasting worthwhile. This is the one that trips people up: if you're running an 8-step lightning LoRA (the default for this pack's edit nodes!), Spectrum silently does nothing. That's correct behavior, not a bug - you just don't need acceleration on 8 steps.

The other knobs (w, lam, M, flex_window) are the "if quality drops" levers. If you see artifacts appear in the mid-steps, lower flex_window toward 0 (fixed window, more real evaluations) or bump warmup_steps to 4. If you want it more aggressive, raise window_size.

The output is the same QWEN_EDIT_PIPELINE socket you fed in - the acceleration config is stored on the pipeline object and takes effect on the next denoising run. So the wiring is: Loader → Spectrum → [LoRA] → Edit node. You can stack it before any edit node (Image, Inpaint, Multi-Image, Style Transfer), and there's a sibling version for the generation side called Eric Qwen-Image Spectrum.

Where it pays off

Spectrum earns its keep on the runs with lots of steps and true CFG enabled - every step is really two transformer passes, so skipping steps doubles the savings. On a 50-step base-model edit it's the difference between a coffee break and a lunch break. On 8-step lightning runs, leave it out; it just adds a config object to your graph for no gain.

One honest caveat: the auto-disable and the math behind it are the sort of thing that makes people distrust the node ("it did nothing!" or "it changed my image!"). If you're getting different results with it on, check your step count first - under min_steps it isn't even running, so any difference is coincidence. Install is the shared pack route: ComfyUI Manager search "Eric Qwen Edit", or git clone https://github.com/EricRollei/Eric_Qwen_Edit_Experiments into custom_nodes/, restart, and the loader still needs its ~54 GB Qwen-Image-Edit model on disk.

CategoryEric/QwenEdit

Inputs (9)

NameTypeDefaultDescription
pipelineQWEN_EDIT_PIPELINE
enableBOOLEANtrueEnable/disable Spectrum acceleration.
warmup_stepsoptINT31–20Number of initial denoising steps that always run the full transformer. More warmup = better forecaster initialization but less speedup. 2–4 recommended.
window_sizeoptINT22–10Base period between actual transformer evaluations (in steps). window_size=2 means every other step is cached after warmup. Higher = more aggressive caching.
flex_windowoptFLOAT0.750–2Window growth rate — the window_size increases by this amount after each actual eval. Later diffusion steps change features less, so larger windows are safe. 0 = fixed window.
woptFLOAT0.500–1Blend weight between Chebyshev predictor (w=1) and Newton forward-difference predictor (w=0). 0.5 = equal blend (recommended).
lamoptFLOAT0.100.001–10Ridge regularization for Chebyshev regression. Higher = smoother predictions, lower = more responsive to recent data.
MoptINT41–8Chebyshev polynomial degree. Higher M captures more complex feature trajectories but risks overfitting with few data points.
min_stepsoptINT155–100Spectrum auto-disables when num_inference_steps < min_steps. Low step counts (e.g. 8-step lightning LoRA) don't benefit.

Outputs (1)

NameTypeDescription
pipelineQWEN_EDIT_PIPELINE