Pre CFG multiplier
A raw multiplier on your noise predictions — handy, and the default is a trap
- model
- MODEL
"Pre CFG multiplier" is the bluntest instrument in the pre-CFG pack: it takes one of your two noise predictions and multiplies it by a number. That's it. No clever math, no per-channel surgery. Sometimes blunt is exactly what you want.
Remember how sampling works in ComfyUI. Each step, the model predicts twice: once conditioned on your prompt (cond) and once on the negative (uncond). CFG combines them as uncond + scale * (cond - uncond). A pre-CFG node runs before that merge, so it can reshape the raw predictions. This one just scales them. Multiply cond by 1.2 and your prompt's influence gets louder. Scale uncond down to 0.5 and the negative's drag weakens - a quick way to make a negative prompt less dominant without rewriting it. The selection dropdown (both / cond / uncond) picks which prediction you're scaling, and value is the multiplier.
Now the trap, and it's a real one: the default value is 0. Drop this node into a workflow, hit Queue, and you've multiplied a prediction by zero. Depending on what you selected, that's a black image, a garbage mess, or CFG running against an empty term. If you want the node to be a no-op, set value to 1. The author ships a whole family of experimental nodes with defaults tuned for his own testing, and this is the one where the default will bite you first.
It's worth being clear about what this isn't: it's not a clean "effective CFG" rescale. Multiplying cond by v turns the CFG formula into v·scale·cond + (1−scale)·uncond, which is a real but weird guidance curve - the kind of thing you tweak to see what happens, not a principled dial. For the "make my CFG effectively 4 instead of 7" job, use "Pre CFG variable scaling" or the pack's automatic-scale node instead. This one is for experiments: shrinking the negative's contribution, or pushing a prompt past where CFG will take you.
Inputs: model (patched, right after the loader), selection, value (−100 to 100), enabled. Output: a single MODEL feeding your KSampler. Like every node in this pack, it chains - you can stack several and the order matters, which is the whole point of having so many.
Installing the pack is the usual drill, and there's nothing heavy under the hood:
cd ComfyUI/custom_nodes && git clone https://github.com/Extraltodeus/pre_cfg_comfy_nodes_for_ComfyUI
...or grab it via ComfyUI Manager by searching pre_cfg_comfy_nodes_for_ComfyUI, then restart. No extra dependencies, no model files, no GPU weights to fetch - one Python file using ComfyUI's own sampler hooks.
One gotcha shared across the pack: if your workflow runs at CFG 1 or on a guidance-distilled model, there's no negative prediction being computed, and the node's uncond/both branches quietly skip. On plain SD 1.5/SDXL with a negative prompt, it just works. And if the node seems to do nothing at all, check value isn't sitting at its default.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| selection | COMBO | 3 options: both, cond, uncond | |
| value | FLOAT | 0.00-100–100 | — |
| enabled | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |