Conditioning (Add Noise)
Jittering Your Prompt Embeddings on Purpose
- conditioning
- CONDITIONING
Most people think of conditioning as a fixed input: encode your prompt, feed it to the sampler, done. Conditioning (Add Noise) is for when you deliberately want that not to be true. It adds seeded Gaussian noise directly to your conditioning embeddings - and to pooled_output when present - so you can inject controlled randomness into what the sampler is being told, rather than into the latent. The difference matters: latent noise scrambles the image, conditioning noise scrambles the instructions.
The honest use cases: squeezing variation out of the same seed by nudging the prompt embedding, weakening prompt adherence by a controlled amount, or batch-generation runs where each sample gets a slightly different semantic nudge. The default strength is a timid 0.1 because embeddings are high-dimensional and don't tolerate much abuse - a little goes a surprisingly long way.
How it works
The node walks the conditioning list, and for each [embedding, metadata] entry it computes the embedding's standard deviation, draws matching Gaussian noise from a seeded generator, scales it by std * strength, and adds. The metadata dict is copied so nothing else about your conditioning is disturbed. If pooled_output exists (it does on most modern text encoders - it's the global "image-level" embedding used heavily by SDXL and Flux-style models), it gets the same treatment with its own std. Because everything scales by per-tensor std, strength means roughly the same thing across different encoders.
The inputs that matter
conditioning- any CONDITIONING output, straight from a CLIP Text Encode node.seed- reproducibility. Same seed, same nudge, same result.strength- relative to each tensor's std.0.05–0.2is the sane range for most models; the default0.1is a fine starting point.
Output is a single CONDITIONING, wired into your sampler's positive or negative port like any other.
Installing it
Ships in the Skoogeer-Noise pack. ComfyUI Manager → search "Skoogeer-Noise", or:
cd ComfyUI/custom_nodes
git clone https://github.com/ttulttul/Skoogeer-Noise
Restart ComfyUI. Only dependencies are torch, numpy>=1.26, einops, pyyaml>=6.0.3 - no downloads beyond the pack itself.
Common gotchas
The main trap is cranking strength and wondering why your subject dissolved. At 0.5+ on an SDXL embedding you're not nudging, you're rewriting the prompt into gibberish. Keep it low and, when you want reproducible batch variety, pair it with the pack's Next Seeds node so each batch item gets its own deterministic seed offset - that's the combo this node was built for. Also note it only touches embeddings and pooled outputs; it won't rescue a conditioning that's already degenerate. And no, this isn't a sampler-noise substitute - the noise is in prompt space, not image space.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning | CONDITIONING | Conditioning list to perturb with Gaussian noise. | |
| seed | INT | 00–18446744073709550000 | Seed that drives the conditioning noise. |
| strength | FLOAT | 0.100–5 | Noise strength relative to each tensor's standard deviation. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |