The prompt you sent is not the prompt it got
An invisible layer
When you type into a hosted image service, your text does not usually go straight to the model. Several things happen to it first, and none of them are shown to you.
Expansion. A language model reads your short request and writes a longer, more detailed description for the image model to render. This is why a four-word prompt on some services returns a richly specified image with lighting, lens and setting you never asked for. It is also why the same four words give a different scene each time even at a fixed seed, if the service exposes seeds at all: the expansion is itself a generation.
Safety filtering and rewriting. Prompts are checked against policy. A prompt may be refused, or quietly modified — a named public figure replaced with a description, a violent word softened. The image comes back. Nothing says it answered a different question.
Diversity and default injection. Some services append or substitute terms intended to broaden the range of people depicted, because an unmodified model returns the training-set average. This is a defensible aim with a clumsy mechanism, and it has produced well-publicised failures where the injected terms were applied to requests where they made no sense, including historical ones. The lesson is not that the aim was wrong. It is that the intervention happened at the prompt, invisibly, where the user could neither see it nor correct it.
How to detect it
You cannot read the rewritten prompt on most services. You can detect that rewriting is happening:
- Ask for something structurally odd — an empty room with a single grey box, nothing else. If the result contains furniture, plants and a window, something expanded your request.
- Repeat the identical prompt several times. Wide variation in scene content, as opposed to variation in the same scene, points at an upstream generator.
- Give a prompt that contradicts itself mildly. Expansion layers tend to resolve contradictions into something coherent; a raw model tends to produce the contradiction.
Some services will tell you the final prompt if you ask in the same conversation, and some show it in a details panel. Where it is available, look at it once. It is usually instructive about how much of your result was your idea.
Why this matters beyond curiosity
Three practical consequences.
Reproducibility is not yours. If the pipeline includes a rewriting step you cannot see or pin, then your prompt plus seed does not define the output. For work that must be repeatable — a series, a brand, anything a client will ask you to match — this is a real limitation of hosted services, and it is the main reason production studios keep local models for the shots that must be consistent.
Attribution of failure goes wrong. People conclude that a model "cannot" do something when it was the filter that refused, or that a model is "biased toward" something when it was the injection. Diagnosing anything requires knowing which layer you are talking to.
Disclosure gets complicated. If you are telling a client what went into a piece of work, "I wrote this prompt" is not quite true when an unseen model wrote most of the operative description. It rarely matters. It occasionally does, and it is better to know.
The free alternative, and its price
Running a model locally removes every one of these layers. Your prompt is the prompt. The seed reproduces. Nothing is injected, nothing is silently refused, and the record you keep is complete. ComfyUI, the various WebUIs, InvokeAI, Fooocus and Draw Things are all free, and small models run on modest hardware.
The price is honest to state. You maintain it. You choose the model, the sampler, the guidance and the upscaler yourself, and nothing helps you when a result is bad. The removal of the safety layer is also the removal of the safety layer: what you generate is entirely your responsibility, legally and ethically, and the law does not care that no filter warned you.
Most people end up using both — hosted services for speed and for the things the big models do best, local models for anything that must be reproducible, private or consistent. Knowing which one you are on, and what it is doing to your words, is the point of this lesson.
The one thing to keep
Hosted image services rewrite, expand and filter prompts before the model sees them, which explains results that do not match the words you typed and makes reproducibility a property of the service rather than of your record.
Before you move on
A hosted service returns wildly different scenes for the identical short prompt on repeated runs, while a local model with a fixed seed returns the same image every time. What does this most likely indicate?
Pick the one you would defend. Nobody sees your answer.