Curve CFG Guider (CCN)
Draw your CFG schedule instead of typing one number
- model
- positive
- negative
- sigmas
- curve
- guider
- sigmas
CFG is usually one number for the whole run. But the best CFG for the noisy early steps is rarely the best for the fine detail late - and plenty of people end up at "high guidance early, low guidance late" as a hard-won rule of thumb. Curve CFG Guider (CCN) makes that rule a shape you can draw: a guider that maps your curve's 0–1 output onto min_cfg–max_cfg at every sampling step, so the guidance scale follows the curve instead of sitting flat.
How it works
It's a proper ComfyUI GUIDER built on the core CFGGuider class, so it pairs with SamplerCustomAdvanced (not the plain KSampler - that's what the pack's Neutral Prompt node is for if you want the KSampler path). You feed it model, positive, negative, and sigmas, draw the curve, and at each step it evaluates the curve at the current progress and sets cfg = min_cfg + (max_cfg - min_cfg) * curve(progress).
The important engineering detail is how progress is measured. mode offers two options: step snaps progress to the nearest scheduled step index; sigma measures progress linearly in sigma from sigma_max to sigma_min. The source is explicit that progress is derived from the current sigma rather than a call counter - which is what keeps it correct with multi-evaluation samplers like Heun or DPM++ 2M that evaluate intermediate sigmas. The sigma_decay toggle adds an optional extra attenuation: CFG is additionally pulled toward 1.0 as noise decreases, i.e. weaker guidance in the low-noise phase.
Inputs and outputs
model, positive, negative, sigmas are the main wiring; min_cfg (default 1) and max_cfg (default 7) set the range the curve maps onto; mode, sigma_decay, and the curve_data editor shape the schedule; the optional curve input lets an external Curve Definition drive it. Outputs are guider (into SamplerCustomAdvanced) and sigmas passed through unchanged, so the same schedule feeds the sampler.
Install
ComfyUI Manager → search ComfyCollectorNodes → Install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/valkymaera/ComfyCollectorNodes
Restart, no pip step. Under the (CCN) suffix.
The honest take
CFG scheduling is real, but it's a finishing tool, not a starting point. The KB's guidance history is blunt about the state of play: on distilled models CFG 1 is the designed operating point, and curve-scheduling matters most on models that actually run real CFG across a range (SD/SDXL-lineage, Wan video). If you're on a guidance-distilled checkpoint, a CFG curve is mostly irrelevant because the whole guidance game is different. For the models where it does matter, a simple descending curve - high early, low late - is a genuinely useful pattern, and the sigma-based progress makes it robust in a way a naive step-counter guider isn't. Set the curve flat first to confirm your min/max are right, then shape it.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| sigmas | SIGMAS | — | |
| min_cfg | FLOAT | 1.000 | — |
| max_cfg | FLOAT | 7.000 | — |
| mode | COMBO | 2 options: step, sigma | |
| sigma_decay | BOOLEAN | false | — |
| curve_data | STRING | [{"x":0,"y":1,"in":0,"out":-1,"mirrored":true},{"x":1,"y":0,"in":-1,"out":0,"mirrored":true}] | — |
| curveopt | CCN_CURVE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| guider | GUIDER | — |
| sigmas | SIGMAS | — |