The seed is only one part of the recipe
The same seed can produce a different AI image when the model, prompt, workflow, dimensions, sampling settings or computing environment changes. A seed controls a source of randomness; it does not identify an image independently of those other inputs. First check that the seed actually stayed fixed, then compare the complete recipe.
This is documentation-based troubleshooting, checked on 12 October 2026. We have not run these comparisons or generated an image for this article. If you need the initial setup, start with Build your first ComfyUI workflow.
1. Recover the recipe from the original file
Keep an untouched copy of the image you want to reproduce. In ComfyUI, drag the original workflow-bearing PNG onto the canvas, or open its companion workflow JSON through Workflows → Open. The official first-generation instructions explain both methods.
A screenshot or a re-encoded download may contain no recipe. ComfyUI's metadata documentation distinguishes workflow, which restores the graph, from prompt, which records execution inputs. Where available, inspect the saved execution inputs to confirm the sampler seed used for that output. The number now visible in an editor may have changed since the job was queued.
If no workflow survives, ask the creator for their JSON and dependency list. Do not guess missing settings from the appearance of the image. Inspect unfamiliar workflows and their dependencies before installing anything they request.
2. Stop the seed changing between jobs
For a basic KSampler, set its seed control to fixed before pressing Run. Re-enter the intended seed if necessary. Randomize chooses another value; increment and decrement change it between queued jobs. A control labelled control_after_generate is an editor setting, rather than a guarantee that the displayed number belongs to the last finished image.
Current frontend source supports controls before or after queuing; the value-control implementation leaves a fixed value unchanged. Avoid relying on the exact moment a randomised number appears.
If the sampler's seed comes through a connection, follow that wire and check the supplying node's value and control. Check every sampler or noise node that contributes to the result, including later refinement stages. Fixing one disconnected widget cannot fix the whole graph.
3. Compare settings beyond the number
Check the exact checkpoint and revision, positive and negative prompts, text encoder, VAE decoder, and any LoRAs or reference images. Match their strengths and connections too. Two files with similar names need not contain identical weights; retain their download source and revision, and a file hash when available.
Then compare width, height, batch size, steps, CFG guidance, sampler, scheduler and denoise. The KSampler reference describes its inputs. Changing resolution or adding an upscaling/refinement pass changes the recipe, even if the first sampler's seed stays constant.
Our existing bottle lesson uses seed 156680208700286, a 512 × 512 canvas and batch size one. Those values belong to its specific publisher graph, alongside its model, prompts and other settings. Copying just that number into a different model cannot recreate the bottle.
4. Separate a recipe mismatch from an environment mismatch
Use the same application and existing environment for your first comparison. Record ComfyUI, frontend and custom-node versions, operating system, GPU, and relevant runtime versions. Preserve a working setup before updating it. If an update introduced the difference, compare with a retained compatible environment rather than repeatedly altering the prompt.
PyTorch's reproducibility notes explain that matching seeds cannot guarantee identical results across releases, platforms or CPU/GPU execution. Deterministic settings can reduce some variation, but may cost performance and do not remove every compatibility limit.
For Python Diffusers users, another trap is reusing a Generator: its random state advances when consumed. Hugging Face recommends reseeding or creating a fresh generator for each comparison, and explains CPU/GPU noise differences. This is a Diffusers detail; do not paste its Python settings into ComfyUI's seed field.
5. Save a record you can actually reopen
After a successful run, retain the original Save Image PNG. The built-in save implementation writes to the configured output directory and includes metadata unless disabled. Export a separate reproduction-workflow.json through Workflows → Export, then reopen that JSON to check it restores the expected graph.
Keep the PNG, JSON, original input media and a short settings/version note together. A workflow does not bundle its model weights or extensions. Review prompts and metadata before sharing: they can expose material you intended to keep private.
What to try next
- Different result on the next job: check seed controls and connected seed sources first.
- Different result after changing size or model: restore those inputs before comparing.
- Different result in another app or hosted service: compare its actual model version and exposed settings; matching labels alone are insufficient.
- Different result despite a preserved recipe: record the environment and differences, rather than claiming the seed is broken.
Local ComfyUI lets you retain the graph and dependencies without a software subscription; hardware and electricity still cost money. A paid hosted route can remove local setup, but check whether it exposes and exports the settings you need. Paying does not guarantee an identical rerun. Preserve the finished original when that exact image matters.
Sources
Primary references checked 12 October 2026. This explanation is not a benchmark of a particular model or computer.