The model keeps adding what you do not want, and the only defense is syntax arcana — negative-prompt incantations retyped every generation.
Exclusion Controls
Say never without learning the syntax
The model keeps adding what you don't want, and the only defense is arcana: "--no hands", negative-prompt incantations pasted from forums — retyped every generation. Exclusion Controls make the negative space structural: click the unwanted element in the output to ban it, keep a visible never-list that persists across generations, and remove any exclusion with one click. Negation is the model's weakest instruction in prose; a blocklist doesn't re-roll each turn.
Metaphor
Blocklist
Interaction
Click-to-Ban, Persistent Never-List, One-Click Unban
Use case
Image Generation, Brand Safety, Style Guardrails
Failure mode
Negation Roulette
Control mechanisms
Element-Level Exclusion · Visible Blocklist Chips · Cross-Generation Persistence · Cost Indicator
Reference examples
Leonardo AI negative prompt field · Stable Diffusion WebUI negative prompts · Midjourney --no parameter
Interactive Example
The live side-by-side is the comparison.
This prototype already contains the contrast between chat and the pattern response. It stands as the primary comparison surface for this page.
The model can hear a no. It has nowhere to keep one.
Ask for no text and the launch banner arrives anyway. Say it again and the banner becomes a diagonal ribbon; say it a third time and the text finally goes, but the sparkles are back and a watermark has walked in. Three turns, four exclusions asked for, one honored — each no expired with the turn that carried it.
Clicking the unwanted layer in the image writes it to a never-list that outlives the seed. Hover and the element outlines itself with never again; click and it animates out in a quarter second. Regenerate re-rolls layout, palette and composition freely — the blocklist is the one thing a new seed cannot touch.
The counter beside the list carries the pattern's own risk in the open: two exclusions read ~31% of compositions ruled out, four tip the line amber and add narrowing fast. Negation already ships as syntax — Midjourney's --no, a second text box in Stable Diffusion. What is missing is the place where the nos accumulate in view and come off with one click.
Anything you have to say twice belongs in the interface, not in the sentence.
DOPE Lens
How this pattern improves AI interaction quality.
Observability
The never-list is always visible next to the output, so what is being suppressed is never a mystery
Directability
Banning happens on the artifact — click the element, not describe its absence — and unbanning is one chip click
Predictability
Exclusions persist structurally across generations instead of depending on how well prose negation lands this turn
Explainability
Each exclusion chip names what it blocks, and the cost indicator shows how much the blocklist narrows the option space
Fit
Where it earns its place.
when
The same unwanted elements keep reappearing across generations and prose negation keeps failing.
when
One-off generations where retyping a negation is cheaper than managing a list.
In the wild
Where this pattern already ships.
The pattern is shipping but still maturing across products. Entries below show how different teams have approached it; expect variation as the space settles.

Leonardo AI · Negative prompt field
Leonardo.Ai
A dedicated, labeled field for what must not appear — the exclusion as first-class input rather than inline syntax, though still typed prose rather than click-to-ban.
Visit Leonardo.Ai ↗

Stable Diffusion WebUI · Negative prompts
AUTOMATIC1111
The community convention that proved structural negation works where prose negation fails — persistent per-generation, reusable, and the reason "negative prompt" is a household term in image generation.
Visit AUTOMATIC1111 ↗

Midjourney · --no parameter
Midjourney
Exclusion ships as typed flag syntax — exactly the arcana the pattern replaces with visible, persistent chips. The mechanic is proven; the interface is the gap.
Visit Midjourney ↗
Research Frame
Why this pattern exists, and where it breaks.
Make the negative space structural: click the unwanted element to ban it, keep a visible never-list that persists across generations, unban with one click.
Negation is the model's weakest prose instruction — "no text in the image" famously produces text — and it re-rolls with every turn.
Over-exclusion quietly collapses the possibility space — show what the blocklist costs and keep removal effortless.
Common questions
What people ask about this pattern.
When should I use the Exclusion Controls pattern?
+
The same unwanted elements keep reappearing across generations and prose negation keeps failing.
When should I avoid the Exclusion Controls pattern?
+
One-off generations where retyping a negation is cheaper than managing a list.
What problem does Exclusion Controls solve?
+
The model keeps adding what you do not want, and the only defense is syntax arcana — negative-prompt incantations retyped every generation.
Why is chat the wrong fit for this?
+
Negation is the model's weakest prose instruction — "no text in the image" famously produces text — and it re-rolls with every turn.
Related Patterns
Curated connections, not just neighbors.
Hand-picked relationships — what this pattern pairs with in practice, what it replaces, what it builds on, and what builds on it.
Often paired with
Region Lock
Region Lock keeps what must stay; Exclusion Controls ban what must never appear, across every regeneration.
Often paired with
Property Panel
Property Panel turns flags like --ar into sliders and toggles; Exclusion Controls turn --no into a visible never-list.
Alternative to
Inline Prompt Controls
Inline Prompt Controls make parameters clickable in the prose; Exclusion Controls list bans beside the output instead.