AI 视频角色一致性:为什么会「变脸」,以及跨镜头、跨集不变脸的做法
跨镜头、跨集「变脸」的根因是模型每次生成都从零采样,没有记忆;参考链路断一处,脸就漂一次。稳定的做法按成本排:① 外貌写成具体静态特征加一个锚点;② 白底中性光定妆照加脸部裁切;③ 每一次生成都把参考图送进去;④ 分镜只正向写画面里有谁、承接上一段末状态;⑤ 工作室级再做 LoRA;⑥ 首尾帧串接只在参考不可用时用。
为什么会变脸:三个机理
先说结论:变脸不是「模型不行」,是三件事同时发生。
机理一:每次生成都是独立采样。视频模型没有跨调用的记忆。第 3 段和第 4 段是两次互不相关的抽样,哪怕提示词一字不差,脸也是重新「猜」出来的。文字只能把猜测约束到一个范围,范围之内怎么落是随机的。所以纯靠文字永远到不了「同一个人」,只能到「同一类人」。
机理二:文字会覆盖参考图。给了参考图,提示词里又写「浓眉大眼、瓜子脸」,两路信号冲突时多数模型偏向更具体的那一路,通常是文字。实测里最常见的漏洞是解析产出的外貌段被原样拼进每段视频提示词,参考图反而降成弱信号。
机理三:参考图自带的东西会被继承。定妆照如果烘了侧逆光、咧嘴笑、上身前倾,模型读到的不是「这张照片的样子」,而是「这个角色的样子」。后面每个镜头都会带着那道光、那个笑、那个俯拍角度开场,然后与分镜里逐镜的布光和表演指令打架。参考图是给模型看身份的,不是给观众看的海报。
第一层:能被读回来的外貌文字(成本最低)
「三十岁上下、气质冷峭的男人」没有可执行信息。可执行的写法是逐项列静态特征:脸型、眉形、眼型、鼻梁、唇形、肤色、发型发色、体型、年龄感,外加一个静态锚点——疤、痣、饰品、发型之一。锚点只能是静态的:写「笑起来眼睛先弯」,定妆照就会笑,之后每段都以笑开场。
不写表情,不写姿态,不写步态。全身照里「上身微微前倾」等于「头近脚远」,成片就是俯拍视角,这个角度同样会被继承。中文骨相词(丹凤眼、山根高、柳叶眉)对中文母语的图像模型是有效信息,不必翻成英文近义词。
这一层的产物在整条链路复用:定妆照提示词、每段视频提示词里的身份块、以及参考图失效时的兜底。它也是唯一改起来不花积分的一层。
第二层:白底中性光定妆照 + 脸部裁切
定妆照的标准是中性,不是电影感。参考图的通行准则只有三条:一致的光、明确的主体构图、没有与主体抢注意力的视觉噪声。落到操作上:纯白背景(写成独立硬条款,并在负面清单里再写一次——埋在段落中间会被突破)、正面全身、约 75° 的方向性主光加补光。目的是把骨相照清楚,不是营造气氛。
全身照之外再裁一张脸部特写。多数参考机制按像素面积分配注意力,9:16 全身照里脸只占不到 5%,而近景镜头恰恰只需要脸。全身照管体型与服装,脸部裁切管身份,两张一起送。
删掉 cinematic / dramatic lighting / masterpiece 这类词。它们给参考图加的是噪声,不是信息。
第三层:每一次生成都注入参考图——各模型机制对比
这一层是「同一个人」的物理基础。没有参考图机制的工具,跨集变脸是必然结果;有机制但没有每段都用,效果等同没有。主流模型的参考机制按官方文档整理如下(核查日期 2026-09-02):
| 模型 / 产品 | 机制 | 参考上限(官方) | 提示词里怎么指代 | 与首尾帧的关系 |
|---|---|---|---|---|
| 可灵 Video 3.0 Omni | 元素库(Elements)多主体参考 | 每个元素 2–4 张不同角度图;一次最多 7 个图片/元素,带参考视频时 4 个 | 按元素引用 | 官方指南未说明互斥 |
| Vidu Q3 / Q2 / Q1 | 参考生视频 | 图片 + 文本主体 ≤7(q2-pro ≤4) | @主体名 | 独立接口 |
| MiniMax H3 | reference_image 多模态参考 | 图片 ≤9;参考音频 ≤3 段、合计 ≤15 秒 | 按顺序 | 互斥:出现任一 reference_* 就不能有 first_frame / last_frame |
| Seedance 2.0(火山方舟) | 多模态参考(role=reference_image) | API 中转文档给出图 ≤9、视频 ≤3、音频 ≤3;官方页本次未能抓取 | 图1 / 图2 | 首尾帧、首帧、多模态参考为三种互斥场景(同上来源) |
| 通义万相 2.7 r2v | 参考生视频(多主体) | 参考图 + 参考视频 ≤5,每份素材只含一个角色 | 图1 / 视频1 | 首尾帧是另一组模型(kf2v,无声) |
把这一层做成产品的有两类。一类是视频模型自带的入口,见上表;另一类是一站式流水线把它自动化——例如 SceneMixer 的做法是维护一个持久角色库(白底全身照 + 脸部裁切),生成每一段时把在场角色的两张图自动作为参考注入,档位可选 Seedance 2.0/2.5、万相 3.0、MiniMax H3。可灵元素库、Vidu 参考生视频、万相 r2v 手动逐段上传也能达到同样效果,代价是每段都要人工选图。
两个常见误用:一是拿一张带情绪光效的海报当参考图(回到机理三);二是同框人数超过给的参考数,只给了两个人的参考却写了四个人,第三、四个人的脸由模型自由发挥,还会把前两个人的脸拉偏。
第四层:分镜承接纪律
参考图管「长什么样」,分镜管「这一刻谁在、什么状态」。两条规则。
只正向写画面里有谁。不写「张三不在画面里」「李四出画」。点名一个不该出现的人,等于把他的名字送进了条件,乱入的概率反而升高。画面里有谁就写谁,没提到的默认不在。
承接上一段的末状态。上一段结尾她已经坐下、外套搭在椅背,这一段开头就得从这个状态起,写成段头的起始画面状态:位置、姿态、手里拿着什么、光从哪来。不承接,下一段会回到「默认状态」——站着、外套穿着、正对镜头,观众看到的是一次跳变,感知上和变脸是同一种错误。
同一场景内的镜头共用同一份布景与光源描述,只改景别与动作。每段重写一遍布景,等于每段重新抽一间屋子。
第五层:LoRA / 微调(工作室级)
参考图是「每次生成时临时告诉模型」,微调是「把这个人写进模型权重」。对固定演员表的长剧,微调的一致性上限更高,且不占参考图名额,名额可以留给场景与道具。代价是数据准备(每个角色几十张多角度图)、训练费与时间,以及只在支持微调的模型上可用——阿里百炼公开了万相图生视频模型的微调指南,开放权重模型可自行训练 LoRA。
什么时候值得:单个角色总出镜超过约 30 分钟成片,或同一角色跨多部剧复用。低于这个量级,参考图层面的投入回报更高。
第六层:首尾帧串接,以及它的代价
首尾帧模式把上一段的末帧作为下一段的首帧,动作与位置天然连续,是「承接」的机械化版本。代价要看清楚:
- 与参考图互斥。MiniMax H3 官方文档写明 first_frame / last_frame 与任何 reference_* 不能同时出现;Seedance 2.0 的首尾帧与多模态参考按 API 文档也是两种独立场景。用首帧就丢了参考图,身份只能靠那一帧本身。
- 误差累积。每一段的末帧都带着这一段的生成误差,串到第五六段脸已经偏了一圈,再拿偏了的帧当首帧继续偏。
- 部分首尾帧模型不出声。万相的 kf2v 系列是无声视频,音画同出得另走一路。
合理用法:只在参考机制不可用、且段间必须物理连续(同一个连续动作被切成两段)时使用;每隔两三段回到参考图模式校准一次。
排查顺序:先判断断在哪一层
- 看输出尺寸与任务记录,先确认是哪个模型在出图——用户偏好设置常会静默压过默认路由,评估对象错了整轮结论都错。
- 对比参考图与成片:参考图本身有侧逆光、笑、俯拍,先重做定妆照(第二层)。
- 查每段的请求:参考图是不是每段都带了,脸部裁切有没有。
- 查提示词身份块:有没有与参考图冲突的外貌文字、有没有表情与姿态词。
- 查分镜:有没有点名出画的人、段头有没有承接末状态。
- 以上都对仍不稳:缩短单段时长、减少同框人数、避免大幅转头与遮挡;再考虑微调。
关键数字与来源
| 指标 | 数值 | 来源 | 日期 |
|---|---|---|---|
| MiniMax H3 参考图上限 | ≤9 张;出现 reference_* 后不能再传 first_frame / last_frame | platform.minimax.io | 2026-09-02 |
| MiniMax H3 参考音频 | ≤3 段,合计 ≤15 秒 | platform.minimax.io | 2026-09-02 |
| 万相 2.7 参考生视频 | 参考图 + 参考视频 ≤5,每份素材只含一个角色,提示词用「图1」「视频1」指代 | help.aliyun.com | 2026-09-02 |
| Vidu 参考生视频 | 图片 + 文本主体 ≤7(q2-pro ≤4),提示词用 @主体名 | platform.vidu.com | 2026-09-02 |
| 可灵元素库 | 每个元素 2–4 张参考图;Video 3.0 Omni 一次最多 7 个图片/元素(带参考视频时 4 个) | kling.ai | 2026-09-02 |
常见问题
换更贵的模型能解决变脸吗?
不能单独解决。三个机理与档位无关:独立采样是所有视频生成模型的共性。贵的档位通常参考机制更强、上限更高,但不带参考图照样漂。
参考图给几张最好?
角色两张:白底全身照 + 脸部裁切。多角度(正面/侧面/背面)在可灵元素库这类按元素聚合的机制里有增益;在按张分配名额的机制里,先保证在场每个角色都有脸部裁切,再补角度。
为什么同一段里两个人的脸互相「串」了?
多主体参考时模型按顺序与文字把图和人对上,文字没写清谁是谁、或两人外貌描述接近,就会串。万相要求每份参考素材只含一个角色,MiniMax H3 与 Vidu 也是按顺序/按名对应——提示词里要写成「图1 是 A、图2 是 B」这种明确绑定。
一集里角色换了衣服,参考图要重做吗?
身份不变、服装变,做法是给这套服装单独一张参考或在提示词里写清,不动脸部裁切。只改文字不换图,模型会在参考图的旧衣服与文字的新衣服之间折中。
首尾帧和参考图能一起用吗?
看模型。MiniMax H3 明确互斥;Seedance 2.0 按 API 文档也是互斥场景;万相 2.7 的参考生视频与首尾帧是不同模型。需要两者的段,先用参考模式出第一段,再以其末帧做下一段首帧,隔几段回参考模式校准。
解析层写的外貌,为什么定妆照里没体现?
常见原因是外貌段被夹在大段技术指令中间被稀释,模型退回「好看脸」先验。身份块要放在提示词最前面,随后紧接一条「禁止修饰成网红脸、禁止抹平特征」的锁定条款,再写技术参数。
资料来源
- https://platform.minimax.io/docs/api-reference/video-generation-v2-create
- https://help.aliyun.com/zh/model-studio/wan-video-to-video-api-reference
- https://help.aliyun.com/zh/model-studio/use-video-generation
- https://www.alibabacloud.com/help/zh/model-studio/wan-video-generation-finetune-guide
- https://platform.vidu.com/docs/reference-to-video
- https://kling.ai/quickstart/klingai-element-library-3-user-guide
- https://kling.ai/quickstart/klingai-video-3-omni-model-user-guide
- https://kling.ai/blog/kling-3-subject-binding-character-consistency
- https://www.volcengine.com/docs/82379/2298881