TL;DR: An image generation seed fixes the starting noise, not the outcome. Midjourney publishes "99% identical", Runway publishes "similar results", and OpenAI, Google and xAI publish no image seed at all. Use a seed to isolate one variable, not to archive a result. Checked September 2, 2026.
What is a seed in image generation?
A seed is the number that decides where a diffusion model starts.
Midjourney's Seeds article gives the clearest published explanation, describing the seed as "the initial spark that sets your Midjourney image in motion": the random noise the model denoises down into a picture. Fix the number and you fix the noise field. Leave it out and, in Midjourney's words, "If you don’t choose a seed, Midjourney will use a new random one every time, giving you a variety of outcomes."
The mechanism is the same everywhere the parameter exists. What differs is what each vendor will promise gets built on top of it.
Does the same seed give you the same image?
No vendor we checked says it does.
Midjourney is the most forthcoming, because it publishes a percentage. The Seeds article opens with "Seeds are 99% identical in V8.X." That word is deliberate, and Midjourney does not publish what the missing one percent covers.
It then walks the promise back further. Under "Not Always Predictable": "Seeds may behave unexpectedly, so they shouldn't be relied on for the same results over different prompting sessions." And: "Assume that if you take a break and come back later, your seed may no longer work as expected." Under "Not Always Consistent": "While seeds can help with consistency, they have the least impact on the final image."
There is also a mode warning most guides omit: "Don't use Turbo mode when using seeds." The reason: "Turbo mode focuses on speed, and as a result seed locking is not reliable."
Runway is blunt differently. Its OpenAPI spec describes the seed on gen4_image and gen4_image_turbo as: "Using the same seed integer for an identical request will produce similar results." Similar. A second seed field in the same file reads "Optional seed for more deterministic output (0–4294967295). Not guaranteed."
One vendor quantifies the gap, one names it in a field description, and the rest make no claim. Any post promising determinism from a seed is not quoting a vendor.
Which image models actually publish a seed parameter?
Fewer than you would guess. Three publish none.
| Surface | Seed on image generation? | Documented range | Default | Seed returned? |
|---|---|---|---|---|
| Midjourney V8.X | Yes, --seed | 0 to 4294967295 | Random | Yes, Create page or Discord reaction |
| Stability, Stable Image v2beta | Yes, seed | 0 to 4294967294 | 0 is random | Yes, seed header and JSON field |
| Ideogram 3.0 | Yes, seed | 0 to 2147483647 | Not published | Yes, required in the response |
| Ideogram 4.0 | No | n/a | n/a | Yes, still required in the response |
| Black Forest Labs FLUX.2 | Yes, seed | None, "Accepts any integer" | null is random | No typed response field |
Runway gen4_image | Yes, seed | 0 to 4294967295 | Random | Not published |
| OpenAI GPT Image 2 | No | n/a | n/a | n/a |
| Google Gemini image | No | n/a | n/a | n/a |
| xAI image generations | No | n/a | n/a | n/a |
The three negatives are worth stating precisely, because published advice routinely invents a parameter here.
OpenAI. In the live openai-openapi.yaml on 2 September 2026, no seed appears on CreateImageRequest, CreateImageEditRequest, CreateImageVariationRequest, the Responses API image tool or ImagesResponse. OpenAI documents a seed for text, worded "our system will make a best effort to sample deterministically" and, immediately after, "Determinism is not guaranteed". None of it applies to images.
Google. The ImageConfig object carrying Gemini's image settings has two fields: aspectRatio and imageSize. A seed exists on the shared GenerationConfig, documented as "Optional. Seed used in decoding. If not set, the request uses a randomly generated seed." Google's image generation guide contains zero occurrences of the word seed, and we will not infer an image contract from a text field.
xAI. The POST /v1/images/generations body publishes aspect_ratio, model, n, prompt, resolution, response_format, storage_options and user. No seed. xAI publishes one on its chat endpoints, so a corpus-wide grep finds the word, but the image endpoint does not have it.
Why can't you carry a seed value from one tool to another?
Because the ranges are not the same, and two of them differ by one.
Midjourney documents "You can lock a seed by plugging in a whole number between 0 and 4294967295 in your prompt." Stability's Stable Image endpoints stop at 4294967294. Ideogram 3.0 stops at 2147483647, roughly half. Black Forest Labs publishes no bounds and says its seed "Accepts any integer".
| Feature | Midjourney | Stability | Ideogram 3.0 | FLUX (BFL) |
|---|---|---|---|---|
| How you ask for a random seed | Omit it | Pass 0 or omit | Omit it | Pass null or omit |
| The vendor's own promise word | 99% identical | No claim made | Reproducible generation | Reproducibility |
So a seed lifted from a Midjourney tutorial is out of range on Ideogram roughly half the time. The conceptual problem is larger: these are unrelated integers pointing at unrelated noise fields in unrelated models, so there is no sense in which seed 12345 is "the same" starting point on two vendors. Carrying it across is the same class of error as carrying an image-to-image strength value between tools that run it in opposite directions.
Even the syntax refuses to travel. Midjourney writes ratios as --ar 16:9. Ideogram 3.0's enum is 16x9, with an x. FLUX.2 has no ratio field and takes width and height.
What else has to match for a seed to reproduce anything?
Everything else in the request, which is where most reproducibility attempts actually fail.
Midjourney names the culprits: "Factors like your prompt, model version, and even slight parameter or settings changes can lead to unexpected results." Read it as a checklist. Change any of these and you are no longer running the same generation:
- The prompt string, exactly. A trailing space, a synonym, a comma. Midjourney says seeds "only influence the initial layout of noise that begins the rendering process", so the prompt is doing the work.
- The model and its version. See the next section. This one is fatal, not cosmetic.
- Dimensions. Aspect ratio on Midjourney, Stability and Ideogram;
widthandheighton FLUX.2;sizeon OpenAI. - Every optional parameter, including ones you did not set. Defaults are part of the request: Stability's
style_preset, Ideogram'srendering_speed, FLUX'sprompt_upsampling. - The speed or quality mode. Midjourney's Turbo warning is the documented case, and a mode is not a parameter.
- Steps and guidance, where they exist. On BFL,
flux-2-flexpublishesstepsandguidancewhileflux-2-proandflux-2-maxpublish neither.
Nobody publishes a sampler for a hosted image endpoint either: Stability's v2beta spec exposes no sampler or scheduler on any of its 19 image endpoints. Advice telling you to match the sampler comes from local tooling, where it is true.
Do seeds survive a model update?
Assume not. No vendor promises they do, and one has built its product around admitting it.
Black Forest Labs splits its endpoints into preview and pinned. Of the pinned one it says: "This endpoint will not change, making it suitable for workflows that require reproducibility." The guidance is explicit: "Choose the non-preview endpoints when you need a pinned model". That is a vendor stating that the unit of reproducibility is the model version, with the seed a detail underneath it.
Midjourney gestures at the same thing without the machinery, warning that a seed from an earlier session may no longer behave. Everyone else is silent, and silence is not a promise.
How do you actually use a seed? Isolate one variable
Midjourney says it outright: lock a seed when testing elements of a prompt, because "It’s like having a control in an experiment."
That is the practical value, and it does not require determinism. You are not recreating an image, you are attributing a difference. If you change the lighting phrase and the composition also moves, you cannot tell the wording apart from the noise. Hold the seed, change one clause, and the delta is the answer.
Three steps and one rule.
- Generate freely until something is close. Do not lock anything yet.
- Retrieve and record the seed with the full prompt, the model string and the date. On Midjourney that is the Copy menu on the image, or the envelope reaction in Discord. On Stability and Ideogram it comes back in the response.
- Change exactly one thing per run, holding every other parameter constant.
The rule is one variable per run. Two changes give an unattributable result, and the temptation to make two is enormous. It is the discipline that fixes inconsistent answers from text models.
27 seed-locked comparison prompts
The Midjourney lines use documented V8.X parameters; the API bodies use field names from each vendor's live specification. Replace 12345 with a seed you retrieved.
Group A sweeps one descriptive clause. Run every line, then compare.
1. a ceramic coffee cup on a linen tablecloth, soft window light --ar 3:2 --seed 12345
2. a ceramic coffee cup on a linen tablecloth, hard directional light --ar 3:2 --seed 12345
3. a ceramic coffee cup on a linen tablecloth, overcast diffuse light --ar 3:2 --seed 12345
4. a ceramic coffee cup on a linen tablecloth, single candle light --ar 3:2 --seed 12345
5. a ceramic coffee cup on a linen tablecloth, backlit rim light --ar 3:2 --seed 12345
Group B holds the prompt and sweeps one numeric parameter, so you learn what it is worth on your subject rather than what a tutorial claims.
6. a weathered brass compass on a nautical chart --seed 12345 --stylize 0
7. a weathered brass compass on a nautical chart --seed 12345 --stylize 100
8. a weathered brass compass on a nautical chart --seed 12345 --stylize 500
9. a weathered brass compass on a nautical chart --seed 12345 --stylize 1000
10. a weathered brass compass on a nautical chart --seed 12345 --chaos 0
11. a weathered brass compass on a nautical chart --seed 12345 --chaos 25
12. a weathered brass compass on a nautical chart --seed 12345 --chaos 50
13. a weathered brass compass on a nautical chart --seed 12345 --weird 0
14. a weathered brass compass on a nautical chart --seed 12345 --weird 250
15. a weathered brass compass on a nautical chart --seed 12345 --weird 1000
Group C tests whether a phrase earns its place: same seed, one clause removed each time. If the image barely moves, the clause is dead weight.
16. product photo of a matte black kettle, studio backdrop, shallow depth of field, 85mm --seed 12345 --ar 4:5
17. product photo of a matte black kettle, studio backdrop, shallow depth of field --seed 12345 --ar 4:5
18. product photo of a matte black kettle, studio backdrop --seed 12345 --ar 4:5
19. product photo of a matte black kettle --seed 12345 --ar 4:5
Group D checks the exclusion parameter and the raw switch against fixed noise.
20. a bowl of ramen on a wooden counter --seed 12345 --ar 1:1
21. a bowl of ramen on a wooden counter --seed 12345 --ar 1:1 --no steam
22. a bowl of ramen on a wooden counter --seed 12345 --ar 1:1 --raw
23. a bowl of ramen on a wooden counter --seed 12345 --ar 1:1 --tile
Group E runs the same experiment on API surfaces. This targets POST /v2beta/stable-image/generate/core, which returns the seed it used.
{
"prompt": "an isometric cutaway of a small bookshop, warm interior lighting",
"aspect_ratio": "16:9",
"negative_prompt": "text, watermark",
"seed": 12345,
"output_format": "png"
}
FLUX.2 takes pixel dimensions rather than a ratio. This targets POST /v1/flux-2-pro, the pinned snapshot endpoint, which is the one to use when you care about returning to a result later.
{
"prompt": "an isometric cutaway of a small bookshop, warm interior lighting",
"width": 1344,
"height": 768,
"seed": 12345,
"output_format": "png"
}
Ideogram 3.0 caps the seed at 2147483647 and writes ratios with an x. The 4.0 endpoint takes no seed.
{
"prompt": "an isometric cutaway of a small bookshop, warm interior lighting",
"aspect_ratio": "16x9",
"seed": 12345,
"rendering_speed": "DEFAULT",
"style_type": "GENERAL"
}
Group F is the bookkeeping people skip. It builds the record that makes a seed worth anything.
24. Turn this image prompt into a template. Replace the subject, the lighting phrase and the aspect ratio with named variables, and leave every other clause fixed so I can sweep one variable at a time: [PASTE PROMPT]
25. I ran this prompt at seed [SEED] on [MODEL AND VERSION] on [DATE]. Write me a one-line log entry capturing every parameter, including the ones I left at their defaults, so the run is reconstructable.
26. Here are two prompts that differ by one clause and their two outputs described. Tell me what the clause changed, and write a sharper version of that clause to test next at the same seed: [PASTE BOTH]
27. Take this prompt and produce five variants that each change exactly one descriptive element. Number them, and state which element each one changes, so I can run them all at one locked seed: [PASTE PROMPT]
What a seed will not do for you
It will not save a style, a character or a look.
Midjourney's Seeds article carries a heading reading "Not for Saving Styles", and the text under it is unambiguous: "Seeds can’t capture or bookmark a specific style, character, or appearance across different prompts." It points users to style references, omni references and personalization instead.
This is the most common misuse we see. Someone gets a face they like, copies the seed, changes the prompt to put that face in a new scene, and gets a stranger. That is the parameter working correctly: the noise was never the face.
When reproducibility fails some other way the cause is usually upstream of the seed, and the image prompt troubleshooting checklist covers it. For Midjourney, the dedicated seed walkthrough goes deeper on retrieval.
What no vendor publishes
The gaps are where confident wrong answers grow.
- What Midjourney's missing one percent covers. Not published, not derivable.
- Whether a seed behaves the same on Niji. Midjourney's compatibility charts have no seed row for Niji 6 or Niji 7. An absence, not a no.
- Any cross-version reproducibility statement.
- How long a seed stays useful. Midjourney says only that it may stop working after a break.
- Whether an out-of-range seed errors, clamps or wraps. Undocumented everywhere we looked.
- Any sampler or scheduler on a hosted image endpoint, so there is nothing to pin.
The most rigorous statement here sits outside the image vendors. Hugging Face's diffusers documentation, on local pipelines where you control the hardware, says: "While you can’t expect to get the exact same results across platforms, you can expect results to be reproducible across releases and platforms within a certain tolerance range." It quotes PyTorch directly: "Completely reproducible results are not guaranteed across PyTorch releases, individual commits, or different platforms. Furthermore, results may not be reproducible between CPU and GPU executions, even when using identical seeds."
If that is the ceiling when you own the machine, a hosted endpoint behind a load balancer will not beat it.
Where this leaves your prompt library
The boundary, plainly: Prompt Architects does not generate images and has no seed field. We generate the prompt. What breaks in seed work is the record-keeping, not the generation.
A seed-locked sweep produces five near-identical prompt strings differing by one clause, each paired with a number, a model string and a date, faster than anyone writes them down. That is what ends up in nine browser tabs and a file called untitled. Save the base prompt once, make the swept clause a variable, and the sweep becomes something you rerun rather than reconstruct. Image prompt generation starts on the Pro plan at $4.99 a month at the time of writing, and the Free plan runs 5 prompt enhancements per day, forever, per our FAQ.
A seed buys a control condition, not a permanent address. Use it to learn what your wording does, log what you learn, and keep the image.
Stop rewriting prompts. Start shipping.
Works with ChatGPT, Claude, Gemini, Grok, Midjourney, Ideogram, Veo3 & Kling. 4.8★ on the Chrome Web Store.
Create An Account