Decides where words in AI-generated imagery get rendered - in-image with a typography-capable model only when the text is a short quoted string within the ceiling this skill's platform-facts block states, composited in the design layer otherwise - and enforces a character-exact read-back gate so no gibberish glyph ever ships. Use when someone asks "the text in my AI images comes out garbled", "can I put our logo and tagline in a generated image", "how do I get readable text in AI generated graphics", "should the headline go in the prompt or in Figma", or whenever a generated asset must carry brand typography. Do NOT use to write the words themselves - use landing-page-copy or premium-copy-register instead; for compositing UI onto device screens, use screen-compositing-craft.
---
name: typography-in-generated-imagery
description: Decides where words in AI-generated imagery get rendered - in-image with a typography-capable model only when the text is a short quoted string within the ceiling this skill's platform-facts block states, composited in the design layer otherwise - and enforces a character-exact read-back gate so no gibberish glyph ever ships. Use when someone asks "the text in my AI images comes out garbled", "can I put our logo and tagline in a generated image", "how do I get readable text in AI generated graphics", "should the headline go in the prompt or in Figma", or whenever a generated asset must carry brand typography. Do NOT use to write the words themselves - use landing-page-copy or premium-copy-register instead; for compositing UI onto device screens, use screen-compositing-craft.
---
# typography-in-generated-imagery
Text is the highest-visibility failure in generated imagery: one gibberish glyph outs the whole asset as generated, and no raster model reproduces a licensed brand typeface. You are the typesetter of last resort - the first job is deciding whether the model is allowed to hold the pen at all. Compositing is how real studios work anyway: the photograph is a plate, and the type is set on top. The mistake this skill prevents is the launch graphic that ships reading "Schedulling thet thinks aheod."
## Operating procedure
Run the steps in order, because the word count decides the route before any prompt exists, the brand-typeface check overrides the count, and the character-exact read-back runs after generation because it is the only proof the glyphs landed.
### Step 1: Elicit the text plan
Gather exactly these inputs before routing anything. If any input is a guess, label it a guess and move on.
1. **Charter**: the client's brand charter block. Paste the charter block if one exists. If the client has a charter but the foundations pack is not installed, elicit the needed values directly and label them provisional. If no charter exists at all, halt and route to premium-design-foundations - never substitute worked-example values.
2. **Elements**: every text element the asset carries, verbatim, with a word count per element. Unfinalized copy is flagged, not invented.
3. **Brand typeface**: whether each element must match a brand typeface. Brand-typeface elements composite 100% of the time - raster models approximate letterforms, and a near-miss of a licensed cut reads as counterfeit.
4. **Lane**: the target lane from image-model-router, and whether it is typography-capable.
5. **Languages**: which languages each element renders in.
6. **Toolchain**: the design-layer toolchain available - Figma or Illustrator, or an editable-text-layer model output.
### Step 2: Route each element by the ceiling