How to convert a prompt to an image
Pick a generator, paste the line, set the size yourself, and write the one sentence the tool cannot write. The converting step belongs to Midjourney, Stable Diffusion, Flux or GPT Image — this site runs the other direction, image to prompt. What it can tell you is what the line is carrying when it gets there. We pushed 40 photographs through all four shapes at all three lengths — 480 lines — and split every one of them into measured characters and scaffolding: 64% to 82% of each line comes off your file, the rest is fixed text the composer always emits. Of those 480 lines, 120 carry any size instruction and zero carry a word for what is in the picture. That gap is the whole job.
What was measured. Forty real files — 39 stock photographs at 640 × 360 and 800 × 450, plus one code screenshot — decoded on this machine, box-downsampled to the 192 × 192 grid the live tool uses, then composed into all four shapes at all three lengths. No model was called and no image was generated anywhere in this page: every figure is arithmetic over pixels and over the strings the composer returns.
So the practical answer has four moves. Generate the line here. Choose the shape that matches the generator you are going to use, because the four shapes do not say the same things. Add the size, because three of the four shapes do not carry one. Then write the subject yourself, because the line describes how your photograph looks and never what it shows.
Two-thirds of the line is your file; the rest is scaffolding
Every line the composer returns is made of two kinds of characters. The first kind is a value that came out of a measurement: the framing phrase, the exposure phrase, the four colour names, and so on. The second kind is identical in every line the composer will ever produce — the commas, the word composition, the dominant palette of clause, the masterpiece, best quality, prefix on the Stable Diffusion shape, the A … image frame on the two sentence shapes. Splitting the 480 lines that way gives this, as medians over the 40 files:
| Shape / length | Line | Measured | Scaffolding | Measured share |
|---|---|---|---|---|
| Midjourney / short | 170.5 | 120.5 | 40 | 70.7% |
| Midjourney / medium | 255 | 199 | 46 | 78.1% |
| Midjourney / long | 300.5 | 241 | 50 | 80.1% |
| Stable Diffusion / short | 187.5 | 120.5 | 67 | 64.3% |
| Stable Diffusion / medium | 272 | 199 | 73 | 73.2% |
| Stable Diffusion / long | 317.5 | 241 | 77 | 75.8% |
| Flux / short | 109 | 71 | 38 | 64.7% |
| Flux / medium | 198 | 154 | 44 | 77.6% |
| Flux / long | 261.5 | 213.5 | 48 | 80.5% |
| DALL·E / short | 102 | 71 | 31 | 69.2% |
| DALL·E / medium | 191 | 154 | 37 | 80.4% |
| DALL·E / long | 222 | 183 | 39 | 82.3% |
Two things follow. The share climbs with the length setting in all four shapes — short tops out at 70.7%, long bottoms out at 75.8% — so the longer setting is not padding, it is more of your file per character. And the measured part ranges from 59 characters to 280 across the whole set, so the short DALL·E line and the long Stable Diffusion line are not the same object at all. On the Midjourney shape the ratio tail is a further 10 characters that are not in either pile: they come from your file’s dimensions, not from the grid.
Here is one line taken apart, a long Midjourney line for a 640 × 360 photograph, 279 characters:
framing widescreen 16:9 15
exposure well-lit, balanced exposure 27
palette white, charcoal, silver, grey 29
saturation muted, desaturated tones 24
temperature neutral colour temperature 26
contrast high contrast 13
detail moderate detail and texture 27
distribution evenly lit 10
vertical brighter upper half 19
mood moody and dramatic atmosphere 29
measured total 219
279 characters = 219 measured + 50 scaffolding + 10 for " --ar 16:9"
How much of the picture the line actually needs
Next question: if the line is a summary of your file, how much of the file does it need? We ran two ladders over the same 40 photographs. The first throws away resolution — the picture is reduced to a k × k grid and put back on the 192 × 192 grid, from fine to coarse, stopping at the first step where the line changes. The second throws away colour — each channel is squeezed to a fixed number of values, again stopping when the line moves.
| Ladder | Midjourney / long | DALL·E / short |
|---|---|---|
| Resolution — median | 128 × 128 | 128 × 128 |
| Resolution — coarsest survivor | 16 × 16 | 16 × 16 |
| Resolution — finest required | 192 × 192 | 192 × 192 |
| Files needing the full grid | 19 / 40 | 16 / 40 |
| Colour levels — median | 128 (7 bit) | 64 (6 bit) |
| Colour levels — coarsest survivor | 8 (3 bit) | 8 (3 bit) |
| Files surviving at 8 levels | 4 / 40 | 4 / 40 |
The median is a 128 × 128 grid: 16,384 cells out of 36,864, so you can discard 55.6% of what the tool measures and still get the same long line back. One photograph held its line all the way down to 16 × 16 — 256 cells, or 0.69% of the grid. Four photographs kept the identical line with each channel cut to eight possible values, three bits per channel. That is the honest measure of what survives the trip: the line is a report on the file’s statistics, which is exactly why it can be produced from so little of the file, and exactly why it cannot tell a generator what to draw.
Feed it back and you would not get your photograph
Reverse the question. If you handed one of these lines to a generator, how many of the 40 photographs could it have come from? We compared every pair of files slot by slot, counting how many of the slots that actually reach the line differ:
| Length | Slots compared | Median slots different | Pairs differing only in colour | Distinct descriptions | Largest group |
|---|---|---|---|---|---|
| short | 6 | 3 | 17 / 780 | 29 / 40 | 5 |
| medium | 9 | 5 | 4 / 780 | 37 / 40 | 3 |
| long | 11 | 6 | 0 / 780 | 40 / 40 | 1 |
No two photographs produce an identical description at any length — the four colour names always separate them — but that is a thin thread. At the short setting the 40 files collapse into 29 distinct descriptions, and 19 of the 40 photographs share their entire short description with at least one other file. Five of them share one description outright; their measured brightness runs from 96.78 to 113.43, and their long lines are all five different:
widescreen 16:9 composition, moderate, slightly dim lighting, dominant palette of charcoal, tan, gold, slate, moderately saturated colour, warm golden colour temperature --ar 16:9 widescreen 16:9 composition, moderate, slightly dim lighting, dominant palette of grey, brown, black, silver, moderately saturated colour, warm golden colour temperature --ar 16:9 widescreen 16:9 composition, moderate, slightly dim lighting, dominant palette of moss green, charcoal, tan, beige, moderately saturated colour, warm golden colour temperature --ar 16:9 widescreen 16:9 composition, moderate, slightly dim lighting, dominant palette of charcoal, slate, grey, silver, moderately saturated colour, warm golden colour temperature --ar 16:9 widescreen 16:9 composition, moderate, slightly dim lighting, dominant palette of grey, charcoal, moss green, tan, moderately saturated colour, warm golden colour temperature --ar 16:9
Five different photographs, none of which the tool can name, that the short setting cannot tell apart except by their four colour names. If you fed any one of those five lines to a generator, the result would be a picture consistent with all five. That is the failure mode to design around, and it is why the length setting matters more than it looks.
The four things the generator has to supply
The rest of the gap is inventory. Across all 480 lines, here is what is present and what is not:
| What the generator needs | Lines that carry it | What is there instead |
|---|---|---|
| A size or ratio | 120 / 480 | Only the Midjourney shape carries one ( --ar 16:9, 10 characters). No line contains a pixel dimension. |
| The subject | 48 / 480 | The only content phrase the library can emit is black and white photograph, a statement about the file. Every other word in all 480 lines is a measured slot value or a literal from the composer — measured: zero words outside that set. |
| Emphasis or a negative | 0 / 480 | No brackets, no (term:1.3), no negative. A parser looking for a weight finds nothing and reads the whole clause as one term at weight 1. |
| Any number that is not a ratio | 0 / 480 | 1,800 digit characters in total, all of them inside 16:9 (600 occurrences). Nothing else in the line is numeric. |
Read that table as the hand-off list. Size, subject, emphasis and every countable detail arrive empty, and the generator fills each of them from its own priors unless you fill them first.
The sentence only you can write
Which leaves the part that is genuinely yours. We prepended an eight-word, 48-character sentence — a cyclist crossing an empty intersection at dawn — to the generated line for one photograph, in all twelve shape and length combinations, and measured what it costs:
| Shape / length | Line before | Line after | Your share | Terms in the parser |
|---|---|---|---|---|
| Midjourney / short | 171 | 221 | 21.7% | 10 → 11 |
| Midjourney / medium | 227 | 277 | 17.3% | 13 → 14 |
| Midjourney / long | 279 | 329 | 14.6% | 15 → 16 |
| Stable Diffusion / short | 188 | 238 | 20.2% | 12 → 13 |
| Stable Diffusion / medium | 244 | 294 | 16.3% | 15 → 16 |
| Stable Diffusion / long | 296 | 346 | 13.9% | 17 → 18 |
| Flux / short | 109 | 159 | 30.2% | 5 → 6 |
| Flux / medium | 192 | 242 | 19.8% | 7 → 8 |
| Flux / long | 235 | 285 | 16.8% | 7 → 8 |
| DALL·E / short | 102 | 152 | 31.6% | 7 → 8 |
| DALL·E / medium | 185 | 235 | 20.4% | 10 → 11 |
| DALL·E / long | 216 | 266 | 18.0% | 10 → 11 |
In all twelve, your sentence becomes the first term the parser sees, at weight 1, and the term count goes up by exactly one; nothing lands outside the safe band. On the Stable Diffusion shape it also pushes masterpiece into second place, which is the right order — quality tags are not a subject. Wrapping the same sentence as (…:1.3) reads back as 1.3 and costs six more characters. On the shortest DALL·E line your eight words are 31.6% of everything the generator will read; on the longest Stable Diffusion line they are 13.9% — still the only words in the line that name anything.
- Choose the shape by the generator, not by habit. The four shapes do not carry the same slots: the two sentence shapes never write contrast, and the DALL·E shape never writes a light distribution either.
- Use the long setting. At short, 19 of 40 photographs share a description with another file and 17 of the 780 pairs differ only in colour; at long, all 40 descriptions are distinct and no pair differs in colour alone.
- Set the size in the generator. Three shapes carry no ratio at all and no line anywhere in the 480 carries a pixel dimension. Only the Midjourney shape hands one over, and it is measured from your file’s dimensions.
- Write the subject sentence yourself, in front of the line. Eight words is enough to be the first thing the parser reads, and it is the only part of the line that says what is in the frame.
- Leave weights and negatives out unless your target reads them. The generated line contains none, and the 600 numeric tokens across the 480 lines are all the same ratio,
16:9.
Forty photographs, two ladders, one parser
Forty real 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 grid the live tool measures on, so every figure matches what the site would tell you for the same file. Each was described once and composed into four shapes at three lengths: 480 lines. The measured-versus-scaffolding split sums the characters of the slot values that actually reach the line in that shape; the rest of the line is scaffolding, with the Midjourney ratio tail counted separately. The resolution ladder reduces the original to a k × k grid and returns it to 192 × 192, descending until the line changes; the colour ladder quantises each channel to a fixed number of values the same way. The pair comparison counts differing slots across all 780 pairs. The eight-word sentence was prepended as literal text and read back through the site’s own weight parser. No model was called, no image was generated, and nothing here is taken from another site’s wording.
For the twelve measurements behind every phrase in the line, see what an image to prompt tool measures; for the closed vocabulary it draws on, see what an image describer actually writes; for producing the line from a picture in the first place, see how to generate a prompt from an image; and for what the generator does with it after the hand-off, see what “prompt to image” really involves.