promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_promptdojo_

The image model landscape — six families and what each is for — step 5 of 9

Text in image, character consistency, and the specialty picks

The three hardest things for an image model are, in order: text inside the image, hands, and keeping a character identical across multiple renders. In 2026 each one has a specialist that solves it well. Vector output has a specialist now too.

Text in image

Until early 2024, every image model produced garbage text. Posters with "Cumemr Sole" instead of "Summer Sale." Books with "Hapry Pottter." The problem is diffusion models don't reason about letterforms — they treat text as texture.

The 2026 state:

  • Ideogram — purpose-built for text; 4.0 shipped June 2026. Claims 90-95% accuracy. Three tiers (as of September 2026): Turbo $0.03, Default $0.06, Quality $0.10. POST /v1/ideogram-v4/generate. If your brief has copy that has to be readable, this is the default.
  • gpt-image-2 — instruction-tuned, decent text. Good when you want both text AND complex composition control ("logo top-left, headline center, subtle drop shadow"). Square output only.
  • nano banana 2 / Pro — better lettering than last year's banana, still behind Ideogram. Use gemini-3-pro-image when you want Google premium fidelity; use Ideogram when the letters must be exact.
  • Flux — improved with FLUX.2, still not Ideogram-tier.
  • Midjourney — V8.x finally made quoted text legible, a big step past earlier versions, but reviewers still put it below Ideogram for letter-perfect copy. Don't route a brief here when the letters must be exact.

The rule: if the brief mentions specific text strings, route to Ideogram 4.0 unless you have another reason not to. If the brief mentions a logo or brand mark, composite a real PNG or SVG of the logo onto a generated background — don't ask the model to draw the logo from scratch.

Vector

If the brief needs an SVG or an editable mark, that's Recraft V4.1 (recraftv4_1): $0.035 raster / $0.08 vector. Asking nano banana 2 for "a vector logo" still gives you pixels.

Character consistency

The classic failure: you generate a portrait of a character you like, then ask for "the same character but in a forest" and get a totally different person. Three approaches in 2026:

  • FLUX.2 editing — the current best. You pass an image + a text edit instruction, it preserves identity. Used for: "same person, different scene/outfit/expression."
  • Midjourney Edit Model (V8.x) — the current UI lock: reference image plus instruction. The V7 Omni Reference flags (--oref / --ow) are version-routed; don't send them as today's brief. Works for casual use, lossy for production. Identity drifts across renders.
  • nano-banana multi-turn editing — preserves identity within a session because Gemini holds the prior context. Cheap, but only works conversationally — stay on the same family for the follow-up turns.
  • Custom LoRAs / DreamBooth — train a small model on 20 photos of your character. Then any Flux generation with that LoRA loaded gets perfect identity. The right answer for "same brand mascot across hundreds of assets."

Hands

Hands are still the universal tell. Every model still produces six-fingered or warped hands at a non-zero rate. The 2026 mitigation:

  • Generate, inspect, regenerate any image with bad hands.
  • Use a second pass with a hand-aware checkpoint or inpainting only the hand region.
  • Or just don't show the hands. Crop them out. Half the working photographers do this on real shoots too.

When you need a document (slide, infographic, layout)

None of these models are good at producing actual documents — slide decks, charts, infographics with structured data. The 2026 pattern is: generate the background and visual elements with an image model, then use a layout tool (HTML/CSS, Figma API, or a deck-gen library) to overlay the structured text and data. Don't expect any image model to produce a usable pitch deck slide end-to-end.

What you're building toward

By the end of this lesson you'll have a pick_image_model(task) function that looks at a task description and returns the right model name. The decision logic is the rule set you've now seen:

  • text-in-image required → Ideogram 4.0 (ideogram-v4)
  • vector output → Recraft (recraftv4_1)
  • photoreal + art-directed → flux-2-pro
  • batch volume + tight budget → gemini-3.1-flash-lite-image (or nano banana 2 by resolution, or gpt-image-2 quality=low, or klein)
  • instruction-heavy composition → gpt-image-2 (or gemini-3-pro-image)
  • subjective taste / mood-driven, no API constraint → Midjourney (V8.x, UI only)
  • default → gemini-3.1-flash-image (Nano Banana 2)

The rules. One function. Next step: drill on text-in-image, then read the decision tree, then write it.