Early-high, late-unconditional (Ventura et al. 2026)
The schedule that finishes with CFG off
- model
- MODEL
Ventura, Achilli, Ambrogioni & Lucibello (arXiv 2026) went looking for where high guidance does its damage, and their answer is the part of the run most schedules ignore: the end. Guidance is applied normally early, then switched off, and the final steps run at a scale of zero - that is, the unconditional prediction alone, with the prompt contributing nothing. They report that this reduces distortions compared to holding guidance to the finish line.
I know how that reads. "Generate the last 20 steps without my prompt" sounds like a way to lose the
prompt. Which is why the honest thing to say is that this is a schedule you test rather than one you
reason your way into: render two seeds at late_scale = 0 and late_scale = 1, and either the
distortions go away or the node isn't for you. The pack's example workflows exist precisely because
side-by-side is the only convincing argument for a schedule.
Inputs
- model - the model wire, before the sampler.
- switch (default 0.5) - where guidance turns off, as a fraction of the run. The paper puts the useful region at 50–70% of the steps. Note this is ComfyUI's percent-by-noise-level, not a step index, so on a Karras scheduler the switch point moves relative to the step counter.
- late_scale (default 0, range -1 to 1) - the scale after the switch.
0is the unconditional prediction alone (the paper's setting),1is the conditional prediction alone (guidance off, but keeping your prompt), and values in between blend the two. That middle ground is the interesting part:late_scale = 0.5is a half-guided finish, which is a gentler version of "cool it down at the end" than the paper's hard switch. - Negative values are accepted - that extrapolates away from your prompt in the final phase. Nobody is stopping you. Bring a seed you don't mind ruining.
There is no scale input: the first phase uses the sampler's cfg. Output is a MODEL.
Install
# ComfyUI Manager: search "CFG Megapack" -> Install -> restart
# or:
comfy node install comfy-cfg-megapack
# or by hand:
cd ComfyUI/custom_nodes && git clone https://github.com/AbstractEyes/comfy-cfg-megapack
The pack has no requirements.txt and nothing to download - torch and the standard library only.
Requires ComfyUI 0.38 or newer; the nodes won't register on older builds.
Why the switch is where it is
The node's mechanism is the pack's shared window machinery. The scale runs from the sampler's cfg
inside the window (here, the first switch fraction of the run) and takes late_scale outside it.
That's why "the switch is ComfyUI's percent of the run (by noise level)" is in the description: the
percentage is measured against the model's own noise schedule, the same convention ComfyUI's
timestep-range nodes use, and it can disagree with the step count on karras-type schedulers.
The pack's docs also note that when the outside mode is "conditional alone", the unconditional pass can be skipped there - those steps get cheaper. That's the same trick CFG Truncation uses, and if speed is what you're after, the two nodes are near-neighbours. The difference is the destination: truncation leaves the prompt in charge after the cutoff; this node leaves the unconditional branch in charge, which is a very different picture.
Combining it with the rest of the pack
This writes the when stage, so a later schedule node replaces it - a paper node of the same stage wins
by being chained last, not by being bigger. Corrections (the CFG Correct node, EP-CFG, CFG-Renorm)
stack instead, and one of them is a natural pairing here: if your problem is that the early guided
phase is over-saturating before the switch, a correction fixes that while this node fixes the finish.
Two diagnostics worth wiring once: CFG Plan Readout prints the whole installed plan on a model, so
you can see whether your schedule survived the chain, and CFG Measure: Per-Step Probe writes the
per-step scale and other numbers to output/cfg_probe/, which for a two-phase schedule is the
quickest way to confirm the switch happens where you think it does. And the container-wide rule:
ComfyUI has one CFG-function slot per model, so another pack's CFG node chained last wins silently.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| switch | FLOAT | 0.500.05–0.95 | Where guidance switches off (paper 50-70% of the steps). |
| late_scale | FLOAT | 0.00-1–1 | The scale after the switch (0 = unconditional, 1 = conditional). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |