text-in-image
Installation
SKILL.md
Text in image
Produce an image where specific words must render correctly, in the right place, in the right style. The lever is quoting the exact copy so the model treats it as literal content instead of paraphrasable scene description, then directing placement and typographic treatment. Most image models read letters as visual texture and garble them. The models below are the ones that actually render legible, spelled-correct text.
Inputs to collect
- The exact copy. The verbatim string(s) the image must show, including apostrophes, accents, prices, dates, line breaks. (If the user hasn't given exact wording, ask. Do not invent on-image copy.)
- The deliverable. Poster, packaging, ad, social banner, UI mockup, menu, signage, infographic. Sets aspect ratio and layout conventions.
- Placement and hierarchy. Where each piece of copy sits and which is primary vs secondary, when it matters.
- Optional: a brand palette, a fixed aspect ratio, a reference image to edit text inside.
Models
- Default for typography-heavy design: Ideogram 4.0 (
ideogram:4@0). Treats text as a first-class element on a structured JSON prompt, so each line of copy is rendered byte-for-byte. Best for posters, packaging, dense multilingual labels, and anything with a real type hierarchy. - Best for natural-language briefs + world knowledge: GPT Image 2 (
openai:gpt-image@2). LLM-based, parses a full design brief, strong on infographics and ad creatives where the model also generates plausible data/content. Renders quoted text reliably. - Strong general pick with legible text: Nano Banana 2 (
google:4@3). Names objects and positions accurately, renders short quoted strings well, has athinkinglevel for dense layouts. - Fast text-on-image for marketing/signage: Grok Imagine (
xai:grok-imagine@image-quality, or the lighterxai:grok-imagine@image). Prompt-only text rendering, good for headlines, pricing callouts, packaging mockups, A/B variants. - Confirm the model is
liveand inspect its schema viarunware-models+runware-runbefore calling. Never hardcode a stale choice.