Nodes/NDDG_Great_Nodes/🍄Great Conditioning Modifier
ComfyUI Node

🍄Great Conditioning Modifier

Perturb your prompt's embeddings instead of rewriting it

By NeoDroleDeGueule·Created 10 months ago·Updated 9 months ago· 14
🍄Great Conditioning Modifier
  • conditioning
  • CONDITIONING
modification_strength0.00
seed0
modification_method🔸semantic_drift🔹
debug_modefalse

You know the feeling: you've rewritten a prompt eight times, the model still isn't drifting from what it decided you meant, and you're stuck between "more adjectives" and "delete everything." The Great Conditioning Modifier is a different lever for the same problem. Instead of changing words, it reaches into the conditioning - the encoded prompt embedding that ComfyUI hands the sampler - and perturbs the numbers directly. It's prompt engineering after the fact, on the tensors.

It's the flagship node of the NDDG_Great_Nodes pack, and it's aimed at the current generation of models: the README names Qwen-Image, Z-Image, Flux 1 and Flux 2. Those are all modern LLM-text-encoder models, the same family the modidex KB tracks as the 2026 transition away from SDXL-era conditioning. On an SD1.5/SDXL pipeline this node has nothing interesting to grab onto, so don't bother there - it lives on the new stuff.

How it works

Your prompt gets encoded into a conditioning structure (a tensor, or a list of tensors, or dicts wrapping them). The node walks that whole structure, finds every modifiable floating-point tensor, and applies one of 14 modification methods to it. There's real math behind each one - the source shows noise scaled by the tensor's own standard deviation for guided_noise, a Perlin-style interpolated noise field for perlin_noise, SVD component filtering, an FFT low/high-pass filter, PCA via eigendecomposition, random rotations in embedding space for spherical_rotation, block shuffling, quantization... it's not hand-waving. It's also defensive: non-float tensors get skipped, and any method that produces NaN gets rolled back to the original. There's even a debug_mode toggle that prints exactly which tensors were modified and by how much - genuinely useful the first time you run it, because it tells you the node is actually doing something.

Two of the three inputs do the steering:

  • modification_method - the 14 choices, all prefixed with the author's 🔸/🔹 markers (the number of 🔸 hints at how strong the effect is). Each method has a personality, and the README's guide is worth reading once.
  • modification_strength - from -10 to 10, and the sign matters as much as the size. Positive values push the prompt in the method's stated direction; negative values mostly do the opposite, like negative temperature_scale stabilizing the image. Zero passes everything through untouched.

The output is a CONDITIONING you wire straight into the positive or negative input of your sampler, exactly where the original conditioning went.

Where to start

The author's own beginner path is the honest one: start with guided_noise at 0.2–0.4 (proportional, predictable, great for generating several similar-but-different versions of one image) and temperature_scale at 0.5–0.7 (the "creativity" dial). Go smaller than you think you need - the strength range goes to ten, but the sweet spot for most methods is under 1. And don't forget the node's seed: same parameters, different seed, different variation. That's the whole game with this node.

The bundled JavaScript replaces the strength input with a proper draggable slider, which is nice because a floating-point box in a -10..10 range is fiddly by hand.

Gotchas worth knowing

The pack's own docs flag a couple of landmines. token_dropout and embedding_mix are marked "does not work with Flux" - they depend on the token-structure quirks that some of these text encoders don't expose the same way. fourier_filter is labeled "non-functional" for positive values and only really does anything useful as a low-pass filter on the negative side. And because these are fast, cheap tensor operations, it costs you almost nothing to try - worst case, the image changes in a way you don't like and you dial it back.

How to install it

It's part of NDDG_Great_Nodes, so you install the pack once and get all five nodes:

cd ComfyUI/custom_nodes
git clone https://github.com/NeoDroleDeGueule/NDDG_Great_Nodes

or search NDDG_Great_Nodes in ComfyUI Manager, then restart. No models to download, no extra pip deps beyond what ComfyUI ships (matplotlib is imported at pack load for another node's preview, so a missing-matplotlib import error breaks the whole pack - pip install matplotlib fixes it).

Is it a magic prompt knob? No. But when you want variations that feel like the same prompt seen sideways rather than a new prompt, it's the fastest honest way to get there.

Category🍄NDDG/conditioning

Inputs (5)

NameTypeDefaultDescription
conditioningCONDITIONING
modification_strengthFLOAT0.00-10–10
seedINT00–18446744073709550000
modification_methodCOMBO🔸semantic_drift🔹14 options: 🔸semantic_drift🔹, 🔸🔸🔸token_dropout🔹🔹, 🔸🔸🔸gradient_amplify🔹🔹, 🔸🔸🔸guided_noise🔹🔹🔹, 🔸quantize🔹🔹🔹🔹, 🔸🔸🔸perlin_noise🔹🔹🔹🔹, +8
debug_modeBOOLEANfalse

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING