To make AI UI look less generic, stop sending one vague prompt and run six concrete steps instead: lead with a real reference, commit to one named aesthetic before you generate, swap adjectives for constraints, generate several distinct directions and compare them, do a subtraction pass against a slop checklist, then iterate from screenshots, not vibes. The short version of why this works: a single prompt is being asked to pick the taste, explore the options, and write the final spec all at once, so it returns the average. We unpack the root cause in why AI design looks generic. This is the fix-it companion, with a copyable before and after prompt for each step.
The six fixes, in order
Make AI UI look less generic
Lead with a real reference
Paste a screenshot or URL of a product you admire, so the model copies a real point of view instead of the training-data average.
Commit to one named direction
Name an aesthetic (editorial, brutalist, warm finance) before generating, so the model stops hedging toward the middle.
Replace adjectives with constraints
Trade "clean and modern" for values: tokens, an 8px scale, one accent, crisp radius, and the states you require.
Generate many directions, then compare
Produce several distinct options and choose one, instead of nudging a single output and hoping the next answer is better.
Subtract against a slop checklist
Cut the tells: Inter, purple gradient, centered hero, three-card row, faint shadows on everything.
Iterate from screenshots, not adjectives
Feed the actual render back and ask for a concrete diff, because the model cannot see what it built.
Fix 1: Lead with a real reference
Open with a real product to copy the bones from, not a blank ask. The model cannot read your taste out of "make a landing page," so it defaults to the most common look it has seen. A reference replaces that default with a specific point of view. Screenshot a site you admire (Linear, Stripe, PostHog) or paste its URL, and tell the agent which parts to borrow: the density, the type confidence, the layout, the restraint. Borrow structure, never the brand.
BEFORE
Design a landing page for my analytics tool.
AFTER
Design a landing page for my analytics tool. Match the
structural feel of Linear's site: dark, dense, a real
product screenshot above the fold, one confident
left-aligned headline, no gradient. Reference: [paste
URL or attach a screenshot]. Borrow the structure and
density, not the brand or copy.The lowest-effort way to start from a reference is to not hunt for one each time. Our free prompt library is a grid of proven directions you can preview and copy straight into your agent, so step one becomes a paste instead of a blank box.
Fix 2: Commit to one named direction
Name a single aesthetic out loud before you generate anything. "Modern and clean" is not a direction, it is the average wearing a nicer word, and the model hears it as "pick whatever is safest." A named language ("Swiss editorial," "brutalist mono," "warm finance dashboard," "make it a Qt app") collapses the options down to one coherent set of choices. That is the whole reason the famous "make it a Qt app" trick works: it hands over a strict, well-defined design language so the guessing stops.
BEFORE
Make it look modern and clean.
AFTER
Use one aesthetic for the whole thing: Swiss editorial.
Off-white paper background, a grotesque headline font
with personality, hairline rules instead of shadows,
one ink-red accent used sparingly. Commit to that
language on every screen, do not mix styles.Fix 3: Replace adjectives with constraints
Trade every feeling word for a number the model can actually execute. "Premium," "polished," and "high-end" mean nothing to a probability machine, so it falls back to defaults. Tokens, spacing, density, and radius are unambiguous. The more of the look you pin down as values, the less room there is for the average to creep back in. This is also where you kill the indigo default and Inter on purpose, by stating what to use instead.
BEFORE
Make it feel premium and polished.
AFTER
Apply these tokens. Background #FBF7F0, ink #1F1B16,
one accent #C2410C used once per screen. Spacing on an
8px scale. Radius 2px max. Type from a 5-step scale at
1.5 line-height, headline font is a grotesque, not Inter.
Density over decoration: a table for data, no three-icon
card row, no 0.1-opacity drop shadows.A reusable version of this is a DESIGN.md: the same constraints written once and pasted in front of every generation so the look stays consistent across screens. Full walkthrough in what is DESIGN.md. The same constraint thinking that sharpens a prompt also fixes hand-built UI, see UI design tips for developers.
Fix 4: Generate many directions, compare
Generate several genuinely different directions at once and pick from them, instead of nudging one output forever. This is the step almost everyone skips, and it is the one that actually kills sameness. When you reply to a single result with "try again, but different," you are accepting the first guess and hoping it drifts somewhere good. When you compare four distinct directions side by side, you are choosing, which is what taste actually is.
BEFORE
Make another version, but cleaner.
AFTER
Generate 4 distinct directions for this dashboard, same
content in all four, vary only the design language:
1) Swiss editorial 2) brutalist mono
3) warm finance 4) high-density terminal
Show them side by side so I can compare, do not pick
for me.A chat box fights you here, because it returns one thing at a time and forgets the last version when you re-prompt. A canvas where comparing options is the default is the piece that makes this step painless.
Fix 5: Subtract against a slop checklist
Run a deliberate subtraction pass that hunts for the known tells and removes each one. Generic is rarely a missing feature, it is a pile of safe defaults stacked on top of each other. Name them, then cut them. Here is the starter pack that outs most AI UI, so you know exactly what to strip.
The slop checklist: cut every one of these
- ✕Inter or Roboto with no personality
- ✕A purple or indigo gradient
- ✕A centered hero with one CTA
- ✕A row of three icon cards
- ✕Drop shadows at 0.1 opacity on everything
- ✕Rounded corners on every element
- ✕White or light-gray everywhere, no point of view
Verbatim from prg.sh
Subtraction pass on the current design. Remove anything
matching this slop list and replace each with a
deliberate choice: no Inter, no purple/indigo gradient,
no centered hero, no three-icon card row, no
0.1-opacity shadows, no uniform rounded corners. Tell me
what you changed and why for each one.Fix 6: Iterate from screenshots, not adjectives
Feed the agent a screenshot and point at specific things to change, instead of arguing in feelings. The moment you reply with "cleaner," "more premium," or "less generic," you are doing taste direction and implementation in the same breath, and the model has nothing concrete to act on. A screenshot plus two named fixes converges. A pile of adjectives does not.
BEFORE
Make it less generic.
AFTER
Here is a screenshot of the current output [attach].
Two specific fixes:
1) the hero is centered, make it left-aligned with the
product panel on the right
2) the three metric cards are decorative, convert them
to one dense table with a hairline borderWhere Superdesign fits
Superdesign is built to make these six steps the default instead of a discipline you have to remember. It is an AI design agent on an infinite canvas, so the steps that a chat box fights you on become the easy path: it pulls real reference patterns from sources like Mobbin, Dribbble, and Behance so step one starts grounded, it forks several distinct directions at once so step four is one action instead of a chore, it captures your real project as a design-system file so your constraints stay reusable, and it outputs real React and Tailwind you own. You can drive it from your coding agent (Claude Code, Cursor, or any agent) with full context of your codebase. None of this takes the taste call away from you, it just gives each decision its own step so the model executes choices you made instead of averaging the ones you skipped.
Generic was never the model's fault. It is what one prompt does when you ask it to be a taste director, an explorer, and an engineer all at once. Run the six steps and you have pulled those jobs apart by hand. If you want the chain to be the tool instead of a routine you maintain, that is what Superdesign is for.








