Generative Images · 5 Interactives

The Dice Are Fake — Every "Random" Image Has a Serial Number

Type the same prompt twice and Stable Diffusion paints two different pictures. Not because it's creative — because someone rolled a number you didn't see. That number is the seed, and it deterministically unfolds into every cloud and mountain in the image. The generator below has its dice fully exposed: prove it's deterministic, surf the seed space, then discover the two ways reproducibility quietly breaks.

Diff = 0 Noise skeleton Seed surfing Fragile magic Cherry-picking
EP 01

Run it twice, diff the pixels — the randomness is fake

This landscape generator uses a real pseudo-random number generator (the same mulberry32 that draws this site's art). Feed it a seed and every "random" choice — palette, sun, ridge, clouds, stars — unrolls from that one number. Run again re-generates with the same seed and counts differing pixels, live. It will be zero. Every time.

The diff is computed by re-rendering to a hidden canvas and comparing all 216,000 pixels. No trick — same seed, same arithmetic, same image, bit for bit.

Why it matters: "AI is non-deterministic" is mostly a myth at the image level. Diffusion models start from seed-generated noise; fix the seed (and everything else) and you get the same image forever. The apparent creativity between runs is just a hidden dice roll.
EP 02

The noise skeleton — how one number becomes a layout

The seed's first job is to fill a grid of noise. That grid is the composition: the sun lands on the brightest cell, clouds condense on the mid-bright cells, the mountain ridge traces one noisy row. Drag the slider to "denoise" the grid into the finished image, then turn on the overlay to see every object sitting exactly on its noise cell.

Conceptual cartoon: real diffusion denoises a latent tensor over many steps rather than snapping cells to objects — but the causal chain is the same: seed → noise → layout. The noise is the skeleton the image grows on.

The mental model: the prompt decides what kind of things appear; the seed's noise decides where and how they appear. Same prompt + new seed = same subject, new composition. That's why re-rolling feels like asking a different photographer for the same shot.
EP 03

Seed surfing — a thousand paintings behind one knob

Each seed is a complete, reproducible artwork. Step through them, or press surf and let them fly by. Click any thumbnail to pin it — its full recipe appears below, ready to share. But notice something honest and important: seed 1041 looks nothing like seed 1040. Seeds are addresses, not a smooth dial.

✓ Good case: a seed is a shareable recipe — post "seed 1042" and anyone reproduces your exact image. ✗ Bad case: adjacent seeds are unrelated. Don't expect seed+1 to give "the same image, slightly different" — for smooth variation you need latent interpolation, not seed arithmetic.

Why communities trade seeds like recipes: a Midjourney/SD image is fully specified by prompt + seed + settings. Galleries, Civitai posts and "same seed challenge" threads all exploit this: the seed turns a lottery into a bookmark.
EP 04

Fragile magic — change one thing and the seed betrays you

The seed only reproduces the image if everything else is frozen too. The left panel is your locked recipe: seed 7, 24 steps, euler sampler, v1.0. The right panel uses the same seed 7 — now change just ONE setting. The sampler consumes random numbers in a different order; v1.1 burns one extra draw at startup; a new step count reshapes the ridge. One flipped switch, and the "same" image is gone.

The support-forum classic: "I used the same seed and got a different image!" — because the app updated its sampler, or the resolution changed, or a library version shifted how noise is consumed. A seed is not a fingerprint of the image; it's one ingredient in a recipe where every ingredient matters.
EP 05

The cherry-picking machine — best-of-64 is a lie about typical

Nobody posts their median generation. Roll a batch of seeds, score each image with a fixed aesthetic metric (contrast + left/right balance, computed from the actual pixels), and look at the distribution. The one that gets posted is the top of the histogram; what the model typically makes is the middle. Grow N and watch the gap widen — same model, same prompt, very different impression.

The score is a deterministic function of each render's pixels — crude, but fixed, so the selection effect you see is pure statistics, not taste.

Why it matters: every stunning AI-art feed, model demo page and launch thread is a best-of-N sample. Selection isn't cheating — picking your best seed is the workflow (that's the good case). It only becomes a lie when best-of-64 is presented as "what the model does". When you evaluate a model, always ask: what was N?
Keep playing
Generative Models
Style Transfer
Steal the brush, keep the scene
Generative Models
Negative Prompts
Steer the image away from what you don't want