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.
Framing
The problem
Regenerating reshuffles everything at once — users lose the composition they liked while chasing the lighting they wanted.
The pattern
Pin the seed to freeze the randomness, then vary a single dimension per iteration — a controlled experiment instead of a lottery ticket.
Why chat breaks here
Re-sending a prompt in chat re-rolls the dice; a text box has no handle for "keep everything, change this one thing."
Risks
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.
Avoid when
Divergent exploration — when the user wants maximally different options, pinning the seed is the opposite of the job.
Use when
The user has a generation they mostly like and needs to iterate on one dimension without losing the rest.
DOPE evaluation
- Directability
- One slider changes one dimension while everything else holds still
- Observability
- The lock state and seed value sit visibly on the artifact, so the user knows why outputs match or differ
- 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
In the wild
- 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.
- 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.
- 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.
FAQ
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
- Alternative to: Region Lock — Lock pixels in space vs lock randomness across regenerations.
- 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.