Identity lock
Cameo, character lock, or text-only — the decision that silently kills AI video ads, and how to pick right.
The video models can render anything. They cannot natively keep "anything" stable across cuts.
Generate a six-cut UGC ad. Beat 1: a 30-something woman in an oat sweater, kitchen lighting, holding a mug. Beat 3: same woman, same sweater, on a couch. Beat 5: same woman in a different room. Run that through Veo 3 with a crisp, prescriptive prompt that describes her every time. You will get three different women. The model is not lying. It is doing exactly what you asked. You asked it for a description, and a description does not specify a person.
The audience watches all six cuts. They will not consciously think "hey wait, that is a different person." But they will subconsciously feel the ad break. Retention drops. Comments get weird. The pattern interrupt that was supposed to carry the ad is now the same pattern that breaks immersion in a deepfake.
This is identity drift, and it is the single most common failure mode in AI video ads right now. The fix is not better prompting. The fix is choosing the right identity-lock approach for the beat.
There are four.
1. Cameo (Sora 2) — strongest lock, but sunsetting
Register a person once. Sora 2 ingests a handful of short clips of the actor in different lighting, angles, and poses, and builds a persistent representation of them. From that point forward, any prompt referencing the cameo renders that exact person — in any setting, lighting, wardrobe, or action you describe.
This was — and for the next several months still is — the gold standard for actor-driven ad work. It locks identity hard, scales across hundreds of renders, and pairs with Sora 2's native synchronized audio so the cameo speaks with believable lip-sync.
Important caveat. OpenAI announced in March that the Sora app and API are being discontinued. The app already shut down. The API expires September 24th, 2026. So if you're standing up a new pipeline today, do not anchor it on Sora 2 cameos. The capability will be gone in five months. For existing pipelines that depend on cameos, plan a migration to Runway Gen-4.5 References, Veo 4 zero-shot avatars, or Seedance 2.0 (where regionally available) in the next quarter. Your installed library of registered cameos is going to be a wasting asset.
Use cameos for (until September): Founder POV, UGC Testimonial, Podcast Clip, Street Interview (the interviewer), Caught Slacking, Day-in-the-Life, Myth-Busting, Greenscreen, Comment Sticker. Anywhere a recurring on-camera human carries the ad — and you can ship the campaign before the API turns off.
Tradeoffs. Cameo registration is a one-time operation. It's overkill for one-off talent. Cameos lock people, not products — for physical products you need a different approach (#2).
Don't. Don't try to use cameos for objects — the system is people-only. Don't register a cameo for someone you'll only render once. Don't build new long-running infrastructure on Sora 2.
2. Character lock (Runway Gen-4.5 References)
Provide one to four reference images of a subject — person, product, location, or mascot — at the start of a project. Runway Gen-4.5 (which inherits the References feature from Gen-4 and ships substantial improvements on object consistency) holds that subject's identity across every shot in the project.
This is image-driven, project-scoped, and works for non-people. It is the correct tool for ads with a recurring physical product, a recurring branded environment, or a one-off human actor you cannot register a cameo for. Once Sora 2 sunsets, character lock also becomes the strongest available option for actor identity in long multi-shot narratives.
Use character lock for: Unboxing (the product), Step-by-Step (the product through stages), Before/After (the subject across states), Us vs Them (both products), partner-brand mascots, archival likenesses, and — increasingly — actor identity across multi-shot narratives once cameos are gone.
Tradeoffs. No native audio (layer voice and music in post; Aleph can help with in-video edits). Slightly less photoreal out-of-the-box than Veo 4, so the prompt has to do more lighting and lens work. Character lock for people across many shots is good but not as bulletproof as a Sora 2 cameo — drift is rarer than with text-only, but not zero.
Don't. Don't use character lock as a substitute for cameo while cameos still exist. Cameos still win on faces — for the next five months.
3. Zero-shot avatars (Veo 4) — the new lightweight tier
This category did not exist six months ago, and it changes the menu meaningfully. Veo 4 — released in April 2026 — ships zero-shot avatar generation: the prompt-only model produces character-consistent humans across multiple shots in a project without reference images, cameo registration, or any explicit identity setup. You describe the person, and Veo 4 renders the same person each time you call them.
The lock is lighter than cameo or character lock. It will not hold the exact same human across hundreds of renders the way a Sora 2 cameo did. But within a project, across a typical multi-cut ad, it holds. And it costs nothing in setup — no registration, no reference set, no cameo library to maintain.
Use zero-shot avatars for: mid-funnel UGC where the actor is plausibly real but not famously specific, hero shots and Founder POV when you don't have a registered cameo, hook-discovery batches where variation in who the actor is helps you A/B the persona, and most actor-driven beats where character lock would otherwise be overkill.
Tradeoffs. Lighter lock than character lock or cameo. Cross-project consistency isn't guaranteed (the avatar in last week's project may not be the avatar in this week's). Native audio is good but not as tightly synced as Sora 2's was.
Don't. Don't expect cross-project actor consistency. If you need the same recognizable person across a campaign that runs for months, use character lock with a tight reference set instead.
4. Text-only (Veo 3, Hailuo, draft tier) — no lock at all
Just the prompt. No image, no cameo, no avatar, no prior clip. The model renders from text alone, and identity does not persist.
This is the cheapest approach and the highest-variation. Two clips of "a 30-something woman in an oat sweater" produce two visibly different women. For most ad work this is a problem. For a few specific cases it is a feature.
Use text-only for: Single-shot Letter and Sign formats where there is no recurring subject. Hook discovery in volume, where each variant is its own ad and identity does not need to lock. Establishing shots and B-roll with no recurring presence. ASMR with a generic packshot.
Tradeoffs. Zero identity lock. Anything multi-shot will drift. Veo 3 in particular cannot ingest references at all — the prompt is the only input — so sending it a reference image is throwing money away. (Note: Veo 4 does support reference conditioning and zero-shot avatars; this is specifically about Veo 3 and the older draft-tier text-only models.)
Don't. Don't use text-only for any beat with a recurring person or product. Don't send Veo 3 a reference image — the model ignores it. Don't confuse Veo 3 (text-only, no lock) with Veo 4 (zero-shot avatars, light lock); they are different tools.
The decision tree
The operator's view, compressed (and aware that the menu shifts after September 2026 when Sora 2 leaves the room):
What needs to lock across shots?
- Actor identity, recognizable across a multi-month campaign. Are they in your cameo library and is the campaign shipping before September? → Cameo (Sora 2). Otherwise → Character lock (Runway Gen-4.5 References) with two to four reference images. Don't build new long-running pipelines on cameos.
- Actor identity, single project only, fast turnaround. → Zero-shot avatars (Veo 4) if no specific real person is required. Lightweight, no setup, holds across shots in a project. The new default for most actor-driven UGC where the persona is generic.
- Product identity. Multi-shot with the product on screen? → Character lock (Runway Gen-4.5 References) with a multi-angle reference set, four to eight images. Static product → motion (one shot, packshot animation)? → Luma Ray 2 is faster and cheaper for that specific case.
- Location or branded environment. → Character lock with one or two reference images. (Or text-only if the environment is generic enough that drift won't matter.)
- Style or vibe only — no specific person, product, or place. → Text-only (Veo 3, Hailuo, or Veo 4 in non-avatar mode).
That's it. Most "AI video tutorials" online never mention this taxonomy because they treat identity lock as a model-implementation detail. It isn't. It is the decision that determines whether the multi-cut ad you are paying to render holds together or breaks.
The mistakes
A short list of identity-lock mistakes I see weekly.
Sending Veo 3 a reference image. Veo 3 ignores it. Veo 3 is text-only conditioning. The reference does nothing. People do this constantly because Sora 2, Runway, and Veo 4 accept references and they assume Veo 3 does too. It does not. (Veo 4, the current version, does — but most legacy pipelines are still calling Veo 3 endpoints. Audit which version you're actually hitting.)
Confusing Veo 3 and Veo 4. They are different tools. Veo 3 is text-only and locks nothing. Veo 4 has zero-shot avatars and image-to-video conditioning. The recommendations in this Field Note assume you know which one you're calling. If you don't, find out before your next render.
Building new pipelines on Sora 2 cameos in April 2026. Cameos still work, but the API is gone in September. Anything you build today that depends on cameo lock past September is going to break. New pipelines should plan for the post-cameo menu: character lock (Runway Gen-4.5 References) for hard lock, zero-shot avatars (Veo 4) for lighter lock with no setup.
Using image conditioning for actor lock across six cuts. Image conditioning (Runway Gen-4.5 References) is moderately strong on people but drifts measurably across long projects. Use cameos for people while you can; once they're gone, plan for character lock with tighter reference sets and shorter projects.
Using video-to-video as a polish step. Don't run a Hailuo draft through V2V to "upgrade" it to a final. Re-prompt the final-tier model from the same screenplay JSON instead. Same input, fresh render, better output, comparable cost. V2V drifts mid-clip and audio rarely transfers cleanly. It is the wrong abstraction for ad work even though the modality has gotten genuinely good for restyling.
Registering a cameo for a one-off render. Cameo registration is a real operation. For one-off talent on a single render, character lock with four reference images — or now Veo 4's zero-shot avatars — is faster and cheaper.
Skipping image conditioning on physical products because "the model knows what a Coke can looks like." It does not. It especially does not for newer or less iconic products. Always image-condition the product, even when the product is famous. Especially when the product is famous, because the model has seen many slightly-wrong versions of it and is happy to mix them.
What you should do this week
If you have an existing AI video ad pipeline today, audit your last ten renders against this list:
- Were any multi-cut ads generated text-only? They are drifting, even if it is subtle. Re-render with cameo (while it lasts), character lock, or Veo 4 zero-shot avatars.
- Were any actor-driven ads generated with image conditioning instead of cameos? They will drift across cuts. Move them to cameo if you can ship before September; tighten the reference set on character lock if not.
- Were any references sent to Veo 3? Those references did nothing. Re-route to Veo 4, Sora 2, or Runway Gen-4.5. Confirm which Veo version your pipeline is actually calling.
- Are you anchoring new long-running campaigns on Sora 2 cameos? Stop. Anything past September needs a different plan.
- Is your physical-product reference set fewer than four images? Add the missing angles.
This is the lowest-effort, highest-leverage audit you can do on an AI ad workflow this quarter. It does not require new tooling. It requires noticing.
Why most teams miss this
Identity lock is load-bearing because it determines whether the multi-cut ad you are rendering holds together as a single piece of communication or breaks apart into six near-misses.
The reason most teams get it wrong is that the model providers don't surface the choice. You pick a model, you write a prompt, you press render. The reference-type decision is invisible — it happens implicitly when you choose the model, and most teams choose the model based on demos rather than on what they're trying to lock.
Knowing the taxonomy puts the decision back in your hands. The companion to this Field Note — The wrong customer for AI video — argues that no incumbent currently surfaces this layer at all, which is a real gap in the market. This Field Note is what to do today, with the tools you already have.
Whatever you ship through, ship it knowing which kind of lock the beat actually needs.
— Jose