Recommended Visuals
- Character drift illustration — the same described character rendered as three visibly different people across three frames. Under the introduction. Original graphic.
- Reference pack layout — front, three-quarter, profile, full body on a neutral background. In the workflow section. Original graphic.
- Anchoring methods diagram — four columns showing image reference, saved element, written description, recorded capture. Beside the comparison table. Original graphic.
- Official interface screenshots — Runway’s References panel, Kling’s Element Library, clearly captioned as vendor screenshots. In each platform section. Official interface screenshots.
- Capture-quality do/don’t card — good vs poor lighting, hats, filters, based on OpenAI’s published guidance. In the Sora section. Original graphic.
No visual should be presented as the author’s own generated footage or as the result of a test the author ran.
Sources Used
- Runway — Creating with Gen-4 Image References: https://help.runwayml.com/hc/en-us/articles/40042718905875-Creating-with-Gen-4-Image-References — up to three references, single-reference consistency, tagging to persist across sessions, input recommendations (natural even lighting, moderate quality, neutral expression), the black-box tip, and separate character/scene iteration paths.
- Runway — Characters product page: https://runway.com/product/characters — used only to establish that Characters is a real-time conversational avatar product, distinct from References.
- Kling AI — Element Library User Guide (published Feb 5, 2026): https://kling.ai/quickstart/klingai-element-library-3-user-guide — multi-image elements (1 main + 1–3 supplementary), 3–8s video character elements with voice extraction, 5–30s voice binding audio, element caps per generation and per membership tier, free element creation.
- Kling AI — VIDEO 3.0 Omni Model Guide: https://kling.ai/quickstart/klingai-video-3-omni-model-user-guide — video character reference and voice consistency.
- Google — Best practices for generating videos: https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/video/best-practice — the detailed unchangeable-features character description, copying it unchanged into every prompt, and using a fixed seed.
- Google Cloud Blog — The ultimate prompting guide for Veo 3.1: https://cloud.google.com/blog/products/ai-machine-learning/ultimate-prompting-guide-for-veo-3-1 — “ingredients to video” reference images.
- OpenAI Help Center — Generating content with Cameos: https://help.openai.com/en/articles/12435986-generating-content-with-cameos — capture process, lighting as the most common failure cause, capture guidance, the “can only generate what it has seen of you” limitation, permission settings, and non-retroactive changes.
Fact-Check Notes
Reviewed and deliberately excluded:
- “95% consistency” claims. Multiple blogs (several run by API resellers) assert 95%+ character consistency for Sora 2, Kling and Runway. I could not trace a single one to a vendor statement or published study. One source also cited “70% of top AI filmmakers” with an attribution that doesn’t check out. None of these appear in the article, and the article says so explicitly. Do not let these back in during editing.
- Pricing. Kling’s credit costs and membership tiers, and Runway’s credit pricing, were visible in the docs but left out apart from one non-numeric mention that storage limits vary by tier. These change often.
Should be re-checked before publication or any refresh:
- Model and feature versions. Named in the article: Runway Gen-4 References, Kling Element Library 3.0 / Video 3.0 / Video 3.0 Omni, Google Veo, OpenAI Sora cameos. Kling in particular is iterating fast — its docs also reference Video O1 and Image O1 models, and a native 4K announcement. Verify version names on the day you publish.
- Kling’s numeric limits. Up to 7 images/elements in Video 3.0 Omni, 3 bound elements in Video 3.0, 2–4 images per multi-image element, 3–8s video elements, 5–30s voice samples. All from the current guide, all plausible to change with the next release.
- Runway’s three-reference limit and the tag-to-save behaviour — both current, both UI-dependent.
- Sora cameo availability. Regional and account-tier availability has shifted repeatedly since launch, and API support for cameos has been unclear. The article makes no availability claim; don’t add one without checking.
- Veo seed parameter. Exposed in the API and some interfaces, not in every consumer app. The article says “where your tool exposes one” rather than promising the control exists.
- Voice consistency for Veo is described in the docs as a described voice style, not a bound voice asset like Kling’s. Keep that distinction if you edit the comparison table — the two are not equivalent.
Stable: the underlying explanation of why drift happens, and the seven-step workflow, are method rather than product, and won’t date the way the feature specifics will.