CFG Override
Different CFG for different parts of the run
- model
- MODEL
CFG Override makes your cfg a schedule instead of a single number. You give it a model, a CFG value, and a percent range, and it patches the model so that within that range of the sampling run, the guider's CFG is forced to your value. Outside the range, everything proceeds normally. It's ComfyUI's answer to "I want strict prompt adherence early, but I want the model to breathe in the final steps" - without rebuilding your sampler.
It ships with ComfyUI core (comfy_extras.nodes_custom_sampler) and it's a recent addition - the entire corpus of discussion around it is mid-2026, almost all of it inside Ideogram 4 workflows, which is where it found its first real use.
How it works
The description in the node itself is the cleanest statement: "Override cfg to a fixed value over a [start, end] percent (sigma) range. With multiple overrides, the one nearest the sampler wins on overlap."
Mechanically it converts your percentages to sigma values using the model's sampling setup (percent 0 = noisiest start, percent 1 = cleanest end), then wraps the predict_noise step so that when the current sigma falls inside [sigma_lo, sigma_hi], the guider's cfg is temporarily swapped to your value and restored afterward. Because it works by patching the model, you can chain multiple CFG Override nodes in series and build a piecewise CFG profile across the whole run.
The inputs:
model- the model to patch. It outputs a patchedMODEL.cfg- the value to force during the range (default 1).start_percent- where the override begins, 0–1 (default 0).end_percent- where it ends, 0–1 (default 1).
The use case that made it famous
In Ideogram 4 workflows, people started dropping the CFG in the final stretch: run at a higher CFG for the bulk of the image, then let it drop for the last ~10% so the model has "more room to interpret your prompt" and refine fine detail instead of over-committing to a strict adherence lock. One 17MP Ideogram thread (1u0qf2z) describes exactly that reading: "change the cfg to 'x' for the last 10% of the image… if you start with a cfg of 7 and then switch to a cfg of 3 towards the end you are giving the model more room to interpret your prompt." Same idea applies to SDXL and anything with a real CFG mechanism - lower CFG late = freer final detail.
Where people get burned
- It only works where a guider reads CFG. The patch swaps the guider's
cfgvalue. If you're on a guidance-distilled model at CFG 1 with a BasicGuider, there's nothing to override - no unconditional pass, no CFG dial to move. - Reading percentages as steps.
start_percent/end_percentmap to sigma, and sigma doesn't move linearly with step number. On a Karras-style schedule the "last 10%" can cover very different step counts than you expect. - Multiple overrides. With several in series, "the one nearest the sampler wins on overlap" - that's the designed behavior, but it means ordering matters and debugging a three-override stack is fiddly. Test with one override at a time, fixed seed.
- Expecting a CFG widget afterward. It outputs a patched model, not a guider. The actual CFG value still lives on the CFGGuider for the rest of the run.
If you've ever wished CFG could change mid-run, this is the native way to do it. For one-model workflows where you just want a schedule of guidance instead of one number, it's a clean five-node upgrade.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| cfg | FLOAT | 1.00–100 | — |
| start_percent | FLOAT | 0.0000–1 | — |
| end_percent | FLOAT | 1.0000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |