visualtoprompt.com

How to Generate a Prompt From an Image — Five Steps, in the Order That Matters

Drop a picture in, get a prompt out. The order you do the five things in decides whether the prompt is usable: crop, shape, length, subject, then leave the measured phrases alone.

A left-to-right flow from a photograph through four tool icons to a blue tick and an empty output box.
A left-to-right flow from a photograph through four tool icons to a blue tick and an empty output box.

To generate a prompt from an image: crop the frame before you upload it, pick the shape your target model expects, set the length, write your own subject noun at the front, and leave the measured phrases as they are. Do them in that order, because each one changes what the next one has to work with, and because the first one is the only edit that reliably changes the output.

Everything below was measured, not argued. Three real images were pushed through the same code this site runs — a 192 × 192 grid, then the measurement pass, then the writer — and the numbers in the tables are what came out. Where a claim says a phrase flipped, the field that flipped and the threshold it crossed are printed next to it.

First, what actually happens after you drop the file

Before any advice makes sense, it helps to know how little is going on. There is no waiting on a model and no round trip: the whole job is decoding your file, shrinking it to a 192 × 192 grid, and running a fixed set of comparisons over it. On this machine, with the median of five runs:

Median of five runs, Node 22, three real PNGs. “Measure + write” is the analyse, describe and compose pass together.
ImageOriginalDecodeShrink to 192×192Measure + writeTotalCells kept
Night fireworks640×360 = 230,400 px10.23 ms2.65 ms4.05 ms16.93 ms16.00%
Strong backlight640×360 = 230,400 px13.36 ms2.37 ms2.25 ms17.98 ms16.00%
Text screenshot800×450 = 360,000 px11.13 ms2.96 ms1.99 ms16.08 ms10.24%

Two things fall out of that. The slow part is opening your file, not understanding it — reading the PNG costs five or six times what the entire measurement and writing pass costs. And the pass that produces your prompt looks at 36,864 cells no matter what you feed it; a 230,400-pixel image and a 360,000-pixel image both collapse to the same grid, which is why the third row keeps only 10.24% of its pixels and still produces a full prompt.

That has a direct consequence for step one. If your file is reduced to a 192 × 192 grid before anything is read, then what you cut out of the frame before uploading is worth more than anything you can do afterwards.

Step 1 — Crop before you upload

Cropping is the one input you fully control. To find out what it does, forty real files were cropped on their own pixels and then measured the way an upload is measured: every crop downsampled onto the same 192×192 grid, with the crop’s own width and height carried alongside for the ratio. Each crop was then compared against the uncropped reading of the same file, across the nine wording slots the writer can produce.

Forty files, eight crops each. “Slots changed” is how many of the nine wording slots differ from the uncropped reading of the same file.
CropKeepsSlots changed (median)RangeFiles unchangedFiles with a change
Centre 75%75% of the area00–222 of 4018 of 40
Centre 50%50%20–55 of 4035 of 40
Centre 35%35%30–62 of 4038 of 40
Centre 25%25%30–81 of 4039 of 40
Centre 12.5%12.5%41–70 of 4040 of 40
Top-left 50%50%, one corner3.50–71 of 4039 of 40
Bottom-right 50%50%, one corner30–61 of 4039 of 40
Square centrelargest centred square21–40 of 4040 of 40

Which slots move is not arbitrary. A centred crop keeps the aspect ratio, so framing did not change once in forty files at any centred crop — and the square crop changed it in 40 of 40, because the square is the only crop that alters the shape. Among the rest, the slot that moves most is light distribution, at 26 of 40 once the crop is tight; at the shallowest crop the two that move first are vertical balance (6 of 40) and colour temperature (5 of 40).

The question people actually ask is how far they can go. Sweeping centre crops from 95% of the area down to 5%, on the same forty files:

Centre crops only, forty files. “Identical” means not one of the nine slots differs from the uncropped reading of the same file.
Area keptFiles reading identicallySlots changed (median)
95%36 of 400
90%30 of 400
85%26 of 400
80%25 of 400
75%22 of 400
70%20 of 400.5
65%17 of 401
60%15 of 401
55%12 of 401
50%12 of 401
45%10 of 401
40%9 of 401
35%7 of 402
30%6 of 402
25%5 of 402
20%3 of 403
15%2 of 403
10%1 of 403
5%0 of 403

Across the thirty-seven files that read identically at some crop, the tightest such crop has a median of 70% of the area, which is a side at 84% of the original. The spread is wide: four files already differ at a 95% crop, three never read identically at any crop down to 5%, and one still reads identically at 10%.

So crop with a purpose. Cropping is the only thing on this page that can change framing, and only when it changes the shape — the square crop did it in 40 of 40. On everything else it is a blunt instrument: the median file survives a centre crop to 70% of its area with the wording untouched, and by a 50% centre crop it has already moved two of the nine slots.

How much you have to change before the words change

The same question from the other side: if you do not crop but instead brighten the whole image, how far do you have to go? This is the strong backlight frame with every pixel multiplied by a fixed factor. Baseline: mean brightness 73.95, spread 80.36, edge 13.02.

Same image, whole-frame brightness multiplied by k. “Changed” counts the nine phrases that differ from the unmodified image.
Multipliermean Lstd LedgeChangedWhat flipped
1.0073.9580.3613.020 / 9—
1.0577.3083.6513.550 / 9—
1.1080.3786.3614.071 / 9exposure → moderate, slightly dim
1.1583.2188.7014.492 / 9+ colour temperature → warm golden
1.2085.8590.7014.852 / 9—
1.3090.3193.3815.413 / 9+ detail → highly detailed
1.5097.1795.8916.803 / 9—
2.00110.3098.0420.164 / 9+ distribution → evenly lit

