Skip to main content

Open for sponsorship and ad space.

Search everything

Find AI tools, reviews, prompts, and more

Quick links

AI Image & Video Tools

How to Create Consistent AI Characters Across Images and Videos: Complete Workflow

Character consistency is no longer a prompt trick. It is a choice between reference conditioning, trained identity and performance capture. Here is the workflow that survives stills and video, with every limit and price checked against vendor documentation in October 2026.

Article

19 min

4,103 words

Read the article

AIUnpacker Editorial

19 min read
What verified means

Share

19 min

The short version

Character consistency is no longer a prompt trick. It is a choice between reference conditioning, trained identity and performance capture. Here is the workflow that survives stills and video, with every limit and price checked against vendor documentation in October 2026.

Summarize with AI

Editorial Disclosure & Affiliate Notice

This content is published for informational and educational purposes only. It is not intended as a substitute for professional, legal, financial, or medical advice. AIUnpacker is funded through clearly labeled sponsored articles and reviews, relevant paid link placements, and affiliate commissions where disclosed. Commercial partnerships help fund the free editorial library. Sponsored work is labeled, and a payment does not change the verdict.

  • For educational purposes only. Nothing here should be taken as a guarantee, recommendation, or professional recommendation.
  • AI-assisted editing. Drafts are produced with AI assistance and get a human pass before they go up.
  • Opinions are our own. Also, we are not affiliated with most tools we cover unless explicitly stated.
  • Information may be outdated. Verify pricing, features, and policies directly with the vendor.
  • Last reviewed: . Published .

Read more on our About page, Terms and Editorial Policy.

Consistent AI characters are built with one of three mechanisms (reference conditioning, trained identity, or performance capture) not with clever prompting. Reference conditioning attaches an image to each generation and is fine for a one-off shot. Trained identity locks a face once and reuses it everywhere. Performance capture drives a drawn character with a real person’s movement. The workflow that actually holds up starts with a character sheet, generates one locked hero still, and starts every video clip from that still rather than from a text prompt. Midjourney’s own documentation settles the most common argument in this field: seeds cannot hold a character.

Documented limitation, Midjourney Seeds article (updated 27 July 2026): “Seeds can’t capture or bookmark a specific style, character, or appearance across different prompts. They only influence the initial layout of noise that begins the rendering process.”

I’ve watched people spend a week fighting drift with prompt engineering when the answer was one training run. That is not a user failure. It is a category error, and the tools changed underneath everyone.

Why this matters in 2026: the ground moved twice

The vocabulary everyone uses for this topic is out of date. Midjourney’s Version article, updated 1 September 2026, states that V8.2 (the default since 24 July 2026) “features the new Edit Model, which replaces Omni Reference, Character Reference, and the Retexture tool.” Every guide still telling you to reach for --cref or --ow is describing a V7 workflow. Midjourney’s Edit Model documentation takes up to four reference images and, helpfully, tells you what to do when they fight each other: combine the characters into a single reference image.

The second shift is worse. Runway’s help centre records that Gen-3 Alpha was retired on 8 July 2026 and Gen-3 Alpha Turbo on 30 July 2026, which took Act-One with it. The Sora deprecation notice is blunter: Sora 2 and Sora 2 Pro were “removed from Runway on April 3, 2026.” Two tools that anchored a year of character-consistency tutorials are simply gone.

Meanwhile Adobe did the opposite. Firefly now ships Elements with explicit Character, Location and Object types, reference visuals, an ignore-list field, and a generated character sheet covering “Head, expressions & feature” and “Body, poses & movement.” Firefly also ships Custom Models in public beta with a dedicated Character model type. Both are documented on Adobe’s own pages.

Specifications and performance claims

Prices, reference limits and licence terms are from vendor documentation, model cards and legal text checked on 15–16 October 2026. The models were not tested for this comparison. Performance judgements are attributed to published sources or labelled as inference.

The five decisions that actually determine your result

The right consistency method is trained identity for anything recurring, reference conditioning for exploration, and performance capture for dialogue. Everything else in this guide is downstream of that one call.

  1. Reference, train, or drive? Reference conditioning costs nothing and needs no setup. Training costs a few dollars and minutes. Driving requires a filmed performance.
  2. Who owns the identity? If the character is yours, any method works. If it is a real person’s likeness, the consent question changes the answer entirely: see the legal section below.
  3. Still-first or text-first? Starting a clip from a locked still is the single biggest drift killer available to you. Midjourney states it plainly: “Any image parameters used to generate your original image will be automatically removed when generating videos.”
  4. One identity across two tools, or one tool end to end? Seedance 2.5 can be asked to maintain “facial features, clothing, and style across the generated video” from reference images. Nothing carries across tools automatically. You re-pass the reference every time.
  5. How long is one clip? Error compounds. Higgsfield’s Soul ID guide says it directly: “Small errors accumulate over long chains, so chain two or three clips from one start frame, then begin a new chain from a fresh Soul ID portrait.”

Reference, train, or drive: the mechanism table

Three mechanisms exist, and they trade setup cost against persistence. The table below compares what each one actually locks and where it stops working.

MechanismWhat it locksReference images neededSurvives a new sessionPer-character overheadDocumented failure point
Reference conditioningAppearance in the current generation1–4 typicalNo: must re-attachNoneEvery new generation is a fresh interpretation
Trained identity (LoRA, Firefly Custom Model, Soul ID)Face, build, recurring style8–30 training imagesYesOne model file or trained asset per characterOverfits to training framing; can’t generalise to unseen body positions
Performance capture (Runway Act-Two)Movement, expression, timingCharacter image or video + a driving clipYes, per takeRequires a filmed performanceGesture control only works with a character image, not a character video

The third row has a sharp edge worth stating. Runway’s Act-Two documentation says that when you supply a character video, generations “retain the subject, environment, and camera motion from the original video” and gesture control is not available. Supply a character image and Act-Two adds environmental motion and gives you gesture control. Same tool, different mechanics.

Image models compared, with the limits they publish

Every major image platform now ships some form of character reference, and none of them solve it alone. The differences are in how many references they accept and what they tell you will break.

PlatformIdentity mechanismMax referencesDocumented limitSource date
Midjourney V8.2Edit Model reference images4Results not compatible with Remix; auto-matches first image’s aspect ratio24 Sep 2026
Midjourney V7 (legacy)Omni Reference --oref / --ow1V7 only; costs 2× GPU time; --ow range 1–1000, default 1001 Sep 2026
Runway Gen-4 ImageReferences, taggable and shareable3“Each new variable introduced expands creative possibilities, though results may sometimes differ from your initial vision”11 Sep 2026
Adobe FireflyElements (Character type) + Custom Models (Character type)Multiple reference visuals; 10–30 training imagesCustom Models in public beta; trained models cannot be retrained19 Aug 2026 / product page read 16 Oct 2026
Adobe Firefly APIstructure parameter (outline and depth) + Style Reference1 structure image, strength 1–100, default 50Carries composition, not identity26 Feb 2026
Google Nano Banana 2Subject consistency across a workflowUp to 5 characters and 14 objects in one workflowVendor-stated capability, not an independent measurementDate not shown on page
Leonardo.AiCharacter Reference plus Elements (LoRA)Character Reference: 1; Elements: 10–50 training imagesFlux Elements character mode “optimised for realistic characters”; SDXL recommended for stylised characters19 Feb 2026

Two things fall out of that table. First, Midjourney’s V8.2 line has no Omni Reference weight: that control died with V7’s path to the default model. If a tutorial tells you to tune --ow on your default Midjourney, it is a year out of date. Second, Adobe’s API story and Adobe’s product story now diverge: the public API documents structure and style reference, with no identity parameter, while the Firefly app ships character Elements and trained Character models. If you are an API integrator, that gap matters.

Video models compared, on identity retention

Video is where consistency actually breaks, because most video models start from nothing on every generation. This is the comparison I would want if I were buying.

ModelIdentity mechanismReference ceilingMax clipVerified cost basis
Seedance 2.5Reference images labelled [Image1], [Video1]30 images + 10 videos + 10 audio in one request30 s native, extendableByteDance publishes no public unit price; use Runway or Higgsfield rates as proxies
Kling Elements / Kling 4.0 OmniNamed elements, saved and re-referenceableElements 1–4; Kling 4.0 Omni up to 15 combined assetsKling 4.0: up to 30 sConsumer: 660–26,000 credits/mo, $8.80–$159.99/mo
Runway Act-TwoDriving performance video + character image or video1 character + 1 performanceUp to 30 s, 3 s minimum5 credits/second
Runway Gen-4.5Text and/or image input; no identity reference1 input image2–10 s12 credits/second
Midjourney videoStart frame image only1 start frame5 s, extendable to 21 sBatch 1: 2 min GPU (SD), 7 min (HD)
Google Veo 3.1Ingredients to Video, multiple reference imagesMultiple; the earlier Flow guidance said up to threeNot stated in the cited documentationNo verifiable per-second consumer price

Read the last column honestly. Kling’s figures come from Kling’s own 28 July 2026 guide and list a first-month promotional price alongside the renewal price. Runway’s figures come from Runway’s pricing page read on 16 October 2026. Google’s per-second consumer price remains unconfirmed; third-party figures conflict, so the cell is left empty.

Kling’s API documentation, as republished by GMI Cloud, adds detail the consumer page hides: a multi-image element needs one frontal image plus one to three additional reference images; a video character element needs a 3–8 second 1080p clip; and audio containing a human voice triggers voice customisation. That is a genuinely different capability from every other entry above.

The local open-source stack, and the licence traps in it

Running the stack yourself costs you nothing per generation and buys you full control, at the price of a licence audit. This is the route the SaaS comparison articles skip, because it is genuinely more work.

The building blocks are mature and separately licensed. IP-Adapter (Tencent AI Lab, Apache-2.0) is the general reference-image adapter for Stable Diffusion and SDXL, including face-specific variants. InstantID goes further with zero-shot identity from a single image, using an ID embedding plus an IdentityNet for spatial control: it explicitly does not train the UNet, so it drops into existing SD1.5 and SDXL checkpoints and existing ControlNets without retraining. ControlNet (Apache-2.0) and its Openpose annotator handle pose. Regional-Prompting-FLUX extends training-free regional prompting to diffusion transformers and is documented as compatible with both LoRA and ControlNet.

The trap is the weights, not the code. InsightFace’s README is explicit that although the code is MIT, “the training data containing the annotation (and the models trained with these data) are available for non-commercial research purposes only,” and its November 2025 update routes inswapper model licensing to a contact address. FaceFusion publishes an asset-by-asset licence table: INSwapper, ArcFace, RetinaFace, SCRFD, SimSwap, GPEN and BlendSwap are all listed Non-Commercial, while CodeFormer is S-Lab 1.0, GFPGAN and RestoreFormer are Apache 2.0, and LivePortrait is MIT.

ComponentLicenceCommercial use for a client campaign
IP-Adapter (code)Apache-2.0Yes
InstantIDCheck each checkpointVaries: audit before shipping
ControlNet + OpenposeApache-2.0Yes
InsightFace inswapper weightsNon-commercial research onlyNo: licence required
ArcFace / RetinaFace / SCRFDNon-commercialNo
GFPGAN, RestoreFormerApache 2.0Yes
CodeFormerS-Lab 1.0Yes, with attribution terms
SimSwapNon-commercialNo

If you are doing commercial work, the face-restoration half of most community pipelines is the part that will bite you, not the adapter half.

The workflow, step by step

Build the character once, then never rebuild it mid-project. Twelve steps, in the order that actually prevents drift.

  1. Write the character block first. One paragraph of immutable attributes: age, build, hair colour and length, eye colour, distinguishing marks, signature clothing. Paste it unchanged at the top of every prompt. Kling’s character-consistency guide recommends exactly this discipline and adds negative prompts for the things you never want (“no beard, no glasses”).
  2. Build a reference set of 20+ images. Not one hero shot. Multiple angles, multiple lighting conditions, no sunglasses, no masks, no extreme expressions. Higgsfield’s Soul ID accepts “20+ recommended, up to 80 accepted” at 960px or higher.
  3. Add full-body and medium shots. Leonardo’s training guide is emphatic: train on face crops and body shots, or “the Element may generate an inaccurate depiction of their body shape, height, etc., due to lack of knowledge.”
  4. Train the identity, or save an element. Choose one. Adobe wants 10–30 JPEG or PNG images at 1000px wide or more, with a target training score of 85 or higher. Leonardo caps Flux Elements datasets at 50 images and SDXL at 40. Cloud LoRA training on fal.ai’s FLUX.2 trainer runs about $6.40 per 1,000 steps.
  5. Generate the character sheet. Adobe Firefly can do this natively: pick Head, expressions & feature and Body, poses & movement, then Generate all. If you are elsewhere, do it manually: front, three-quarter, profile, full-body front, full-body three-quarter, one action pose.
  6. Lock one hero still. This is your master. Everything downstream inherits from it.
  7. Write the video prompt about motion only. Midjourney’s Gen-4 guidance is the right rule: because the image already conveys subject, composition, colour and lighting, “your text prompt should be almost entirely focused on describing the desired motion.”
  8. Start every clip from the hero still or a variant of it. Not from text. Ever.
  9. Chain two or three clips maximum, then generate a fresh locked frame and start a new chain.
  10. Add pose control only when the pose is the point. ControlNet with Openpose handles pose; Regional-Prompting-FLUX handles multi-character composition and is documented as “highly effective and compatible with LoRA and ControlNet.” Note that ComfyUI’s Regional Prompter is a custom node, not a built-in: the official built-in node documentation has no such page.
  11. Retouch the drift you cannot generate away. Grounding and clean-up in Photoshop still beats regeneration for a one-frame identity error. Higgsfield’s Genjutsu does the same job in-platform: it takes a 4–30 second clip plus up to 30 reference photos and corrects a drifted face without regenerating the scene.
  12. Log every reference and parameter that produced a keeper. Midjourney seeds are 99% identical in V8.x, which makes them genuinely useful as a change-control token: just not as an identity mechanism.

