Diffusion Models · 5 Interactives

The Anti-Magnet — Telling a Model What Not to Draw

"Blurry, extra fingers, watermark" — every Stable Diffusion user types these into the negative prompt box. Underneath, it's just guidance away from a region of image space: a repeller planted next to the attractor. The machines below let you plant both, watch samples flow around the forbidden zone — and discover the two ways the trick backfires.

Attractor + repeller It's vector subtraction Removing an artifact Collateral damage Entangled negatives
EP 01

Plant a repeller — samples learn to dodge it

Think of every possible image as a point in a huge space. Your prompt is a gold attractor: denoising pulls samples toward it. A negative prompt adds a red repeller. The 120 dots below are samples mid-generation. Click anywhere to move the forbidden zone and drag the strength slider — watch the flow re-route in real time.

Conceptual toy: real diffusion works in a ~16,000-dimensional latent space, but the pull/push mechanics are exactly this. Set strength to 0 to see samples happily cut straight through the "forbidden" zone.

The mental model: a negative prompt doesn't censor the output afterwards — it bends the path of generation so samples never enter that region at all. That's why "blurry" in the negative box yields sharp images rather than blurry-images-deleted.
EP 02

Under the hood it's one subtraction, not a filter

At every denoising step the sampler computes a direction toward the prompt and a direction toward the negative, then steps along pull − push. Here is a single sample with its actual step vector decomposed: gold = toward the prompt, red = away from the negative, white = the step it really takes. Click to drop the sample anywhere, then step it.

In classifier-free guidance the update is noise_neg + scale × (noise_prompt − noise_neg): the negative embedding literally replaces the "unconditional" baseline, so everything is measured relative to what you banned.

Why it matters: because it's arithmetic on directions, a negative prompt costs one extra forward pass — no retraining, no filtering. Drop the sample right next to the red zone and watch the white arrow bend hard; drop it far away and the red push almost vanishes.
EP 03

The clean kill — deleting "blurry" from your batch

The model's world here has two clusters: sharp portraits (left) and blurry ones (right) — and 30% of its training mass is blurry, so plain sampling keeps landing there. Toggle the negative prompt and regenerate: the repeller sits exactly on the artifact cluster, so samples that would have gone blurry slide over to the sharp cluster instead.

Fuzzy grey dots = samples that ended inside the blur cluster (drawn smeared on purpose). The percentage is counted live from the 60 simulated trajectories, nothing is hardcoded.

This is the good case: the unwanted attribute lives in its own well-separated region ("blurry", "watermark", "extra limbs"), so pushing away from it barely disturbs anything else. That's why artifact words are the negative prompts that reliably work.
EP 04

Collateral damage — when the repeller becomes a bomb

Same two clusters, but now the strength slider goes to 8. The faint grid shows how the repeller warps the whole space; dark dots show where each sample would have landed with no negative at all. Crank it and watch perfectly good sharp images get shoved off their natural spot — some all the way into nonsense territory.

"Collateral shift" = average distance between each sample's landing spot with vs. without the negative, computed on identical random seeds. "Off-manifold" = samples pushed outside both clusters — the toy version of mangled, over-processed outputs.

The trade-off is real: at strength 1 the artifact count drops with almost zero collateral shift — at strength 6 the artifacts are gone but everything nearby is deformed too. This is exactly why over-stuffed negative prompts ("ugly, deformed, bad anatomy, ...") often make images worse: each term is another bomb warping the space.
EP 05

"Portrait, negative: face" — negating what you asked for

Guidance steers along the difference between the prompt embedding and the negative embedding. Negate "watermark" and that difference vector is long and useful. Negate "face" while prompting "portrait" and the two embeddings nearly coincide — the steering signal shrinks toward zero and noise takes over. Slide the negative toward the prompt and watch the samples lose the plot.

The white arrow is the live steering signal (prompt − negative). Both the signal percentage and the coherent-sample count are measured from the running simulation each frame.

The rule of thumb: a negative prompt only works if it points somewhere else. Concepts entangled with your prompt ("portrait" − "face", "forest" − "trees") cancel the guidance instead of refining it — you don't get a faceless portrait, you get confused mush. Real SD users hit this constantly and blame the model.
Keep playing
Generative Models
Seeds & Determinism
Why the same prompt gives different images
Generative Models
Memorization vs Generation
Did the model create that, or copy it?