← Back to patterns
Visual & Generative
Emerging

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.

Loading Demo

Preparing the interactive example for this pattern.

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.

Use it
when

The same unwanted elements keep reappearing across generations and prose negation keeps failing.

Avoid
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.

Research Frame

Why this pattern exists, and where it breaks.

The model keeps adding what you do not want, and the only defense is syntax arcana — negative-prompt incantations retyped every generation.

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.