Failure modes and their fixes

Every drift problem has a named cause and a named fix. Here are the ones that actually show up in production.

  • Seed myth. Expecting --seed to hold a face. Fix: stop. Midjourney’s Seeds doc says seeds “have the least impact on the final image.”
  • Outfit drift. Wardrobe changes between generations. Runway’s References documentation admits results diverge once you add variables. Fix: lock wardrobe as its own reference or element, the way Kling explicitly supports clothing as an element.
  • Attribute bleed between two characters. Descriptors attach to the wrong subject. Fix: midjourney’s Edit Model tip: combine the characters into one reference image. In ComfyUI, use regional masks.
  • Face morphing across frames. Fix: shorter clips, and restart the chain from a fresh locked frame every few clips.
  • Identity drift in long shots. Wide framing gives the model room to reinvent the face. Runway’s tip: “Try describing a subject’s shoes or pants to consistently achieve a full-body shot.” Name what is on screen.
  • Turbo-mode inconsistency. Midjourney states seed locking is “not reliable” in Turbo mode. Fix: don’t mix speed experiments with consistency work.
  • Reference fighting itself. When a reference already contains a subject, Runway recommends covering the existing face with a black box before uploading, “to prevent confusion between the original and new subjects.”

What this costs in 2026

Trained identity is now cheap enough that skipping it rarely makes financial sense. Prices below were read on 16 October 2026; USD, before any VAT or sales tax. Midjourney’s figures come from its “Comparing Midjourney Plans” help article, last revised 18 May 2026. Check the current plan page before subscribing.

Line itemVerified priceBilling basis
Midjourney Basic → Mega$10 / $30 / $60 / $120 monthly; $8 / $24 / $48 / $96 monthly if billed annuallySubscription
Midjourney extra GPU time$4 per hour, all tiersPrepaid
Runway Standard / Pro / Max$15 / $35 / $95 monthly; $12 / $28 / $76 monthly billed annuallySubscription
Runway Standard credits625/mo ≈ 52 s Gen-4.5, or 104 s Gen-4 TurboMonthly, expires on billing date
Runway Pro credits2,250/mo ≈ 187 s Gen-4.5Monthly
Kling Standard → Ultra$8.80 / $32.56 / $80.96 / $159.99 at renewal; first month discountedSubscription
Kling native 4K on VIDEO 3.030 credits per secondConsumption
Higgsfield Basic / Pro / Max$9 / $29 / $79 monthly; $23 and $59 per month billed annuallySubscription
Higgsfield Soul ID training25 credits (~$1.25), 3–5 minutesOne-off per character
fal.ai FLUX.2 LoRA training~$6.40 per 1,000 training stepsPer run

Do the arithmetic on Runway Pro: 2,250 credits is 187 seconds of Gen-4.5 at 12 credits per second. A 30-second branded spot with three takes per shot is roughly 90 seconds of usable output, plus retries. One $28 annual-billed Pro month covers a small campaign. The expensive decision is not the subscription: it is retaking shots you failed to lock.

One commercial caveat: Midjourney requires a Pro or Mega subscription before a company with more than $1,000,000 USD in annual gross revenue can own the assets it creates. Higgsfield’s Basic plan explicitly states generated content “is not for commercial use.”

Using a real person’s face is where this workflow turns from technical to legal, and the rules tightened recently. This is not legal advice: talk to a lawyer for your project.

California AB 2602 voids a contract provision that allows “the creation and use of a digital replica of the individual’s voice or likeness in place of work the individual would otherwise have performed in person” where the contract does not give a “reasonably specific” list of proposed uses and the individual was not represented by counsel or a labour union. It applies to performances fixed on or after 1 January 2025. AB 1836 amends Civil Code 3344.1 to bar digital replicas of a deceased personality’s voice or likeness without estate consent.

In the EU, Article 50 of the AI Act came into force on 2 August 2026. Article 50(4) requires deployers of systems generating deepfake content to disclose that it was artificially generated, with a lighter standard for evidently artistic or fictional work. Article 50(2) separately obliges providers to mark outputs “in a machine-readable format and detectable as artificially generated or manipulated.”

Finally, check the model licence, not just the platform’s terms. InsightFace’s README states the code is MIT but “the training data containing the annotation (and the models trained with these data) are available for non-commercial research purposes only,” and routes inswapper licensing to a contact address. FaceFusion’s asset table lists INSwapper, ArcFace, RetinaFace, SCRFD and SimSwap as Non-Commercial. Most face-fix pipelines you will find online are therefore unusable commercially until you buy a licence. By contrast, Midjourney’s terms grant a perpetual, irrevocable, royalty-free licence over content you input: think carefully before uploading a client’s photograph.

The verdict

Trained identity is now the default answer, and reference conditioning is the fast path, not the finished one. If you are producing a series, a brand mascot, or anything where a viewer will see the same face twice, spend the twenty minutes training an identity. The mechanism is documented and priced by at least four vendors, and the cost is roughly one dollar to six dollars per character.

Where I would push back on the consensus: most “consistent character” content is still organised around Midjourney V7 syntax that no longer exists by default, around Act-One that has been retired, and around Sora inside Runway that was removed on 3 April 2026. Adobe Firefly’s Character Elements and Custom Models are the genuinely under-reported development of 2026, and they sit inside a toolchain most creators already pay for.

What still has no clean answer is multi-character scenes in video. Element systems scale well with one identity and badly with two. Budget for it.

FAQ

What is the most reliable way to keep an AI character consistent? Train the identity once, then reuse it. A LoRA, an Adobe Firefly Custom Model or a Higgsfield Soul ID holds a face across sessions and tools, which reference conditioning alone does not. For video, start every clip from a locked still rather than a text prompt.

Does locking the seed keep a character consistent? No. Midjourney’s Seeds documentation states that seeds cannot capture or bookmark a specific style, character or appearance across different prompts, and that they have the least impact on the final image. Seeds are for controlled tests of prompt changes.

How many reference images can I attach to one generation? Midjourney’s Edit Model takes up to four. Runway Gen-4 Image References takes up to three. Kling Elements takes one to four, and Kling’s API accepts one frontal plus one to three more. Seedance 2.5 accepts up to 30 images, 10 video clips and 10 audio files in a single request.

Is Runway Act-One still available? No. Runway’s help centre states that Gen-3 Alpha was retired on 8 July 2026 and Gen-3 Alpha Turbo on 30 July 2026, removing Act-One. Act-Two replaces it, costing 5 credits per second with a three-second minimum and up to 30 seconds of output.

What is the cheapest way to hold a character across a series? A native character element. Adobe Firefly Elements, Runway Gen-4 References and Higgsfield Soul ID all store the identity once with no per-generation training cost. A cloud LoRA run on fal.ai’s FLUX.2 trainer costs roughly $6.40 per 1,000 steps but adds file management.

Can I train a LoRA on a real person’s face? Only with consent that survives the specific use. California AB 2602 voids contract terms allowing a digital replica in place of in-person work unless the uses are listed reasonably specifically and the person had counsel or a union. Also check the model licence: several common face-swap weights are non-commercial.

Do I have to disclose that a character is AI-generated? In the EU, yes for deepfakes. Article 50 of the AI Act came into force on 2 August 2026 and requires deployers of systems producing deepfake content to disclose that it was artificially generated.

Why does my character’s face change halfway through a clip? Error accumulation. Kling’s technical write-up describes video models as stateless: each frame leans on the previous one, so small deviations compound. Higgsfield’s practical version: chain two or three clips from one start frame, then begin a fresh chain.

Do AI video models keep identity between separate clips? Not on their own. Midjourney states that image parameters are removed when generating video, and Runway documents that each generation restarts the process. Identity carries across cuts only if you pass it in yourself.

What is the realistic cost of a 30-second branded character video? Roughly $10 to $40 in generation credits before retouching, at current list prices. Kling puts native 4K on VIDEO 3.0 at 30 credits per second, so 30 seconds is 900 credits. Runway Pro at $28 per month billed annually covers about 187 seconds of Gen-4.5.

Sources

All URLs below were opened and read between 15 and 16 October 2026.

Midjourney documentation

Runway

Kling

Google

Adobe

Other platforms and open source

Legal and regulatory

Competitive review

Weekly digest

Get our weekly AI digest

The latest AI tools, prompts, and insights — short, useful, every week.

No spam. Unsubscribe anytime.

AIUnpacker Editorial

Articles are written for a specific question. Sponsored work is labeled.