Regenerating reshuffles everything at once — users lose the composition they liked while chasing the lighting they wanted.
Seed Pinning
Hold the randomness still, change one thing at a time
Regenerating reshuffles everything at once: the user liked the composition but wanted warmer light, and now both are gone. Seed Pinning freezes the randomness — pin the seed, and the same settings reproduce the same image; then vary exactly one dimension per iteration. Refinement becomes a controlled experiment instead of a slot machine.
Metaphor
Anchor
Interaction
Seed Lock Toggle, Single-Variable Slider, Variation Grid
Use case
Image Iteration, Style Exploration, A/B Comparison
Failure mode
Slot-Machine Regenerate
Control mechanisms
Pinned Seed · Lock Indicator · One-Axis Variation · Seed History
Reference examples
Midjourney --seed · Leonardo AI fixed seed · Stable Diffusion WebUI reuse-seed
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.
You asked for warmer light. The ridge moved too.
The retry hears warmer light and re-rolls everything: the palette warms, but the sun moves, the ridge reshuffles, the trees relocate. Say keep the composition and generation three re-rolls again — the seed was never on screen, so there is nothing to hold. Gen 1 survives only as a thumbnail in the scrollback.
Pin the seed and Regenerate returns the same image, pixel for pixel — the lock and the number sit on the artifact itself, #48291, so the state is never inferred. Then move exactly one slider: warmth repaints the palette, density changes the element count, and the composition does not move. Any difference between two variants is attributable by construction.
The history strip is the quieter half: four recent seeds, one click each, so a composition you liked stops being a message you scrolled past and becomes an address you can return to, compare against, or hand to someone else. One caveat travels with it — a seed only holds within a model version, so show the version beside the pin.
A seed stays random only until someone prints the number beside the image it made.
DOPE Lens
How this pattern improves AI interaction quality.
Observability
The lock state and seed value sit visibly on the artifact, so the user knows why outputs match or differ
Directability
One slider changes one dimension while everything else holds still
Predictability
With the seed pinned, the same settings reproduce the same image — regeneration stops being a lottery
Explainability
Differences between variants are attributable: the only thing that changed is the dimension the user moved
Fit
Where it earns its place.
when
The user has a generation they mostly like and needs to iterate on one dimension without losing the rest.
when
Divergent exploration — when the user wants maximally different options, pinning the seed is the opposite of the job.
In the wild
Where this pattern already ships.
Real implementations from products users already know. Each entry shows how the pattern got applied — what shipped, where it sits in the product, what it traded off.

Midjourney · --seed parameter
Midjourney
Same prompt + same seed reproduces the image; change one prompt term with the seed held and the diff is attributable to that term. The mechanic is real — the UI is still a typed flag, which is the gap the pattern names.
Visit Midjourney ↗

Leonardo AI · Fixed seed
Leonardo.Ai
A UI toggle pins the generation seed so subsequent runs vary only what the user changes — the lock affordance as an actual control, not a syntax trick.
Visit Leonardo.Ai ↗

Stable Diffusion WebUI · Reuse seed
AUTOMATIC1111
One-click recycle-seed button plus visible seed field; the community workflow that made pin-then-vary the default way to iterate locally.
Visit AUTOMATIC1111 ↗
Research Frame
Why this pattern exists, and where it breaks.
Pin the seed to freeze the randomness, then vary a single dimension per iteration — a controlled experiment instead of a lottery ticket.
Re-sending a prompt in chat re-rolls the dice; a text box has no handle for "keep everything, change this one thing."
Pinned seeds create false confidence across model versions — the same seed on a new model is a different image; show the model version next to the seed.
Common questions
What people ask about this pattern.
When should I use the Seed Pinning pattern?
+
The user has a generation they mostly like and needs to iterate on one dimension without losing the rest.
When should I avoid the Seed Pinning pattern?
+
Divergent exploration — when the user wants maximally different options, pinning the seed is the opposite of the job.
What problem does Seed Pinning solve?
+
Regenerating reshuffles everything at once — users lose the composition they liked while chasing the lighting they wanted.
Why is chat the wrong fit for this?
+
Re-sending a prompt in chat re-rolls the dice; a text box has no handle for "keep everything, change this one thing."
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
Parallel Alternatives
Explore wide with candidates, then pin the winner's seed and iterate narrow.
Often paired with
Real-time Generation
A pinned seed makes the live slider meaningful — the preview varies only on the axis you move.
Alternative to
Region Lock
Region Lock freezes the parts you like and regenerates the rest; Seed Pinning freezes the randomness instead.