What are the best AI prompts for images? The part you write yourself
The best AI prompt for an image is one you finish by hand: the thing in the picture, written by you, at the front, with the measured words riding behind it. That is not a stylistic preference — it is what the numbers say. We pushed 40 different photographs through one image to prompt generator and counted. The slot that could name a subject filled in 0 times out of 40 — naming something in the picture, that is: the four times the slot was not empty it wrote black and white photograph, a fact about the file rather than about what is in the picture. Between 8 and 12 words of every line were identical in all forty. And once the four colour names are removed, 15 of the 40 photographs produce the same one-sentence prompt.
What was measured. Forty real files — 39 stock photographs and one code screenshot — each sampled to the 192 × 192 grid the live tool uses, then composed into all four shapes (Midjourney, Stable Diffusion, Flux, DALL·E) at all three lengths. No model was called and no image was generated; every number below is arithmetic over pixels, run on this machine, and reproducible from the same files.
Here is the shape of the answer. A generated prompt is specific about the photograph and silent about the picture. It tells you the light was low-key and the palette was navy, grey, slate, silver — and it never says the frame contains fireworks, or a bicycle, or a person. The four colour names are doing almost all of the distinguishing work, and they are the most volatile part of the line: a 1% brightness change moved a word in half the photographs, and in 39 of 40 cases the word that moved was a colour name.
Forty photographs, zero subjects
The describer assigns twelve named values. Eleven of them can reach the prompt; the twelfth, a hue hint, is computed every pass and read by nothing. Below is what the code can choose from, and what forty real photographs actually produced.
| Slot | Values the code can pick | Seen in 40 | How the forty split |
|---|---|---|---|
subject | 2 | 2 | empty ×36, black and white photograph ×4 |
framing | 8 | 1 | widescreen 16:9 ×40 (every file in the set is landscape) |
exposure | 4 | 4 | slightly dim ×16, well-lit ×9, low-key ×9, high-key ×6 |
sat | 4 | 4 | moderately saturated ×17, muted ×14, vivid ×5, monochrome ×4 |
temp | 5 | 5 | warm ×12, neutral ×10, slightly warm ×7, cool ×7, slightly cool ×4 |
contrast | 3 | 3 | medium ×28, high ×7, soft ×5 |
detail | 3 | 3 | highly detailed ×22, moderate ×14, clean and minimal ×4 |
dist | 3 | 3 | evenly lit ×21, centre-lit ×15, edge-lit ×4 |
vert | 3 | 3 | brighter upper half ×22, empty ×12, brighter lower half ×6 |
mood | 4 | 4 | moody ×16, balanced ×14, uplifting ×5, calm and cool ×5 |
paletteWords | 1,256,640 | 37 | 37 distinct four-name lines out of 40 photographs |
hint | 4 | 4 | computed every pass, never reaches the prompt |
The four monochrome hits are the whole story of the subject slot. It opens at exactly one condition — more than 85% of pixels below 0.10 HSV saturation — and the string it writes is black and white photograph, which is a fact about the file, not about what is in it. The other 36 photographs got nothing. So on a colour photograph, a generated prompt contains no word for anything in the picture: no object, no place, no person, no material. That part is yours, and it is the first thing the prompt needs.
How much of the line is the same line
Next question: if the subject is missing, what fills the space? Count the words that appear in all forty prompts at once, per shape and length.
| Shape / length | Avg words | Words identical in all 40 | Share of the line | Avg overlap between two photos |
|---|---|---|---|---|
| Midjourney short | 22.6 | 8 | 35.4% | 0.467 |
| Midjourney medium | 34.0 | 9 | 26.4% | 0.450 |
| Midjourney long | 39.8 | 10 | 25.1% | 0.455 |
| Stable Diffusion short | 23.6 | 10 | 42.3% | 0.499 |
| Stable Diffusion long | 40.8 | 12 | 29.4% | 0.475 |
| Flux short | 16.6 | 9 | 54.4% | 0.528 |
| Flux long | 36.1 | 10 | 27.7% | 0.454 |
| DALL·E short | 16.3 | 8 | 49.2% | 0.514 |
| DALL·E long | 31.1 | 9 | 28.9% | 0.461 |
Read the right-hand column as a similarity score between two unrelated photographs: on the short shapes, roughly half the vocabulary of any two prompts overlaps. In the shortest Flux outputs, more than half of an average line is words every photograph gets — 54.4% of it. The shortest DALL·E outputs stop just short of half, at 49.2%. Two completely different pictures walk away with prompts that are half the same sentence, because the framing, the connector words and the shape of the sentence do not depend on your picture at all.
Take the colour names out and the short shapes collapse
So what makes two prompts different? Replace the palette line with a placeholder and recount, keeping everything else identical.
| Shape / length | Distinct, palette included | Distinct, palette neutralised | Largest group sharing one wording |
|---|---|---|---|
| Midjourney short | 40 / 40 | 29 | 5 photographs |
| Midjourney long | 40 / 40 | 40 | 1 |
| Stable Diffusion short | 40 / 40 | 29 | 5 photographs |
| Stable Diffusion long | 40 / 40 | 40 | 1 |
| Flux short | 39 / 40 | 7 | 15 photographs |
| Flux medium | 40 / 40 | 34 | 4 photographs |
| Flux long | 40 / 40 | 37 | 3 photographs |
| DALL·E short | 39 / 40 | 7 | 15 photographs |
| DALL·E long | 40 / 40 | 34 | 4 photographs |
Fifteen photographs, one sentence. Their measurements were not close to identical, either: across that group the mean luminance ran from 84.56 to 128.57 and the luminance spread from 25.01 to 86.47 — a range that spans “soft, low contrast” to “high contrast” in other companies’ wording, and here produces one line, because all fifteen landed in the same band of every short-shape slot. The long shapes do not collapse the same way: with the four colour names neutralised, Midjourney and Stable Diffusion still keep all 40 prompts apart, Flux keeps 37 of 40 apart and DALL·E 34 of 40 — the weakest of the four still separates 34 of the 40 photographs. They manage that because they carry five more slots than the short shapes; the extra length is what keeps the outputs apart, not extra information per slot.
The colour list is the only part with real range
Count the combinations and the reason is visible. The palette has 35 named colours, and the line writes up to four distinct names in order:
35 names, ordered, up to four distinct:
1 name 35
2 names 1,190
3 names 39,270
4 names 1,256,640 <- the line the composer actually writes
everything else, long shape:
8 framing x 4 exposure x 4 saturation x 5 temperature x 2 subject
x 3 contrast x 3 detail x 3 distribution x 3 vertical x 4 mood
= 414,720
The four colour names have three times the range of the other ten slots combined — everything in the long shape except the palette and the hue hint that never reaches the prompt: framing, exposure, saturation, temperature, subject, contrast, detail, distribution, vertical and mood. That is the honest answer to “what makes a generated prompt mine”: on a colour photograph, essentially the palette, and nothing else. It is also why the palette is the part you should check first — it is where a wrong answer is both most likely and most damaging, because a colour list that misses your picture will pull the whole render off.
How coarse the rest of it is
Each remaining slot is a switch with three to eight positions, and we found where each one flips by sweeping a single photograph along one axis at a time. These are the crossing points, measured rather than read off the source:
| Axis | Wording | Crossing point | Range with no change |
|---|---|---|---|
| Brightness | low-key → slightly dim → well-lit → high-key | meanL 80.01 / 130.86 / 178.20 | 18.19 → 233.18, four words |
| Brightness (mood) | moody → balanced → uplifting | meanL 98.15 / 228.16 | same sweep |
| Blur radius | highly detailed → moderate → clean and minimal | edge 15 and 7 | edge 22.50 → 1.60, three words |
| Saturation | muted → moderate → vivid | meanSat 0.22 / 0.45 | 0 → 0.80 |
| Saturation (mono) | “black and white photograph” appears | monoRatio 0.85 | meanSat 0.031 keeps it, 0.041 loses it |
The brightness sweep deserves the detail. On a bright photograph we scaled every pixel from 0.10× to 1.60× in 76 steps; mean luminance travelled from 18.19 to 233.18 and the exposure wording moved through four words in three changes. On a night photograph we scaled from 0.25× to 2.00× in 36 steps: mean luminance went from 8.61 to 63.82 — a 7.4-fold change — and the lighting phrase stayed dark, low-key lighting for every single step. If your picture is dark, you can make it much darker or considerably brighter and the prompt will not say a different thing about the light.
The smallest change that moves a word
In the other direction: how much does a picture have to change before any word moves at all? We brightened each of the forty photographs in 1% steps until the Midjourney long output differed.
- Median: 1%. Half the photographs produced a different prompt after a one-percent brightness increase.
- Average 3%, worst case 15%. Every one of the forty moved within a 30% range.
- 39 of 40 moved only inside the colour list. One photograph changed a descriptive word — at +9% it went from moderate detail and texture to highly detailed with intricate texture.
That is the sensitivity profile you are working with: the prompt twitches at the slightest change in the pixels, and what twitches is the palette. The nine descriptive slots behind it barely move. So a prompt is at once fragile where it does not matter and rigid where you might expect nuance.
What your own words do to the line
Adding your subject is a nine-word, 46-character phrase. Put it in front of a generated line and this is what changes:
| Length | Generated | With your subject | Your share of the line | Terms before → after |
|---|---|---|---|---|
| short | 163 chars / 22 words | 211 chars / 31 words | 21.8% | 10 → 11 |
| medium | 267 chars / 37 words | 315 chars / 46 words | 14.6% | 13 → 14 |
| long | 319 chars / 44 words | 367 chars / 53 words | 12.5% | 15 → 16 |
Three things follow. Your phrase becomes term 1, which matters because weight decays left to right — a landscape tag in front shrinks the subject behind it, and the generated line opens with exactly such a tag (widescreen 16:9 composition). The parser reads your phrase as one term at weight 1, and wrapping it as ((a red bicycle leaning against a wet brick wall:1.3)) lands on 1.43 — still inside the 0.4–1.6 band where weights behave. And the longer the generated line, the smaller your share of it: by the long length, your subject is one eighth of what you paste.
Where you put that phrase is the next question, and it is not the only place you can touch the line: for what each of five edits does to the fragments a parser sees, measured on 800 edited lines, see where your words land when you edit a generated line.
A recipe that follows from the numbers
- Write the subject first, every time. It filled in 0 times out of 40 — naming something in the picture, that is; the four times the slot was not empty it wrote black and white photograph, a fact about the file rather than about the picture. One noun phrase at the front, before the framing tag the generator opens with.
- Short is where the outputs collide. Fifteen photographs shared one Flux short sentence. If you want a prompt that belongs to your picture, use the long shape or write more of it yourself.
- Check the four colour names before anything else. They carry more of the output than all ten other slots combined, and they are what moves when the pixels move 1%.
- Do not expect the wording to track small changes in light. A dark picture can change 7.4-fold in luminance and keep the same lighting phrase; if the light matters, say it in your own words.
- Overwrite phrases, do not delete slots wholesale. Everything except your subject is arithmetic on your file, so replacing one wrong phrase keeps the rest honest.
- Keep weights between 0.4 and 1.6, and do not raise several related attributes at once — pushing one element too high contaminates its neighbours.
The forty files, and what was done to them
Forty files — 39 stock photographs at 640 × 360 and 800 × 450, plus one code screenshot — were decoded on this machine and box-downsampled to 192 × 192, the same grid the live tool measures on, so the measurements match what the site would tell you. Each was described and composed into four shapes at three lengths. The collision counts come from comparing the 40 resulting strings per shape and length, and again after substituting a placeholder for the palette; the shared-word counts come from intersecting the word sets of all forty. The sweeps are single-axis: brightness scaling in 76 steps on one bright photograph and 36 steps on one dark one, a box blur at eleven radii, and a desaturation ramp in 61 steps. The subject-insertion numbers run the result back through the weight parser. No model was called, no image was generated, and nothing here is taken from another site’s wording.
For the closed vocabulary behind these phrases, see what an image describer actually writes; for the measurements each phrase comes from, see what an image to prompt tool measures; for the order to work in when a phrase is wrong, see fixing a wrong image to prompt output; for how weights behave once you add them, see weighting a prompt and writing a negative; and for turning a picture into something you can paste, see how to generate a prompt from an image.