A 5% lift changes nothing at all — 77.30 is still under the 80 line. At 10% it crosses to 80.37 and the exposure phrase flips. At 15% the red-blue gap crosses 14 and “slightly warm tone” becomes “warm golden colour temperature”. At 30% the edge figure crosses 15 and “moderate detail” becomes “highly detailed”. Doubling the brightness gets the distribution phrase to drop out and say “evenly lit” — and even then the frame is still described as dark-ish, because 110.30 is short of the 130 that would make it “well-lit”.

The mood phrase never moved at any multiplier. It is driven by spread, and spread stayed above 68 the whole way up, so the frame stayed “moody and dramatic” from the original through to double brightness. That is the general shape of the thing: the output is coarse, small edits are wasted on it, and a couple of slots are close to immovable.

Step 2 — Pick the shape your target expects

Four targets, four different shapes, one measurement underneath. These are the real outputs for the centre-50% crop above, at the medium length:

midjourney (268 chars)  widescreen 16:9 composition, dark, low-key lighting, dominant palette of black, slate, grey, silver, vivid, saturated colour, cool blue colour temperature, medium contrast, highly detailed with intricate texture, light falling on the centre with darker edges --ar 16:9

sd (285 chars)  masterpiece, best quality, widescreen 16:9 composition, dark, low-key lighting, dominant palette of black, slate, grey, silver, vivid, saturated colour, cool blue colour temperature, medium contrast, highly detailed with intricate texture, light falling on the centre with darker edges

flux (196 chars)  A widescreen 16:9 image. Dark, low-key lighting. The dominant colours are black, slate, grey, silver. Vivid, saturated colour, cool blue colour temperature. Highly detailed with intricate texture.

dalle (189 chars)  A widescreen 16:9 image, dark, low-key lighting, with a palette of black, slate, grey, silver. Vivid, saturated colour, cool blue colour temperature, highly detailed with intricate texture.

The same measurement is underneath all four, but they are not the same prompt. The first two are comma lists, the second two are sentences. Only the first carries an aspect ratio parameter, and only the second carries the quality tags at the front. Pick the one that matches where you are going to paste it — a sentence shape pasted into a tag-based tool renders something plausible and wrong rather than failing outright.

Step 3 — Set the length, knowing what each step adds

The length control is not a summariser. It adds whole phrases in a fixed order, and the shapes do not all add the same ones.

Character and word counts, same three images, all four targets, all three lengths. Counted from the real output strings.
ImageTargetShortMediumLong
Night fireworksMidjourney163 c / 22 w267 c / 37 w319 c / 44 w
Stable Diffusion180 c / 23 w284 c / 38 w336 c / 45 w
Flux100 c / 15 w195 c / 27 w273 c / 39 w
DALL·E93 c / 15 w188 c / 27 w219 c / 31 w
Strong backlightMidjourney158 c / 21 w239 c / 33 w291 c / 40 w
Stable Diffusion175 c / 22 w256 c / 34 w308 c / 41 w
Flux105 c / 15 w179 c / 25 w247 c / 35 w
DALL·E98 c / 15 w172 c / 25 w203 c / 29 w
Text screenshotMidjourney167 c / 22 w235 c / 32 w266 c / 36 w
Stable Diffusion184 c / 23 w252 c / 33 w283 c / 37 w
Flux110 c / 16 w195 c / 27 w238 c / 33 w
DALL·E103 c / 16 w188 c / 27 w219 c / 31 w

Short carries framing, exposure, palette, saturation and colour temperature. Medium adds contrast, detail and light distribution. Long adds vertical balance and mood on top. That is the whole ladder — and it is why the same image at medium is 37 words for Midjourney and 27 for Flux: the sentence shapes drop the contrast phrase entirely, and only pick up light distribution at the long setting, while vertical balance is never emitted at all. DALL·E drops contrast and distribution both, so its long prompt is 31 words against Midjourney’s 44. What that leaves is worth reading once in full, because the commas inside its first sentence do not behave the way commas in a tag list do: see what a ChatGPT image prompt built from a picture actually looks like.

Practical reading: if you want the measured contrast and the light distribution, use the list shapes or go long on Flux. If you are pasting somewhere that punishes long prompts, short costs you three phrases, not a summary — decide whether those three are the ones you wanted.

Step 4 — Write your own subject noun

No setting will produce one. The subject field is left empty by design and filled with a fixed string in exactly one case: when the frame measures as monochrome, all three sample images in this article measured null. A separate hint is computed for every image — “blue-dominant” for the fireworks, “no dominant hue” for the meadow, from the colour ratios — and then dropped before the prompt is written, because guessing “foliage” from a green histogram is the kind of confident wrong answer this is built to avoid.

So put your own noun at the front: a lone fireworks burst over a harbour, and then the measured list. Everything after your noun survives the addition unchanged, because it is all computed from your pixels and none of it depends on what the subject is.

Step 5 — Leave the measured phrases alone

The remaining phrases are arithmetic on your file, and each one can be traced to a number and a threshold. If one of them reads wrong, the fix is upstream: change the crop, change the exposure of the file you upload, or overwrite that one phrase by hand. Editing the middle of the list without changing the input gets you a prompt that contradicts the image, and the generator will then average the two.

One check is worth doing every time: compare the reported exposure and distribution against what you see in the frame. In the crop table above, the bottom-right quarter reports “light falling on” the wrong half simply because that quarter happens to be dark in the middle — the measurement is right, and the phrase is still wrong for your picture.

For what each of the measured fields is and how it becomes a phrase, see what an image to prompt tool measures. For the order to work in when the output is wrong, see fixing a wrong image to prompt output; for turning a picture into something you can paste, see getting a usable AI image prompt from any picture; and for the images where this approach breaks down entirely, see which images it handles badly.