Why text breaks
Text fails for a structural reason, which is why it has persisted across model generations while almost everything else improved.
- Models learn visual plausibility, not spelling. Nothing in the training objective enforces that a word is spelled correctly.
- Letterforms are treated as texture. A sign is learned as “a rectangle with marks on it”, not as a sequence of characters.
- Small strokes are high-frequency detail, which generation and compression both degrade first.
- Motion makes it worse: text that is readable in one frame becomes mush when the camera moves.
Why this is not nearly solved: fixing it requires the model to represent language symbolically inside a visual generative process. That is a different capability, not a scaling improvement, so do not plan around it arriving soon.
What models can sometimes do
Not all text is equally hopeless. Knowing the gradient of difficulty helps you decide what to attempt.
| Case | Reliability | Recommendation |
|---|---|---|
| Short common words on signage, static shot | Sometimes readable | Attempt, but review every frame |
| Long sentences or paragraphs | Almost always garbled | Never attempt |
| Logos with exact letterforms | Almost always wrong | Overlay, always |
| Numbers and prices | Unreliable and dangerous | Overlay — errors here are factual |
| Text in motion or at an angle | Very poor | Overlay |
The workflow that works
-
Write the shot without text
Describe the scene as if the signage were blank. “A shop front with an empty sign above the door” generates far more reliably than specifying wording.
-
Generate and approve clean footage
Select shots on motion, composition and lighting — with no text in frame to fail.
-
Upscale if needed
Refine resolution before adding any typography. Upscaling after overlaying degrades crisp edges.
-
Add typography in your editor
Place text, logos and labels at final resolution as real vector or high-resolution layers.
-
Match the lighting
Grade overlays to sit in the scene — this is what separates native-looking text from obviously pasted text.
Making overlays look native
An overlay that looks pasted on is often worse than no text. A few details carry most of the illusion.
- Match colour temperature and exposure to the plate. Text in a warm night scene should not be neutral white.
- Respect perspective. Text on a surface in the scene needs the same vanishing point.
- Add subtle motion tracking so the text moves with the surface rather than floating.
- Let the scene affect the text — slight blur, grain or occlusion sells it as present in the world.
- Keep type large enough to survive compression at delivery bitrate.
Logos and brand marks
Never generate a logo. This is both a quality issue and a legal one.
- Generated logos are almost always subtly wrong, which is worse than absent for brand work.
- Brand marks have exact specifications. Approximate reproduction is a brand compliance failure.
- Use the official vector asset and composite it.
- Check licence terms for how the mark may appear in generated or altered footage.
Subtitles and captions
Captions are a different case entirely and should never be generated into the image.
- Burned-in generated captions cannot be turned off, localised or corrected for accessibility.
- Add captions as a separate track so they can be styled, translated and toggled.
- Platform-safe zones matter — generated text has no awareness of where UI overlays will sit.
When generated text is acceptable
- Deliberately stylised or distressed text where exact legibility is not the point.
- Background signage that is out of focus and never read.
- Abstract or fictional scripts in fantasy or sci-fi contexts where no real orthography is expected.
- Concept work where the viewer understands it is a placeholder.
One question decides it: if the text carries information the viewer must read correctly, overlay it. If it is set dressing, generating it is fine.