Anima TeaCache (BSS)
The biggest speed win, explained without the math hangover
- model
- model
Of all the speed tricks in the ANIMA_BOOSTER pack, this is the one that does the most heavy lifting. SageAttention and torch.compile shave time off every single step; Anima TeaCache (BSS) does something smarter - it skips whole steps' worth of computation when the sampler doesn't strictly need it. On the pack's own numbers, adding TeaCache on top of SageAttention takes you from ~1.8–2.5× to ~2.5–3.5×. That's the difference between "fine, it's fast" and "holy crap it's fast."
TeaCache isn't a new idea - it started with ali-vilab/TeaCache and became a fixture of the HunyuanVideo, Flux, and Wan scenes, where people tune it by a rel_l1_thresh knob. The BSS version is that same trick, rebuilt for Anima's DiT architecture and given an "adaptive" twist.
How it works
During denoising, adjacent steps are looking at nearly the same image in the same state. Most implementations recompute the whole transformer anyway. TeaCache measures how much the timestep embedding actually changed between steps - a "relative L1 distance" - and if it changed less than your threshold, it reuses the previous step's cached transformer output instead of recomputing.
The BSS twist is that the threshold is not fixed. The code splits denoising into three phases:
- Early steps (first ~35%): structure is still forming, so the threshold is multiplied by
early_steps_factor(default 0.4) - meaning it skips less. Get the geometry right. - Middle: the base threshold applies.
- Late steps (past ~70%): details are already locked in, so the threshold is multiplied by
late_steps_factor(default 1.8) - meaning it skips aggressively. The README claims up to 80% of block computations get skipped here without visible loss.
That's the "Adaptive TeaCache" in the README, and it's the part the community came back to asking for after the first fixed-threshold version.
The inputs that matter
threshold- 0.15 default. This is your main speed/quality dial: higher skips more. Start at 0.15 and nudge up if you want more speed, down if you see artifacts.teacache_version-v1 (Legacy Fast)(default) orv2 (Standard Precise). This is the choice that actually matters:- v1 is the aggressive legacy mode with a fixed timestep normalizer. Instant ~2× out of the box on SDE samplers (
er_sde,sde gpu- which happen to be Anima's recommended samplers). Can introduce minor artifacts on Euler A. - v2 uses dynamic timestep normalization, protects early structure fully, and works cleanly on any sampler. It's also the version where
early_steps_factorandlate_steps_factorbehave as documented.
- v1 is the aggressive legacy mode with a fixed timestep normalizer. Instant ~2× out of the box on SDE samplers (
adaptive_mode- on by default; turn it off to go back to a fixed threshold.early_steps_factor(0.4) /late_steps_factor(1.8) - how conservative/aggressive each phase is.
The optional trio: start_percent / end_percent (0–1) restrict caching to a window of denoising, and cache_device (cuda or cpu) moves the cached tensors off the GPU when VRAM is tight. Output is a single patched model - put this node between your Anima loader and KSampler, and run the KSampler's model output from here.
Installing it
Same pack, same install:
cd ComfyUI/custom_nodes
git clone https://github.com/BlackSnowSkill/ANIMA_BOOSTER.git
then restart. No dependencies beyond what's already in the pack - TeaCache is pure Python + PyTorch, no SageAttention required for it to work. Find it under BSS/AnimaBooster.
Where people get burned
- Euler A + v1 = soft/blurry images. The README says this plainly: v1's fixed normalizer can artifact on Euler A. If you're on Euler A, run
v2 (Standard Precise). - Pushing the threshold too far. TeaCache's quality cost grows with the threshold. The wan-video side of the ecosystem learned this the hard way - users there note that high TeaCache hurts face consistency, and there's no reason Anima is immune. If faces start looking off, the first suspect is an over-aggressive threshold, not your sampler.
- VRAM anxiety. If a workflow gets tight on memory with
cache_device: cuda, switch it tocpu. Costs a little speed, frees the VRAM.
Worth pairing with the pack's recommended combo: loader with sage_attention: auto plus torch_compile: True, then this node at threshold 0.15 adaptive on. That's the "3.5–5.0×" configuration the README leads with - just remember the first couple of generations are compile warmup.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| threshold | FLOAT | 0.150.01–1 | — |
| teacache_version | COMBO | v1 (Legacy Fast) | 2 options: v1 (Legacy Fast), v2 (Standard Precise) |
| adaptive_mode | BOOLEAN | true | — |
| early_steps_factor | FLOAT | 0.400.1–1 | — |
| late_steps_factor | FLOAT | 1.81–4 | — |
| start_percentopt | FLOAT | 0.000–1 | — |
| end_percentopt | FLOAT | 1.000–1 | — |
| cache_deviceopt | COMBO | cuda | 2 options: cuda, cpu |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |