You prompt storefront with a sign that says "OPEN" and the model produces OPEM, 0PEN, or letters that look vaguely like Cyrillic, Greek, or invented glyphs. Ask for Chinese, Japanese, or Arabic on an older model and it gets even worse. Most people assume their prompt was wrong. Usually it is not: this is a model-capability problem. SD 1.5, SDXL base, Midjourney v4-v5, and the now-retired DALL-E 3 were never trained to ground “OPEN” to the four characters O-P-E-N. They learned the shape of letter-like marks, not actual writing.
Fastest fix (as of June 2026): regenerate the same prompt on a current text-first model. GPT Image 2 (in ChatGPT, the old DALL-E slot), Google’s Nano Banana Pro, Ideogram 4.0, or FLUX.2 will render short signage correctly on the first or second try, including non-Latin scripts. Keep the literal text to 1-3 words, wrap it in double quotes, and you are usually done. Reserve the “add text in post” workflow for exact brand fonts or older/offline models.
Common causes
Ordered by hit rate, highest first.
1. Old model with weak or no text training
SD 1.5, SD 2.1, SDXL base/refiner, Midjourney v4-v5, and DALL-E 2/3 cannot render legible text reliably. DALL-E 3 was officially shut down on May 12, 2026, so if a tutorial still tells you to “use DALL-E 3,” that path is dead. Even SDXL’s training labels never grounded “OPEN” to O-P-E-N; the model learned “sign-shaped object with letter-like marks.”
How to spot it: you are on any of those models, and even short common English words come out garbled.
2. Text request is too long
Every model, even the best ones, degrades as the string grows. "GRAND OPENING TODAY 50% OFF" will misfire almost everywhere. The longer the string, the more chances each character has to drift. As of June 2026, GPT Image 2 and Nano Banana Pro handle short paragraphs, but a single 1-3 word line is still where success rates peak.
How to spot it: the text in your prompt is more than ~6 words or ~30 characters total.
3. Non-Latin scripts on a Latin-only model
Asking for Chinese characters, Japanese kanji/kana, Arabic, Hebrew, Thai, or Devanagari on a model trained mostly on English signage. On SDXL or Midjourney you get invented glyphs that look “script-shaped” but are not real characters. Note: this is no longer a hard wall on top models. GPT Image 2 renders CJK, Arabic, Hindi, and Bengali at >90% character accuracy, and Nano Banana Pro can even localize/translate text inside the image. The failure now is mostly an old-model failure, not a universal one.
How to spot it: requested text is non-Latin, and the output looks vaguely like the script but is not actual characters.
4. Text not quoted
a sign that says OPEN is ambiguous, because OPEN is also a regular English word. a sign that says "OPEN" is explicit. Without quotes, even text-capable models sometimes interpret the word semantically rather than as glyphs to draw.
How to spot it: your prompt has the text content but no quotes around it.
5. Style LoRA distorts typography
Heavy painterly, anime, or sketch LoRAs warp letterforms by design. They were trained on stylized artwork where text legibility was never a goal.
How to spot it: the same prompt without the LoRA produces cleaner (still imperfect) text.
Which model to switch to
In-image text quality as of June 2026, roughly highest accuracy first:
| Model | Where to use it | Latin text | Non-Latin (CJK/Arabic) | Notes |
|---|---|---|---|---|
GPT Image 2 (gpt-image-2) | ChatGPT, API | ~99% | >90% | Became the ChatGPT image generator in April 2026 (DALL-E retired May 12); strongest all-rounder |
| Nano Banana Pro (Gemini 3 Pro Image) | Gemini app, AI Studio, API | very strong | very strong | Best for long/multi-line copy; can translate text in-image |
| Ideogram 4.0 | ideogram.ai | very strong | strong | Purpose-built for typography; best for poster/text-heavy layouts |
| FLUX.2 [pro] / [flex] | API, fal.ai, local | strong | good | [flex] is tuned for text-heavy design; accepts JSON-structured text placement |
| Midjourney V8.1 | Discord, web | good (short) | weak | Great aesthetics, still drops long phrases (“OPEEN”); use post for typography |
| SD 3.5 | local, ComfyUI | ~85% | weak | Big jump over SDXL but still misses ~15% of the time |
| SDXL / SD 1.5 | local | poor | none | Do not use when text matters |
If you are unsure: GPT Image 2 for short signage and any non-Latin script, Nano Banana Pro for longer or multi-line copy, Ideogram 4.0 for poster/graphic-design layouts.
Shortest path to fix
Step 1: Switch to a text-capable model
Re-run the exact same prompt on one of the top models from the table. For most stuck users this single change fixes it. If you were following an older guide that says “use DALL-E 3,” open ChatGPT and generate normally; the image slot is now GPT Image 2, no setting to change.
Step 2: Keep text short and quoted
Rewrite the prompt:
# Bad
"storefront with a giant sign that says GRAND OPENING TODAY"
# Better
'storefront with a sign that says "OPEN"'
# Best for long copy
'storefront with a sign that says "OPEN" in bold letters, smaller sign below'
(generate the smaller sign as a separate gen or in post)
Always wrap the literal text in double quotes. Limit to 1-3 words per line. If you need more, split it across multiple visual elements or use Nano Banana Pro, which is the most reliable for multi-line copy.
Step 3: Non-Latin scripts
First try a top model directly. As of June 2026, GPT Image 2 and Nano Banana Pro render Chinese, Japanese, and Arabic at production-usable accuracy, so the old “never let the model draw the script” rule no longer holds for them.
If you are on an older/offline model, need an exact brand font, or the glyphs still come out wrong, fall back to the scene-plus-post workflow:
- Generate the scene with a blank or placeholder sign (
sign that says "SIGN"orblank rectangular sign). - Open it in Figma, Canva, or Photoshop.
- Add the real text on top using a real font in that script.
- Match perspective with Photoshop’s
Edit > Transform > Perspectiveor Figma’s text-on-path. - Match lighting with a tonal adjustment layer.
Fonts that read convincingly in-image: any clean sans-serif (Noto Sans covers nearly every script, PingFang for Chinese, Hiragino for Japanese, Cairo for Arabic).
Step 4: Use a Midjourney + post combo
For artistic illustration where you want Midjourney’s aesthetic but legible text, V8.1 still drops long phrases. Treat the text as a post step:
1. Generate the scene in Midjourney (V8.1) with a deliberately blank sign
2. Upscale and export
3. Add text in Canva using a hand-drawn or sketched font
4. Slightly distort and offset to match the painterly background
This nets you Midjourney’s artistry with real typography.
Step 5: For FLUX.2, use structured text prompts
FLUX.2 [flex] is tuned for text-heavy work and accepts JSON-structured prompts that pin exact text, position, and styling. For ad-hoc prompts, add direct anti-cues:
'a vintage diner sign with the text "EAT" in bold red letters,
clear legible letterforms, sharp typography, no gibberish, no fake letters,
1950s neon sign style'
Adding clear legible letterforms and no gibberish, no fake letters as direct anti-cues raises the success rate. For batch or pixel-exact placement, switch to the JSON prompt format documented in the FLUX.2 guides rather than fighting natural-language phrasing.
How to confirm it’s fixed
- Read every character out loud against your source string. Letter-swaps like
OPEMand0PENare the most common residual error. - Zoom to 100% in your image viewer. Some models render correct text that softens to mush only at small sizes; check at the size you will actually publish.
- For non-Latin text, paste your intended string next to the image and compare glyph by glyph. AI text can look right at a glance but contain a wrong or invented character.
- If a deliverable must be exact (legal text, a real brand name, pricing), do not trust any generator at 100%; verify or set the text in post.
Prevention
- Keep a text-first model as your default for any deliverable with words in it (GPT Image 2 or Nano Banana Pro).
- For long or multi-line copy, plan a 2-stage workflow up front: image first, text confirmed or set in post.
- Build a Figma/Canva template per format (storefront, poster, banner) with adjustable text layers.
- Never use SDXL or SD 1.5 when text is critical; switch models even for one shot.
- Stop following pre-2026 tutorials that route text through DALL-E 3; it was retired May 12, 2026.
FAQ
Why does the same word render fine sometimes and garble other times? Text rendering is probabilistic. Each character is a fresh chance to drift, so a 1-word sign that works 9 times in 10 will still fail occasionally. Shorten the string, quote it, and regenerate. Two or three seeds usually produce one clean result.
Is DALL-E 3 still an option?
No. OpenAI shut down DALL-E 3 on May 12, 2026. In ChatGPT the image generator is now GPT Image 2 (gpt-image-2), which is far better at text. Any guide pointing you at DALL-E 3 is out of date.
Can AI now write Chinese, Japanese, or Arabic correctly inside an image? On top models, mostly yes. As of June 2026, GPT Image 2 renders CJK, Arabic, Hindi, and Bengali at over 90% character accuracy, and Nano Banana Pro can even translate text in-image. Older models (SDXL, Midjourney) still produce fake glyphs, so the post-production fallback is for them, not a universal rule. Always verify glyph by glyph for anything published.
My text is correct but blurry or smeared. Is that the same problem? Not quite. Blurring at small sizes is a resolution/upscale issue, not a spelling failure. Generate at a higher resolution, keep the text large in frame, or do the text in post. See the related garbled-text and edge-artifact guides below.
Does adding “no gibberish, no fake letters” actually help? On diffusion models like FLUX and SD it gives a measurable bump as an anti-cue. On GPT Image 2 and Nano Banana Pro it matters less, because their text engines are already strong; there, the bigger levers are short strings and quotes.
How many words can I safely put in one image? As a rule of thumb in June 2026: 1-3 words is reliable everywhere; up to a short line works on GPT Image 2 and Ideogram 4.0; short paragraphs are realistic only on Nano Banana Pro and Ideogram 4.0, and even then verify every line.