visualtoprompt.com

A ChatGPT image prompt from an image: one sentence, six commas

One plain sentence at the short setting, two at medium, three at long — no tags, no parameters, no weights. Six of the nine slots the tool measures reach the line; contrast, light distribution and vertical light direction never do.

One long bar broken by six dots, with the opening segment in blue.
One long bar broken by six dots, with the opening segment in blue.

A ChatGPT image prompt generated from a picture is a short run of plain sentences. The shape this tool emits for DALL⋅E and GPT Image targets is the sentence shape. Six of the nine measured slots arrive; contrast, light distribution and vertical light direction are measured and then dropped. The commas that join the clauses are real commas, so a weight parser cuts the first sentence into seven fragments and glues the tail of one sentence to the head of the next.

The line below is the fireworks frame at 640 × 360, longest setting, measured on the 192 × 192 grid — 219 characters, 31 words, nine commas, three full stops, printed exactly as the tool returned it:

A widescreen 16:9 image, dark, low-key lighting, with a palette of navy, grey,
slate, silver. Vivid, saturated colour, cool blue colour temperature, highly
detailed with intricate texture. Moody and dramatic atmosphere.

That is 219 characters, 31 words, three sentences, nine commas and three full stops. The same photograph written for Midjourney is 319 characters and 44 words of comma-separated tags, for Stable Diffusion 336 characters and 45 words, for Flux 273 characters and 39 words. The counts on this page come from three files: that fireworks frame, a backlit field, and a screenshot of a code editor. Every table names which of the three it was counted on, and the other two are there to check that a number is not an accident of one picture.

The shape, one sentence at a time

Both sentence shapes build their line by appending whole clauses, never by rewriting what is already there. The sentence count is fixed by the length setting and by nothing else:

Nine real outputs, three pictures × three length settings. Word and character counts are of the sentence as it appears in the line.
PictureShortMediumLong
Night fireworks1 sentence
15 words / 93 chars
2 sentences
15 + 12 words
93 + 94 chars
3 sentences
15 + 12 + 4 words
93 + 94 + 30 chars
Strong backlight1 sentence
15 words / 98 chars
2 sentences
15 + 10 words
98 + 73 chars
3 sentences
15 + 10 + 4 words
98 + 73 + 30 chars
Text screenshot1 sentence
16 words / 103 chars
2 sentences
16 + 11 words
103 + 84 chars
3 sentences
16 + 11 + 4 words
103 + 84 + 30 chars

The third sentence is 4 words and 30 characters on all three pictures, and it is the same four words every time: Moody and dramatic atmosphere. Run the three pictures side by side at the longest setting and the last 4 words of each line are byte-identical, while the identical run at the front is 11 words — everything from A widescreen 16:9 image through with a palette of. On the short setting that head is 11 words out of 15, or 73.3% of the line.

That clause is not a free choice, though. The atmosphere is computed from the same three measurements as exposure, contrast and colour temperature, so it can contradict you and never contradict its own neighbours — four of the sixteen exposure × mood combinations cannot occur at all. Where the sentence you write yourself should go, and what it costs, is set out in how the mood clause is locked to the numbers behind it, and where your own words go.

The line never contains the word composition. The Midjourney and Stable Diffusion shapes both bolt it onto the framing slot on all nine of their outputs; the two sentence shapes never do, because they write A widescreen 16:9 image instead.

Which branch the tool gives you for a gpt image 2.5 prompt

OpenAI’s prompting guide for this version lists five formats and does not rank them: “Short prompts, descriptive paragraphs, JSON-like structures, instructions, and tags can all express the same intent. Choose the format that makes the requirements easiest to read and update rather than relying on special syntax.” That is Image prompting — GPT Image 2.5 prompting guide, section Prompting fundamentals, at platform.openai.com/docs/guides/image-prompting; the page carries no publication date, so the date on the citation is the date it was read, 26 October 2026.

The branch this tool hands you for a gpt image 2.5 prompt is the sentence shape — the one this page has been calling the DALL·E and GPT Image target since the first table. That is a choice made on this site, not a preference of the model: of the four branches it is the one that goes into a single text field with nothing to strip, no parameter, no bracket, no weight, just clauses ending in full stops.

The 480 rows below exist to answer the conversion half of that and nothing else; what they count is what has to come off, not what works better.

The count, and what it does not say

The 480 rows answer a narrower question again, and only this one: whether this branch needs a conversion step before it can go into a single text field. 120 of the 480 lines carry a parameter and all 120 of them are the Midjourney branch; not one of the 480 contains a bracket character. That is a count of what has to be stripped, not a ranking of shapes. On this branch the answer is nothing.

480 rows, forty files × four branches × three lengths. “Parameter” means a -- token anywhere in the line; “bracket” means any of ( ) [ ] { }. Character counts are the median of forty files at that length.
BranchLinesWith a parameterWith a bracketMedian chars, longWhat it carries besides the clauses
midjourney1201200300.5an --ar tail, ten characters
sd12000317.5two quality tags pinned to the front
flux12000261.5sentences, and light distribution
dalle12000222sentences, no distribution, no parameter

Read the second column against the third: the only branch that needs a conversion step before it can go into a text field is the one with 120 parameters, and that is not this one. The other sentence branch is also parameter-free, but it writes a median of 261.5 characters at the long setting against this branch's 222, and it spends that difference partly on light distribution, which this branch never writes at all.

What 2.5 changes about a prompt, and what it does not

OpenAI’s launch page for the version, dated 8 September 2026, describes the change as instruction-following rather than syntax. Two sentences bear on how a prompt should be written: the model is “better at understanding complex visual instructions and translating them into coherent results”, and it is “more likely to retain the requested visual direction, composition, and individual details, instead of drifting as instructions become more specific”.

Neither sentence names a delimiter, a weight or a tag convention, and nothing else on that page does either. So the honest answer to “did the prompt format change” is no format change found — the shape decision above is the same for this version as for the one before it. What the two sentences do describe is a longer and more specific instruction being followed further than before, which is an argument against shortening the line, not for rewriting it.

The two API models behind the version, quoted from OpenAI’s model catalogue (read 26 October 2026) and from the launch page (8 September 2026).
Model idCatalogue lineLaunch page line
gpt-image-2.5-flareFast, high-quality everyday image generationbrings the same improvements in quality, editing, and speed
gpt-image-2.5-sunburstOur most capable model for image generation and editingoffers an extra level of precision for detailed creative work with longer generation times

Where the version name goes, and what it costs

The string gpt image 2.5 is 13 characters. Against this branch’s median long line, 222 characters, that is 5.9%. It is shorter than one clause of the line it joins: across the 120 sentence lines the median clause is 17 characters, the shortest is 3 and the longest is 63.

It is also an addition rather than a replacement, because the line never names a model — across all 480 rows the name of any of the four targets appears zero times. Put it in front, as its own comma-separated fragment. The first sentence already runs 89 to 145 characters, median 101.5, and carries six commas on 117 of the 120 lines (five on the other three), so the version name becomes the seventh fragment and every measured clause behind it keeps the position it had.

Six of the nine slots arrive

The tool measures nine descriptive slots off the file. How many of them a given shape actually writes is not the same number. Counted across nine outputs per shape — three pictures, three length settings:

Slot attendance out of nine outputs. Saturation and temperature reach the line at every length for the two comma-list shapes, and only at medium and long for the two sentence shapes.
SlotMidjourneySDFluxDALL⋅E
Framing9 / 99 / 99 / 99 / 9
Exposure9 / 99 / 99 / 99 / 9
Palette words9 / 99 / 99 / 99 / 9
Saturation9 / 99 / 96 / 96 / 9
Temperature9 / 99 / 96 / 96 / 9
Detail6 / 96 / 96 / 96 / 9
Mood3 / 93 / 93 / 93 / 9
Contrast6 / 96 / 90 / 90 / 9
Vertical light2 / 92 / 90 / 90 / 9
Light distribution6 / 96 / 93 / 90 / 9
Subject0 / 90 / 90 / 90 / 9

Two things fall out of that table. First, this shape is the only one of the four that never writes light distribution at all — Flux carries it on the three longest outputs, Midjourney and Stable Diffusion on six, this one on none, at any length. Second, contrast and vertical light direction are measured on every file and dropped from all nine lines, so a hard shadow or a brighter sky has to be written in by hand. The subject slot is empty for all four shapes on these three pictures; it fires only when a file is nearly monochrome, which is covered further down.

The same four colours, three different wrappers

All four shapes read the same four palette names off the same file and then wrap them differently. On the night photograph at the medium setting, the palette words are navy, grey, slate, silver in every shape:

One picture, three length-excluded comparisons at the medium setting. The share is the wrapper length over the whole line.
ShapeWrapperCharsShare of line
Midjourneydominant palette of navy, grey, slate, silver4516.9%
Stable Diffusiondominant palette of navy, grey, slate, silver4515.8%
FluxThe dominant colours are navy, grey, slate, silver.5126.2%
DALL⋅Ewith a palette of navy, grey, slate, silver.4423.4%

Run the same count on the other two pictures and the ordering holds: the backlit field gives 50 characters at 19.5% for Stable Diffusion and 49 at 28.5% for this shape, the code screenshot 55 at 21.8% and 54 at 28.7%. The colour clause is the single biggest block of measured content in the line, and it sits inside the first sentence rather than in a slot of its own.

Six commas inside one sentence

The sentence shape still uses commas, and it uses them inside the first sentence. Two of them separate the framing, exposure and palette clauses; three more sit between the four colour names. So the comma count climbs with the length setting while the comma density falls:

Punctuation on nine outputs. The first sentence carries six commas at every length setting on every picture.
SettingCommasFull stopsCommas in sentence 1Commas per sentenceLongest fragment
Night, short6166.0023 chars
Night, medium9264.5039 chars
Night, long9363.0070 chars
Backlight, short6166.0023 chars
Backlight, medium9264.5028 chars
Backlight, long9363.0059 chars
Screenshot, short6166.0026 chars
Screenshot, medium9264.5033 chars
Screenshot, long9363.0047 chars

The longest fragment is worth watching. On the night photograph it grows from 23 characters at the short setting to 39 at medium and 70 at long — not because a clause got longer, but because nothing after a full stop stops a comma parse.

Where a comma parser cuts three sentences

A weight parser splits on commas, and it does not know what a full stop is. Feed it the longest night output and three sentences become ten fragments:

1. "A widescreen 16:9 image"
2. "dark"
3. "low-key lighting"
4. "with a palette of navy"
5. "grey"
6. "slate"
7. "silver. Vivid"                       <- the full stop is inside the fragment
8. "saturated colour"
9. "cool blue colour temperature"
10. "highly detailed with intricate texture. Moody and dramatic atmosphere."

Fragment 7 is the tail of sentence 1 welded to the head of sentence 2. Fragment 10 is 9 words long and swallows the whole of sentences 2 and 3. Every one of the nine outputs round-trips unchanged through normalisation, and every one reports nothing out of range, because the line carries no weights and no colon-number pair that a parser could mistake for one.

Adding a weight to the line

Six edits to that same 219-character baseline, each one run through the parser. Every input is 225 characters; the output length is what normalisation produces:

Six single edits to one real output. “Orphan” means a fragment left behind that carries no measurement at all.
EditOutFragmentsWhat actually got weighted
Bracket the whole line at 1.2279 chars10Nine fragments land at 1.1 from the bracket; only the last keeps 1.2.
Bracket the whole first sentence at 1.3263 chars11Seven fragments, six at 1.1 and silver at 1.3. Leaves an orphan . Vivid, …
Bracket the exposure clause at 1.3231 chars10Splits: dark at 1.1, low-key lighting at 1.3.
Bracket one colour at 1.3226 chars11Only navy. Leaves an orphan with a palette of.
Bracket the whole colour list at 1.3246 chars12Three colours at 1.1, silver at 1.3, plus two orphans.
Bracket the mood sentence at 1.3228 chars12Exactly one fragment at 1.3 and nothing else — the only clean edit of the six. Leaves one orphan .

Nothing here reports out of range, because the bracketed weights stay inside the usable band. The interesting part is the orphans. Bracketing a clause that contains a comma leaves the leftover half as a fragment that means nothing on its own — with a palette of with its colours taken away, or a lone full stop. The one edit that lands on a single fragment and nothing else is the mood sentence, because it is the only sentence with no comma inside it.

What each length setting actually adds

Nothing is rewritten between settings; a clause is appended. These are the literal strings added to the night line, and to the other two:

Every length step is an append. The short line is a prefix of the medium line, and the medium line a prefix of the long line, on all three pictures.
PictureAdded at mediumAdded at long
Night fireworks Vivid, saturated colour, cool blue colour temperature, highly detailed with intricate texture. — 95 chars Moody and dramatic atmosphere. — 31 chars
Strong backlight Vivid, saturated colour, slightly warm tone, moderate detail and texture. — 74 chars Moody and dramatic atmosphere. — 31 chars
Text screenshot Moderately saturated colour, slightly cool tone, clean and minimal, smooth surfaces. — 85 chars Moody and dramatic atmosphere. — 31 chars

The step from medium to long is always the same 31 characters. If the mood slot is the only thing you want, the long setting buys you that clause and nothing else. Run the same append test over forty photographs instead of three and it holds on every one of them — and the last clause turns out to be one of only four possible strings. That measurement, along with what a word of this line costs you in pixels, is in what a good ChatGPT prompt for a picture has to contain.

The one case where a subject appears

On a flat grey 192 × 192 test image — every pixel the same value, so the monochrome ratio is 1.0000, mean lightness 120.00, standard deviation 0.00 and edge energy 0.00 — the subject slot finally fires, and this shape folds it into the first clause rather than opening with it:

A square 1:1 image dominated by black and white photograph, moderate, slightly
dim lighting, with a palette of grey. Monochrome, black and white, neutral
colour temperature, clean and minimal, smooth surfaces. Balanced, natural
atmosphere.

The subject arrives as dominated by black and white photograph, mid-clause, with no article in front of it. The same file written for Midjourney and Stable Diffusion puts that phrase first as a bare tag; written for Flux it becomes its own sentence, The frame is dominated by black and white photograph. Four shapes, four placements, one measured value.

Editing one sentence without splitting it

What a one-sentence prompt gets asked

Three “People also ask” boxes captured on 2026-09-19. The answers below are arithmetic on the nine lines this shape produced for three files, at three lengths each.

What are some good prompts for AI photos?

Printed unedited from the fireworks frame, so the nine commas can be counted where they actually sit: A widescreen 16:9 image, dark, low-key lighting, with a palette of navy, grey, slate, silver. Vivid, saturated colour, cool blue colour temperature, highly detailed with intricate texture. Moody and dramatic atmosphere. — 219 characters, 31 words, three sentences, nine commas. What it leaves out is as useful as what it puts in: no contrast, no light distribution, no vertical light direction, and no subject.

What are some good AI photo prompts?

Pick the shape to match the target and then edit only one clause. For a sentence-shaped target the line is one sentence at the short setting, two at medium and three at long, and each step appends a clause without touching the ones below it — 95 characters then 31 on the night photograph. If you want a faithful render, paste it unchanged; if you want a deliberate change, edit the clause carrying that measurement, and remember that a bracket around anything except the mood clause splits across its commas.

If the sentence is not what your target reads: what a flux prompt looks like from an image is the other sentence shape, and the one that does carry light distribution; where the weights go in a Stable Diffusion prompt is the comma-list version with a fixed quality prefix; what a Midjourney prompt looks like from an image is the only shape with a parameter at all. Which images an image to prompt tool handles badly covers the frames where none of the four works.