The official record names the weak spot plainly — “precise text placement and clarity” — so the first thing to fix in an image with words is where those words sit.
The documented weak spot is placement
The API guide’s limitations list flags text rendering: “although significantly improved, the model can still struggle with precise text placement and clarity.” A second entry covers composition control: “the model may have difficulty placing elements precisely in structured or layout-sensitive compositions.”
Together they set the target: the documentation never says GPT Image 2.5 cannot write, only that placement is the part it struggles with.
The launch page is easy to misread: its sample captions describe posters and lettering, but a caption describes a picture rather than promising a capability, and no page publishes an accuracy figure.
Reserve the space before the words
Empty the zone first, fill it second: name the clear region before the words.
# GPT Image 2.5 — reserve, then place
Pass 1, composition:
"Leave the top third of the frame empty.
Flat background, no objects, no texture."
Pass 2, text:
"Add only the title "SPRING WORKSHOP" in large, bold, white
sans-serif letters, centered in the top third of the image.
Keep the title on one line."
Reserving beats adding text later. The model composes the scene knowing the gap exists, so nothing drifts under the words, and the lettering shares the picture’s light and perspective.
Two examples: a poster and an app screen

Example one: a poster headline
The official example prompt is the shape to copy, and half its value is spatial.
Add only the title "SPRING WORKSHOP" in large, bold, white sans-serif letters, centered in the top third of the image. Keep the title on one line.
Most retellings keep the quotation marks and drop “centered in the top third” and “on one line” — the two clauses that decide the layout. Keep them, then check that the line is level, the type the widest element, and legibility at thumbnail size.
Example two: a label on an app screen
Interface text is smaller and sits inside a structure, which is the case the composition limitation describes.
A minimal mobile app screen, one empty card on a soft grey
background. Add only the label "Weekly summary" in medium-weight
dark grey sans-serif, left-aligned inside the top-left corner of
the card, at half the width of the card. No other text.
Check that the label sits inside the card rather than over its edge, that it aligns to one edge, and that its size reads as a label. A heading-sized label has already lost the hierarchy.
Describe the type, not the mood
“Modern and elegant” is not a constraint, it is a wish. The model cannot act on it and you cannot tell whether it tried. Name the properties instead: family style, weight, case, colour and position.
Naming a typeface is a description, not a control, because the model approximates the letterforms rather than loading a font file. Write the class you want — serif or sans-serif, light or bold, upper or lower case — and it has something to act on.
Hierarchy beats volume
One dominant line and one small line is the reliable pattern. Small dense type is the documented failure mode, so vary the size instead of adding lines.
| Attempt | What it looks like | What to change |
|---|---|---|
| One large line plus one small line | Reads at a glance | Nothing |
| Four medium lines of equal weight | Crowded, nothing wins | Cut to one line |
| Small type over busy artwork | Illegible | Move it or enlarge it |
If a frame needs a headline, a subtitle and a caption, the caption is usually the one to cut; three sizes collapse before three lines of one size do. When everything must stay, enlarge the dominant line.
Frequently asked questions
Can the model write any language?
Yes, it renders non-Latin scripts too, but no official page promises correctness for any language. State the language and the script, quote the exact string, and check the result.
Why does text look pasted on?
Usually because the zone was never reserved, so the words sit in a flat area that shared none of the scene’s lighting. Reserving the region during the composition pass keeps the lettering in the same space as everything else.
Should I add the text afterwards instead?
Sometimes. An external editor gives exact control over type, which suits long copy or a brand font you must match, but it costs reproducibility and spatial integration. For a short headline, generating it is the better trade.
How many words fit in one image?
No official figure exists, and the documentation gives none. The practical answer comes from the failure mode: a headline and a short subtitle are realistic, while a paragraph of small dense body text is what the API guide flags.
When characters fail, change the string
Two failures need two fixes. If the characters themselves are wrong — a swapped glyph, a missing letter — rewrite the string and follow the guide to character correctness. If the characters are right but the line is crooked or too small, move or resize it.
Change one variable per attempt. On an existing frame, comment editing keeps the rest of the picture intact instead of regenerating it.
A layout you can reuse
This pattern works for posters, cards and interface screens. Reserve the zone in the composition pass, then place one dominant line and one secondary line inside it. Quote every string exactly, state its position and size, and describe the type by family style, weight and colour.
Then check the frame at thumbnail size, where misplaced type shows up first. If something is off, correct in place — move, resize or requote — rather than regenerating everything, so the parts that already worked survive. For more composition vocabulary, see the prompting basics and the infographic guide.