TV-CFG: stage-wise guidance (Jin et al. 2025)
Guide hardest in the middle, leave the start and end alone
- model
- MODEL
Every schedule in this pack is an answer to one question: which part of the run deserves the guidance? Guidance Interval says the middle. CFG Truncation says the beginning. Wang's schedules say the end, gradually. TV-CFG says the middle, and only the middle - a triangular ramp that rises from 1 to 2w - 1 at a peak, then falls back.
The pitch is that composition is decided in the middle steps, when the layout is still fluid but the model has stopped working from pure noise. Early steps under a heavy scale lock the whole frame to a prompt gluttonously; late steps under a heavy scale cook texture and highlights. Put the weight where the structure forms, and let the ends run cool.
TV-CFG is Jin, Shi & Gu (ICLR 2026), and the node is a single-knob implementation of it.
The mechanism
The scale over the run is triangular: 1 at the first step, 2w - 1 at the peak, 1 at the last step, where w is the sampler's own cfg. The shape is normalized on the sampler's own step count - it isn't a fixed step window, it's a share of whatever schedule you're running - so the time-average stays at w. That normalization is the important engineering detail: switching TV-CFG on doesn't silently raise the amount of guidance you're applying, it redistributes it.
peak (default 0.5) sets where the top of the triangle sits. The paper reports 0.4–0.6 as equally good, which is a polite way of saying don't agonise over it.
Inputs and output
Just two inputs, and one of them is the model:
model- loader → node → sampler.peak- default 0.5, range 0.05–0.95: where the peak sits, as a share of the run.
Output: MODEL. There's no scale input on this node - the schedule is built around the sampler's cfg, so if you want a taller triangle, raise the cfg in the sampler and let TV-CFG normalize around it. That's a design choice worth noticing, because it means TV-CFG never silently disagrees with the cfg number in your head.
Where it actually helps
Two situations, in my experience of this class of method:
- You're pushing the scale for detail and the early steps are getting bossy. The first five to ten steps under a high scale commit to a layout early; a mid-peaked schedule keeps them quiet and lets the prompt's structure emerge instead.
- Flow-matching models with a shift. The schedule is normalized against the model's own schedule, so changing the timestep shift moves the peak along with it rather than leaving it stranded. Anima fans get this for free; there's an example graph in the pack's showcase.
If your problem is late-step artefacts specifically - greasy texture, glowing highlights - the peak is in the wrong place for you and you want Wang's rising schedules or the Earlier-is-better end of the family. TV-CFG is a structure-first tool.
It costs nothing at runtime. No state, no extra pass, no buffer.
Install
Manager → search CFG Megapack → install → restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/AbstractEyes/comfy-cfg-megapack
No model downloads, no pip step, no requirements.txt - the whole pack runs on torch and the standard library. It does demand a recent ComfyUI, since it's built on comfy_api.latest (README: tested on 0.38.0, GPU and CPU). On an older build, nothing from the pack will appear.
Where people get burned
Comparing it against plain CFG at a fixed cfg and concluding "no difference". TV-CFG keeps the average scale identical by construction, so the difference is a redistribution, not a boost. You'll see it as a freer early layout and calmer late texture - not as a stronger prompt. If you want the mean scale to go up, that's a change to the sampler's cfg.
It's a "when" node. It writes the same stage as CFG When and the other schedule paper nodes (Wang's schedules, C2FG, Early-high-late-unconditional, CFG Truncation). Chain two and the later one replaces the earlier, with no warning beyond the node's absence in the Readout.
The slot conflict. Another pack's RescaleCFG / Mahiro / RenormCFG chained after this one takes ComfyUI's single CFG-function slot. TV-CFG will be listed nowhere and do nothing; CFG Plan Readout shows it immediately.
Very short runs. On an 8-step distilled schedule the triangle is coarse - the peak lands on one or two steps, so you're almost binary. TV-CFG is for 25–50 step renders on a non-distilled base. If you're running a Lightning or Turbo variant, the guidance is already baked in and this is the wrong tool.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| peak | FLOAT | 0.500.05–0.95 | Where the peak sits (share of the run; 0.4-0.6 equally good). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |