VisualToPrompt

One Image, Four Prompts: Same Words, Different Punctuation

Choosing a model changes the punctuation, not the description. I ran the same forty image files through four output shapes and three lengths — 480 lines in total. After stripping the model-specific wrappers, 57.5% of the words in a line are shared by all four shapes; the median vocabulary of a single image is only 35–46 words across all four. The measured content is identical. What differs is the frame: Midjourney and Stable Diffusion write 0 full stops in all forty files, DALL·E writes exactly 2 every time, and the shortest line of the four is 1.89× shorter than the longest at the same setting.

What these numbers are. Forty real files — 39 landscape photographs at 640 × 360 and a single 800 × 450 code screenshot — opened locally, box-downsampled onto the 192 × 192 grid this tool measures on, then run through the library's own analyze → describe → compose chain exactly as the browser executes it. Four shapes, three lengths, so twelve runs per file and 480 composed strings. No model was called and no image was generated: every figure below counts what this repository writes.

The four shapes share most of their words

Before comparing lengths it is worth asking whether the four shapes even say different things. I lowercased every line, deleted the two model-specific wrappers (--ar N:N and masterpiece, best quality,), replaced punctuation with spaces, and compared the word sets of the four long-length lines written from the same image.

Vocabulary overlap of the four long-length lines per image, 40 images, wrappers removed. “Union” is every distinct word any of the four shapes used for that image.
MeasureValue
Words shared by all four shapes, median57.5%
Lowest overlap52.2%
Highest overlap65.0%
Distinct words per image, minimum35
Distinct words per image, maximum46

There is no image where the four shapes disagree about what to say. A photograph produces 35 to 46 distinct words in total, and more than half of them appear in all four lines. The remaining 42.5% is not new information; it is the same information respelled. Counting words that appear in exactly one shape makes this concrete.

Words used by exactly one of the four shapes, across all 40 images. A word counts once per shape no matter how many images contain it.
ShapeExclusive wordsWhich ones
Midjourney0—
Stable Diffusion0—
Flux5are, colours, frame, is, the
DALL·E1with

Midjourney and Stable Diffusion contribute no exclusive word at all — every word they write is also written by one of the other three. Flux's five exclusive words are all grammar: the, is, are and the noun frame. DALL·E contributes the single preposition with. That is the whole lexical difference between four "different" prompt formats: seven function words.

Length: same information, up to 2.09× apart

If the words are shared, why are the lines not the same length? Because two shapes join with commas and two join with full stops, and sentence framing costs fewer characters per slot than a comma list of adjectives.

Character counts by shape and length; 40 lines per grid. Percentile columns are over the 40 lines in that grid.
ShapeLengthMinMedianMaxMeanWords (mean)
Midjourneyshort151165199167.822.6
Midjourneymedium210251292248.234.0
Midjourneylong247297334293.239.8
Stable Diffusionshort169183217185.823.6
Stable Diffusionmedium228269310266.235.0
Stable Diffusionlong265315352311.240.8
Fluxshort92104161108.616.6
Fluxmedium174193255199.227.8
Fluxlong217260324257.136.1
DALL·Eshort8597140100.216.3
DALL·Emedium167186234190.827.5
DALL·Elong198217264221.131.1

Two facts stand out. First, the gap is widest at the shortest setting and narrows as the line gets longer: the longest/shortest ratio per image has a median of 1.89× at short length, 1.36× at medium and 1.38× at long. The reason is that the two sentence shapes add sentences as the length grows, and a sentence costs more characters than the comma slot it replaces, so they catch up.

Longest divided by shortest of the four shapes for the same image, then summarised across 40 images.
LengthMedian ratioMax ratioImage at max
short1.89×2.09×p129
medium1.36×1.54×q987
long1.38×1.56×q987

Second, Stable Diffusion is the longest of the four on all 40 images at all three lengths — 40 out of 40, three times over. It is not writing more description. It is prefixed with a 27-character quality string that Midjourney does not have, and Midjourney's own --ar tail is shorter than that prefix. Subtract the wrappers and the ranking by measured content collapses: the median long line is 297 characters for Midjourney and 315 for Stable Diffusion, a 6% gap produced entirely by a fixed literal.

Punctuation: the difference that is not describable

The most useful measurement on this page is the cheapest one. Count the full stops.

Comma and full-stop counts on the medium-length line, 40 images per shape. “Zero” counts images where the shape wrote no such mark at all.
ShapeCommasFull stopsImages with 0 commasImages with 0 full stops
Midjourney10–1400 / 4040 / 40
Stable Diffusion12–1600 / 4040 / 40
Flux4–75–60 / 400 / 40
DALL·E7–1020 / 400 / 40

Midjourney and Stable Diffusion write zero full stops in forty out of forty images. They are not sentences; they are comma-separated tags, and the absence of a full stop is the single most reliable signal that a line was written for one of them. DALL·E writes exactly 2 full stops on every one of the forty images — not a range, a constant — because its long shape is a fixed two-sentence template. Flux is the only shape whose punctuation varies with content, at 5 to 6 full stops.

Sentence counts say the same thing from another angle: on the long line, Midjourney and Stable Diffusion have 0 sentences, Flux has 7 to 8, DALL·E has 3.

This is why "rewrite this for Midjourney" is mostly a formatting job. If the words are already shared, the work left is: remove the full stops, join with commas, move the palette phrase to a fixed position, and append the ratio. There is nothing to add that the tool did not already measure.

Four constants that hold on every file

Some properties do not vary at all across the corpus. These are the shapes' skeletons, and they hit 40 out of 40.

Structural constants of each shape on the long-length line, across all 40 images.
PropertyHitsShape
Ends with --ar N:N40 / 40Midjourney only
Starts with masterpiece, best quality, 40 / 40Stable Diffusion only
First sentence matches A … image.40 / 40Flux only
Opens with A 40 / 40DALL·E only
Carries --ar0 / 40all three non-Midjourney shapes

Growing a line: what each shape adds per length step

Each shape grows the same way conceptually — more slots at medium, then mood at long — but the character cost per step is not the same.

Character growth from short to medium to long, averaged over 40 images per shape.
Shapeshort → mediummedium → longshort → long (min–max)
Midjourney+80.4+45.087–156 (median 123)
Stable Diffusion+80.4+45.087–156 (median 123)
Flux+90.5+57.9118–181 (median 142)
DALL·E+90.5+30.3105–134 (median 122)

Midjourney and Stable Diffusion have identical growth figures — +80.4 and +45.0, and the same 87–156 range — because they add and remove the same slots in the same order. The three fixed wrappers differ in length but not in behaviour, so they shift the whole line without changing its growth. DALL·E is the most economical at the last step (+30.3, versus +57.9 for Flux) because it adds mood and skips the light-distribution sentence that Flux writes.

How many colour names each shape will commit to

Colour is a special case: the writer itself caps the palette at four names, so all four shapes write 3 to 4 colour words on every image, and that part of the line is genuinely identical across shapes. The difference is where the four names sit.

Colour names written into the long line. The cap of four is in src/describe.js, so no shape can exceed it. 39 of 40 files get 4 names; one gets 3.
ShapeNames (min–max)MeanWhere they sit
Midjourney3–43.98third comma slot, after framing and exposure
Stable Diffusion3–43.98third comma slot, after the quality prefix
Flux3–43.98a dedicated sentence, third in order
DALL·E3–43.98inside the opening sentence, as a with a palette of clause

This is the one part of the line where switching models changes nothing at all: same four words, same order, because they come from one capped list. DALL·E is the only shape that folds them into the first sentence instead of giving them their own slot — which is why its long line is the shortest of the four even though it names the same colours.

The same image, verbatim

One file (p101), long length, all four shapes. Read them side by side and the claim of this page is visible without a table.

Midjourney
square 1:1 composition, bright, high-key lighting, dominant palette of silver, moss
green, cream, grey, muted, desaturated tones, neutral colour temperature, medium
contrast, moderate detail and texture, evenly lit, balanced, natural atmosphere --ar 1:1

Stable Diffusion
masterpiece, best quality, square 1:1 composition, bright, high-key lighting, dominant
palette of silver, moss green, cream, grey, muted, desaturated tones, neutral colour
temperature, medium contrast, moderate detail and texture, evenly lit, balanced,
natural atmosphere

Flux
A square 1:1 image. Bright, high-key lighting. The dominant colours are silver, moss
green, cream, grey. Muted, desaturated tones, neutral colour temperature. Moderate
detail and texture. Evenly lit. Balanced, natural atmosphere.

DALL-E
A square 1:1 image, bright, high-key lighting, with a palette of silver, moss green,
cream, grey. Muted, desaturated tones, neutral colour temperature, moderate detail and
texture. Balanced, natural atmosphere.

Every measurement in all four lines is the same: framing, exposure band, palette, saturation, temperature, contrast, detail, light distribution, mood. The four shapes disagree about the order, the punctuation and the wrapper — and DALL·E drops the light-distribution clause that the other three write. Nothing about the image has been re-described.

What this means if you are moving between models

Forty files, four shapes, 480 lines

The corpus is the one used across this site: thirty-nine stock photographs at 640 × 360 and a single 800 × 450 code screenshot, all opened on this machine, reduced onto the 192 × 192 grid, and composed by the library itself at four shapes and three lengths. Every figure is on disk: prep/day47_voice.mjs writes prep/day47-model-voice.json and prep/day47-model-voice.log for the length, punctuation and growth tables; prep/day47b_voice.mjs writes prep/day47b-voice.json and prep/day47b-voice.log for the vocabulary overlap, exclusive-word, sentence-count and palette tables. Shape definitions live in src/compose.js; the four-name palette cap lives in src/describe.js.

Two limits. The corpus is 39 landscape photographs and one screenshot, all 16:9; other aspect ratios would change individual line lengths but not the shape constants, which are string literals and do not depend on the image. And the vocabulary comparison is done on lowercased, punctuation-stripped tokens after removing two fixed wrappers — it measures wording overlap, not semantic equivalence, though on this corpus the two coincide because the four shapes are generating from one shared description object.

For the twelve slots all four shapes are built from, see what an image to prompt tool measures. For what happens to the palette when the writer has to name five colours and can only write four, see how a colour gets named. For the same four lines measured against a character cap, see image to prompt as alt text; for the cut points where each phrase flips, see the cut-point table, and for the ratio parameter that ends up as the Midjourney tail, see weighting a prompt and writing a negative.