Nodes/ComfyUI-ppm/CADS (PPM)
ComfyUI Node

CADS (PPM)

More variety when every render looks the same

By pamparamm·Created 2 years ago·Updated 4 days ago· 265
CADS (PPM)
  • model
  • MODEL
scale0.250
start_percent0.000
end_percent0.400

Ever change the seed a dozen times and get basically the same pose, same framing, same everything? That's mode collapse, and it gets worse at high CFG and with short prompts - the guidance pins the model to one "safe" answer. CADS is the fix. It injects a little annealed noise into the conditioning during the early steps, which knocks the model out of its rut and gives you genuinely different compositions across seeds, without wrecking prompt adherence.

The mechanism, briefly

CADS stands for Condition-Annealed Diffusion Sampling. The idea from the paper: perturb the conditioning with Gaussian noise at the start of sampling - when the broad composition is being decided - and anneal that noise away as sampling proceeds, so by the detail phase the prompt is being followed cleanly again. Early on, the added randomness lets the layout wander to somewhere new; later, it's gone and the model sharpens toward your prompt. Net effect: variety where it matters (composition) without the off-prompt garbage you'd get from just cranking noise the whole way.

It's a model patch - you get a modified MODEL out, no retraining, no new weights.

The inputs

  • model (MODEL) in, patched MODEL out.
  • scale (default 0.25) - how much conditioning noise to inject. This is the diversity dial: higher means more variety but, past a point, weaker prompt adherence and weirder outputs. The 0.25 default is a conservative, sane starting amount - nudge up if you want more spread.
  • start_percent (default 0) - when the noise begins, as a fraction of the run. Usually 0 (from the very start).
  • end_percent (default 0.4) - when the noise has fully annealed away. The default 0.4 means the perturbation lives in roughly the first 40% of sampling - the composition phase - then it's off. That window is the point of the whole technique.

Install

No models, no deps:

  • ComfyUI Manager: search "ComfyUI-ppm", install, restart.
  • Manual: cd ComfyUI/custom_nodes && git clone https://github.com/pamparamm/ComfyUI-ppm, then restart.

Honest take

CADS is one of those tools that's either exactly what you need or completely irrelevant, depending on your symptom. If your generations already vary nicely from seed to seed, skip it - it'll only add randomness you didn't ask for. It shines specifically when you're stuck: high CFG, a terse prompt, and every seed handing you the same picture. Then it's the difference between fighting the seed and actually exploring.

Tuning notes. The default (scale 0.25, first 40%) is a good, gentle baseline - start there before you touch anything. If you want more variety, raise scale gradually and watch adherence: too much and subjects start drifting from your prompt or getting anatomically loose. Keep the noise confined to the early window (that end_percent around 0.4) so the detail phase stays clean; annealing it away is what separates CADS from just "add noise and pray."

One expectations check: like the other classic-CFG-era tools in this pack, CADS is aimed at models where high guidance causes the sameness in the first place - SD1.5 and SDXL. On distilled models already running at CFG ~1, the problem it solves is mostly absent. Note also this node is thin on README documentation, so lean on A/B testing: fix a prompt, run a seed sweep with it bypassed, then with it on, and judge the spread of results rather than any single image.

Pack rule: erroring after a ComfyUI-ppm update? Delete and re-add the node.

Categorymodel_patches/unet

Inputs (4)

NameTypeDefaultDescription
modelMODEL
scaleFLOAT0.2500–10
start_percentFLOAT0.0000–1
end_percentFLOAT0.4000–1

Outputs (1)

NameTypeDescription
MODELMODEL