Nodes/Kandinsky T8/Kandinsky 6 MagCache (Pro)
ComfyUI Node

Kandinsky 6 MagCache (Pro)

MagCache Skips Half the DiT — For Exactly One Model You Probably Don't Have

By T8mars·Created 22 days ago·Updated 21 days ago· 6
Kandinsky 6 MagCache (Pro)
  • model
  • MODEL
◄steps50►
◄threshold0.0200►
◄max_skip_steps4►
◄retention_ratio0.10►

Most caching nodes in this space are a gamble: you trade a bit of consistency for a chunk of time and hope nobody notices the flicker. MagCache is the calibrated version of that trade, with a released ratio table measured on the actual model rather than a threshold you tune by vibes.

And in this pack, it's the node you'll skip. Here's why, up front, so you don't waste an evening.

What it does

Kandinsky 6 Pro is a 60-block DiT stack, and every denoising step runs all of it. MagCache watches the residual magnitude across steps and, when the calibration says a step's contribution is going to be nearly the same as the last one's, skips the block-stack evaluation entirely - the author's description is "skip about half of the expensive DiT block-stack evaluations." That's the same family as TeaCache on the Wan side, which people use and then disable when face consistency starts drifting. Except here the ratios are a fixed table baked into the pack, split into separate t2va and i2va interleaved cond/uncond lanes, resized to fit whatever step count you're running.

State is kept per-generation and reset on ComfyUI's pre-run and cleanup hooks, so a second run doesn't inherit the first one's skip accumulations. Sane engineering.

Why it usually won't help you

The pack ships three DiTs: Lite, Lite distill, Pro distill. The MagCache node is calibrated for Pro - model dimension 4096 - and its two guard rails mean the shipped models are the wrong ones:

  • On Lite, it raises. Not warns. Kandinsky6 MagCache is calibrated for K6 Pro only; expected model_dim=4096, and it tells you not to attach it to Lite or VSR.
  • On distilled Pro, it silently returns a clone with the cache state removed - an automatic bypass, because a 10-step PiFlow schedule isn't the 50-step trajectory the calibration describes.

So the honest summary: you'd use this if you're running the undistilled Pro checkpoint, where the 50-step path is expensive enough that skipping half the stack matters. The pack's own validation notes that plain Pro wasn't even downloaded as part of the release, so the cache was verified for lifecycle and state correctness rather than timed on real Pro weights. Treat the speedup as the author's claim, and measure it yourself before you build a workflow around it.

The inputs

model - the MODEL from your UNETLoader. Output is a MODEL, so it sits inline: UNETLoader → Kandinsky 6 MagCache (Pro) → sampler.

steps - must match the sampler's step count. Default 50, which is the base Pro default. This isn't decoration: the ratio table is resampled to this length, so a mismatch means the schedule is wrong for the run. On a 50-step model with a 20-step widget value, you're not "being conservative," you're desynced.

threshold - 0.02 by default. Lower means fewer skips and more compute. This is the main quality dial.

max_skip_steps - 4. The cap on consecutive skips, so the model can't coast through a stretch of steps where the residual happens to look flat. Raising it buys speed and risks exactly the failure caching is famous for.

retention_ratio - 0.1, the fraction of steps retained regardless. Same story.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-Kandinsky-T8.git
cd Comfyui-Kandinsky-T8
python -m pip install -r requirements.txt

Restart with ComfyUI's Python environment. ComfyUI 0.39.0+, comfy-kitchen 0.2.37+, INT8-tensor-core NVIDIA GPU. MagCache is pure Python on the ComfyUI side - no extra kernels, no extra downloads beyond the DiT you already have.

Where it goes wrong

Attaching it to Lite and reading a crash as a pack bug. It's doing what it says on the tin. The tooltip has said "Not calibrated for K6 Lite or VSR" since release.

Confusing "bypassed" with "working." With Pro distill in the graph, the node runs green, produces a model, and caches nothing at all. If you're benchmarking and seeing zero change, that's the bypass, not a broken install.

Steps drift. Change the sampler to 30 steps for a speed test and forget to change steps here, and you've given the cache the wrong trajectory. The two numbers move together.

Assuming caching is free. Every skip is an approximation pulled straight out of the diffusion trajectory. Caching on video tends to show up as flicker, drift on faces, or dialogue motion that goes slightly mushy rather than as an obvious artifact. If a clip looks almost right and you can't say why, this node is the first one to remove.

CategoryKandinsky 6

Inputs (5)

NameTypeDefaultDescription
modelMODEL—
stepsINT501–1000—
thresholdFLOAT0.02000.0001–1—
max_skip_stepsINT41–32—
retention_ratioFLOAT0.100–0.95—

Outputs (1)

NameTypeDescription
MODELMODEL—