Disclosure up front: I'm part of the team that runs imagesv2.ai, the image studio mentioned further down. This post is about a workflow, and the workflow works with whatever tools you already use.
The poster that was 95% right
You have probably had this one. The image model gives you a launch poster you actually like: the light is right, the product sits where it should, there's room to breathe. Then you read the date. It says "Octber". Or the brand name has one letter swapped, or the Japanese subtitle is three plausible-looking shapes that aren't characters.
So you re-roll. The new version spells the date correctly and moves the product, changes the light, and loses the thing you liked. Fixing one word cost you the picture.
Newer models are much better at text than older ones, and short headlines often come out clean. But "often" is a bad standard when a client, an editor or a print shop is going to read every letter. And even when the text is perfect, it's baked into pixels: you can't change the price next week, translate it, or A/B the headline without generating again.
The fix we settled on is structural, not a better prompt: the model makes the picture, and every word lives on a real text layer on top.
The rule: who owns what
Before generating anything, split the job in two.
| Let the model render it | Put it on a text layer |
|---|---|
| Texture text that nobody reads: a blurred shop sign, a newspaper prop | Brand and product names |
| One or two display words where a wrong letter is obvious and cheap to retry | Dates, prices, phone numbers, URLs |
| Throwaway concept boards | Anything legal, regulated or contractual |
| Copy that will change, be translated, or be A/B tested | |
| Small type that has to survive a thumbnail |
If you hesitate about a piece of text, it goes on a layer. The cost of a layer is a few minutes of typesetting. The cost of baked-in text is a re-roll every time someone edits the copy.
The workflow, step by step
1. Write two briefs, not one
Most messy results start with one prompt trying to do two jobs. Write them separately:
- Picture brief: subject, setting, light, style, and where the empty space goes.
- Copy deck: every word that will appear, in order of importance (headline, subline, details, small print), in every language you need.
The copy deck never goes into the image prompt. That alone removes most typo fights.
2. Generate the background with the text zone reserved
Describe the empty area as a real part of the composition, and tell the model explicitly not to write anything:
Ceramic coffee cup on a pale oak table, soft morning window light from the left,
cup in the lower right third, calm warm palette, shallow depth of field.
Leave the upper half as clean, low-detail wall for a headline.
No text, no letters, no signage, no logos, no watermarks.
Two habits help here:
- Name the zone. "Upper half", "left third", "a plain band along the bottom". A vague "space for text" tends to come back as a slightly emptier busy background.
- Iterate cheap, finish once. Explore composition at a low quality or draft setting; only render the final at full quality and full size. Composition problems show at low quality; there's no point paying for detail on a layout you'll throw away.
3. Fix the picture with targeted edits, not new rolls
Once a background is close, stop generating from scratch. Use image-to-image editing on that exact image, one change per instruction:
- "Same image; make the wall behind the cup plainer and slightly lighter."
- "Same image; remove the spoon."
- "Same image; warm the light a little, keep everything else."
If your tool supports masks, paint only the region you want changed. Big rewrites of the prompt tend to move things you didn't ask to move; small, scoped edits keep the composition you already approved.
4. Set the type as layers
Now bring in the copy deck. A few rules that save most posters:
- Contrast first, style second. If the headline sits on a busy area, darken or lighten that area in an edit (step 3) or add a soft plate behind the text. Don't fix contrast with a heavier font.
- One hierarchy. One headline, one supporting line, one block of details. If you need a fourth level, the poster probably needs less copy.
- Respect safe zones. Social platforms crop and overlay UI on edges. Keep important words away from the outer margins, especially on vertical formats.
- Use real fonts for CJK. If you ship Chinese, Japanese or Korean, pick fonts with proper CJK coverage so nothing falls back to empty boxes.
5. Check at the size people will actually see
Export at the final size, then look at it at the size it will be seen: a phone feed thumbnail, a slide on a projector, a print proof. Read every word out loud. This is the step that catches a misplaced date, and it takes a minute.
Where our tool fits
I'll be concrete about what we built, because that's the honest way to show the workflow rather than describe it in the abstract.
For steps 2 and 3 we use our image studio, which does text-to-image and image-to-image with output up to 4K. The parts that matter for this workflow: you can edit an uploaded or generated image with a mask instead of re-rolling, and you can render the final background at the size you'll export (up to 3840×2160 for 16:9), so you're not upscaling afterwards.
Step 4 is where we built something specific. On the GPT Image 2 editable text page, the generator automatically appends a "no text, no letters" instruction to the prompt so you get a clean canvas, and then the words go on as real text layers in the browser: drag, restyle, swap copy, change language. The export uses the background's original resolution, so text added on a scaled-down preview isn't downsampled, and you can save the whole project as JSON to reopen later. You can also load your own image and skip generation entirely.
What still goes wrong
Being straightforward about the limits:
- Stray letters still appear sometimes. "No text" is followed reliably, not perfectly. When a fake letter sneaks into the background, remove it with a masked edit or regenerate; don't try to cover it with your headline.
- Export resolution follows the background. If you need a large print file, generate the background large. A text layer can't add pixels the image doesn't have.
- Very wide formats need cropping. Most generators cap the aspect ratio; for an ultra-wide banner, generate at the widest supported ratio and crop.
- A browser text editor isn't a layout app. For a strict brand system, multi-page documents or locked corporate typefaces, take the clean background into Figma, InDesign or Keynote and set type there. The split still holds; only the tool for step 4 changes.
- Small type still needs proofreading. Even when a model renders text well, long paragraphs and tiny type are where wrong letters hide.
The bonus you get for free: translations and variants
Once the picture and the words are separate, a lot of extra work stops being work. One background can carry the English, Chinese and German versions of the same campaign. Next week's price change is a text edit. Testing two headlines means two exports, not two generations that differ in ten ways at once.
That, more than the typo fix, is why we stopped asking the model to spell.
Copyable checklist
[ ] Copy deck written separately; no copy inside the image prompt
[ ] Text zone named in the picture brief ("upper half", "left third")
[ ] "No text, no letters, no signage, no logos" in the prompt
[ ] Composition explored at low quality; final rendered once at full size
[ ] Fixes done as scoped image-to-image edits, one change at a time
[ ] Headline contrast checked before choosing a font
[ ] Important words outside platform safe-zone margins
[ ] CJK fonts with real coverage, if needed
[ ] Every word read aloud at the size people will see it
If you make posters or social graphics with image models: which text do you still let the model render, and where has it burned you? I'm curious where other people draw the line.













