Nodes/ComfyUI_Step1X-Edit/Step1X-Edit TeaCache Generate (2x faster)
ComfyUI Node

Step1X-Edit TeaCache Generate (2x faster)

Same Step1X-Edit node, roughly twice as fast

By raykindle·Created about a year ago·Updated about a year ago· 50
Step1X-Edit TeaCache Generate (2x faster)
  • model
  • input_image
  • image
prompt
negative_prompt
num_steps28
cfg_guidance6.0
seed42
size_level512

Look at the inputs on this node and you'll think the README lied: they're identical to the plain Step1X-Edit Generate. Same prompt, same num_steps, same cfg_guidance, same size_level. The speedup isn't hiding in this node - it's in the model bundle you feed it. The TeaCache Generate is the sampling end of the pack's "2x faster" pair, and its one real job is knowing how to talk to the TeaCache model loader instead of the plain one.

If you want to run Step1X-Edit at all, this is honestly the node to reach for. The model is slow enough that the plain version is a "prove the install works" exercise, and TeaCache at its default threshold buys roughly 2x for quality loss the README calls minimal. You'll only notice the difference when the cache gets too aggressive and the edit gets mushy (more on that below).

How it works

TeaCache (the technique comes from the video-diffusion world, adapted here from the Flux implementation) attacks the redundant part of denoising. Between steps, the model's input changes only slightly, yet it recomputes the whole transformer residual every time. TeaCache measures that change - the relative L1 distance between the current step's modulated input and the previous one - accumulates it across steps, and when the running total stays under a threshold, it reuses the last computed residual instead of running the transformer again.

Two implementation details worth knowing. First, the first and last denoising steps always compute for real; skipping those would visibly wreck the image. Second, this node calls model.reset_teacache() at the start of each generation so the accumulator state doesn't leak between runs. The actual skip decisions happen inside the wrapped DiT that the loader produced - which is exactly why the two TeaCache nodes must stay paired. Plug a plain loader into this generate node and it'll crash on the missing reset_teacache call; plug the TeaCache bundle into the plain generate and it just silently runs with no caching.

The inputs that matter

Same set as the plain generate: model (must come from the TeaCache Model Loader), input_image, prompt and negative_prompt (both natural language, and yes, the negative genuinely steers CFG here), num_steps (default 28), cfg_guidance (default 6.0), seed, and size_level (the output canvas max, default 512). Output is a single image wire into Save/Preview.

The speed knob lives on the loader, not here. If your edits start looking like the model is phoning it in - details flattening, changes half-applied - the fix is to lower teacache_threshold on the loader side and rerun, not to touch anything on this node. Flip verbose on there too if you want to watch the console announce exactly which steps got cached; it's a great way to understand whether the cache is doing anything at all.

Installing and pairing

Same pack, same install as the plain node (see the Step1X-Edit Model Loader article - the flash-attn step is the one that gets you). The only difference is which two nodes you grab from the "Step1X-Edit" category: Step1X-Edit TeaCache Model Loader and Step1X-Edit TeaCache Generate. Keep them as a set. And remember the model is still ~31GB VRAM hungry without offloading - the cache makes it faster, not lighter.

CategoryStep1X-Edit

Inputs (8)

NameTypeDefaultDescription
modelMODEL
input_imageIMAGE
promptSTRING
negative_promptSTRING
num_stepsINT281–100
cfg_guidanceFLOAT6.00–20
seedINT42
size_levelINT512256–1024

Outputs (1)

NameTypeDescription
imageIMAGE