Skip CFG on first step
Skip guidance on the noisiest step
- model
- MODEL
Here's a small, well-supported idea: on the very first sampling step the image is basically pure noise, so the model's guess at "which way does the prompt want me to go" is close to garbage. Applying full CFG to that garbage direction mostly just injects overexposure and early-step artifacts that haunt the rest of the render. SkipFirstStepCFG does exactly what it says - it turns CFG off for that opening slice so the walk can settle before guidance kicks in. Node menu name: "Skip CFG on first step."
The idea, grounded
This is the same insight behind the popular CFG-Zero* trick (use_zero_init): the earliest, noisiest steps are where strong guidance does more harm than good, so you skip them. When guidance runs on a still-random latent, it amplifies noise in a direction that isn't meaningful yet, and that shows up as blown contrast and structural artifacts you then fight for the rest of sampling. Skip that step and the model gets to establish coarse structure first, then you steer it. The net effect people report from this family of tweaks is cleaner structure and fewer early-step artifacts at essentially no cost.
It's a model patch - MODEL in, MODEL out - so it drops in front of a plain KSampler and applies during sampling. No custom sampler required.
The input that matters
There's really only one:
- skip_percent (default 0.01) - the fraction of the schedule to disable CFG for, measured from the start. 0.01 means "the first 1% of sampling," which on a normal step count is essentially just the first step. That default is deliberately tiny and is where you should start. Bump it up a little (0.02–0.05) if you want to skip guidance for the first couple of steps; keep it small.
MODEL in, patched MODEL out. Wire it between your loader and sampler.
Install
No models, no dependencies.
- ComfyUI Manager: search "ComfyUI-ppm", install, restart.
- Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/pamparamm/ComfyUI-ppm, then restart.
Common issues & troubleshooting
You see no difference. Expected - this is a subtle, low-risk tweak, not a transformation. It nudges the earliest steps and gets out of the way. Compare on a fixed seed with the node bypassed versus active, and look specifically at early-forming structure and highlight blowout, not the whole image at a glance.
Cranking skip_percent degrades things. Skip too much of the schedule and you're throwing away guidance you actually needed - structure goes vague and prompt adherence slips. This is a one-or-two-step tool. If a higher value makes it worse, that's the signal to come back down.
No real CFG, no effect. On distilled or guidance-distilled models running at CFG 1 (Flux, Z-Image Turbo), there's no classifier-free guidance to skip in the first place, so this does nothing meaningful. It's for the SD 1.5 / SDXL regime where you're running real CFG.
Treat it as a nice-to-have. Like most subtle sampling patches, if a workflow misbehaves after you add it, bypass it and confirm it's actually the culprit before going deep - it's easy to blame and easy to rule out.
Pack rule from the author: if it errors after a pack update, delete the node and re-add it.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| skip_percent | FLOAT | 0.0100–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |