Skimmed CFG
The anti-burn model patch, now with percentage controls
- model
- MODEL
This is the main Skimmed CFG node under its current name. If you've seen people raving about running CFG at 30–60 without the image burning, this (or its older name, plain "Skimmed CFG") is what they're using. It's a model patch from the Extraltodeus/Skimmed_CFG pack that caps how far classifier-free guidance can push the latent at each denoising step, so you get high-CFG prompt adherence where it's safe and get spared the oversaturation where it isn't.
The pack renamed its nodes in January 2026 when it was rewritten to ComfyUI's current extension API. Same mechanism as the original, but the rewrite exposed three timing controls that used to be hardcoded - which is exactly the thing you want if you've ever wished the skimming would stop before the final refinement steps.
How it works
The node registers a pre-CFG function on a cloned model. Each step, before the CFG extrapolation runs, it compares the positive and negative predictions and builds a mask of "outer influence": latent elements where the predictions disagree and the extrapolated result would overshoot its own direction. Those elements get re-computed at the skimming_cfg scale instead of the sampler's full CFG. Same anti-burn story as the pack's headline node, with more knobs.
Wire it as model loader → node → KSampler; the output is a patched MODEL.
The inputs that matter
- skimming_cfg (default 7, 0–10) - the fallback scale for the "bad" values. 2–3 max anti-burn, 4 is the cruise setting, 5–7 for strong color. Set to -1 and it uses the sampler's current CFG scale instead, which is handy when you don't want to think about it.
- full_skim_negative - fully skims the conflicting part of the negative conditioning (treats it as 0).
- disable_flipping_filter - drops one of the three mask conditions for broader, more aggressive skimming; meant to pair with full_skim_negative.
- start_at_percentage / end_at_percentage (0 to 1) - when skimming kicks in and stops, as a fraction of the denoise. The old version ran 0→1 always; now you can, say, start skimming at 0.3 or cut it off at 0.8 so the last refinement steps run un-skimmed.
- flip_at_percentage - flips the flipping filter at a chosen point mid-denoise. 0 disables it. This is the "Timed flip" behavior folded into the main node.
Output: MODEL.
Install
The pack has zero pip dependencies and downloads no models - it's a single Python file. In ComfyUI Manager search "Skimmed_CFG" (Extraltodeus) and install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Extraltodeus/Skimmed_CFG
Restart ComfyUI after either route.
Troubleshooting
- Nothing happens at CFG 1. The hook needs an unconditioned pass, and ComfyUI skips it at CFG 1. On guidance-distilled models (Flux, turbo checkpoints) raise the sampler CFG first - that's the whole point of this node anyway.
- Fused fingers or noise at low settings. A very low skimming_cfg with too few steps needs more steps; the README is blunt that skim too low + steps too few can fuse fingers.
- SDE samplers can still burn a little - the "Timed flip" sibling was built for them.
- If you opened an old workflow that references the node as "Skimmed CFG" and it shows as missing after updating, just swap in this node; the MODEL output is interchangeable.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| skimming_cfg | FLOAT | 7.00–10 | The fallback scale for the 'bad' values. Set to -1 to use the current CFG scale. |
| full_skim_negative | BOOLEAN | false | If enabled, fully skim negative conditioning (set to 0). |
| disable_flipping_filter | BOOLEAN | false | Disable the flipping filter for skimming detection. |
| start_at_percentage | FLOAT | 0.000–1 | Start applying skimming at this percentage of the denoising process (0 = start, 1 = end). |
| end_at_percentage | FLOAT | 1.000–1 | Stop applying skimming at this percentage of the denoising process (0 = start, 1 = end). |
| flip_at_percentage | FLOAT | 0.000–1 | Flip the flipping filter at this percentage. Set to 0 to disable. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |