你生成了一个双人镜头:左边女、红衣,右边男、蓝衣。大约第 3 秒他们走过一根柱子,再出现时男的穿红、女的穿蓝。或者两张脸直接换了。模型搞不清楚谁是谁了。这就是 identity-swap(身份互换),是当前 AI 视频多角色场景里最难的问题之一。
最快的修法(截至 2026 年 6 月):别再只靠文字描述。给每个角色单独的带标签参考图。在 Runway Gen-4 References 里上传一张参考图,给它命名(例如 woman_red),然后用 @ 标签写 prompt:@woman_red walks on the left, @man_blue walks on the right。在 Kling 里用 Elements 功能(1-4 张参考图,每张绑定一个主体)。如果还是会换,就把每个角色分别生成成独立片段,在后期合成。最后这招永远不会换,因为模型每次只看到一个人。
快速诊断:你属于哪一类?
| 症状 | 最可能的原因 | 跳到 |
|---|---|---|
| 互换恰好发生在遮挡时(柱子、拥抱、交叉) | 每角色锚定太弱 | Step 1、Step 2 |
| 光看 prompt 分不出谁是谁 | prompt 没把角色区分开 | Step 1 |
| 参考图里两人重叠在一起 | 参考图融合 | Step 3 |
| prompt 里直接写了 “switch sides” / “cross” | 动作本身要求换位置 | Step 1(改写) |
| 4 秒片段稳,10 秒片段就换 | 时长放大了弱锚定 | Step 3、Step 5 |
常见原因
按踩坑频率排序。
1. 模型对每个角色的锚定太弱
文生视频模型把 a woman in red and a man in blue 当成一袋属性来处理。一旦两人的像素混在一起(遮挡、近景、拥抱),模型就有自由把哪个属性归谁重新分配。这就是为什么连 2026 年的强模型也还会换:解法不是单靠更好的 prompt,而是给模型每个角色一个独立的身份锚。
怎么判断:身份互换恰好发生在遮挡或近距离接触的瞬间。两人重新出现时模型把他俩”重画”了一遍,然后分配错了。
2. prompt 没把两个角色拉开
Two friends walking 给不了模型任何锚。A tall woman in a red coat with short black hair, walking alongside a shorter man with curly blond hair in a blue jacket 锚就强得多。
怎么判断:再读一遍 prompt。如果光看 prompt 你自己都分不出谁在哪边,模型也没理由分得清。
3. 参考图里两人融在一起
图生视频时,你的参考图可能把两个角色挤在同一个裁切区域里、或者剪影互相重叠。模型把它们当成一个实体。
怎么判断:看参考图。如果你自己都画不出两个干净分开的 bounding box,模型也画不出。
4. 动作本身要求互换位置
如果 prompt 写了 they switch sides as they walk,模型确实照你说的做了,但身份跟着换位置一起换了。编排类镜头里很常见。
怎么判断:你的 prompt 里有没有 switch、pass、cross、exchange?换位置可能把换身份也带出来。
5. 多角色场景片段时长太长
5 秒双人镜头通常没事,10 秒双人镜头身份漂的几率高得多。原理跟单人漂一样,只是更严重,因为要同时保住两个身份。多数平台单次生成上限在 5-10 秒(截至 2026 年 6 月,Runway、Kling、Pika、Sora 2 都在这个区间),所以更长的场景本来就要靠多段拼接。
怎么判断:同一个 prompt 跑一版 4 秒、一版 10 秒。如果 4 秒稳、10 秒换,那就是时长在放大弱锚定。
最短修复路径
Step 1:在 prompt 里把每个角色描述拉开
这是最便宜的修法,有时单靠它就够了。
# 弱
"Two friends walking through a park."
# 强
"On the left, a tall woman in a red coat with shoulder-length black hair,
walking next to a shorter man on the right in a blue jacket with curly blond
hair. Maintain positions: woman always left, man always right.
Maintain clothing: red on woman, blue on man, throughout entire clip."
# 用差异化的发色、身高、衣服颜色
# 在 prompt 开头和结尾各重复一遍分配
# 去掉一切暗示互换的动词:"switch"、"cross"、"pass"、"exchange"
Step 2:用每角色独立的参考图标签(2026 年最强的工具内修法)
这篇文章最初发布以来最大的变化:主流工具现在都能给每个角色绑定一张独立的参考图,比纯文字强太多。以下均经 2026 年 6 月核实仍然有效:
# Runway Gen-4 References(取代 Gen-3 References)
- 上传 1-3 张参考图
- 给每张命名,例如 "woman_red" 和 "man_blue"(输入名字 + 回车保存)
- 在 prompt 里用 @ 标签引用:
"@woman_red walks on the left, @man_blue walks on the right,
they do not swap positions or clothing"
- 每张参考图用干净、光线充足的单人裁切,锚定最强
# Kling Elements(Kling 3.0;取代旧的 "Multi-Subject References")
- 加 1-4 张参考图,把每个主体选为一个 Element
- 提供主体的正面、侧面、45 度视角能提升空间一致性
- 描述每个 Element 的动作;引擎会把它们绑成时空锚点
- 多主体互动可用,超长片段还是会漂
# Sora 2 Characters(前身是 "Cameos")
- 硬上限:每次生成最多 2 个角色
- 每个角色是可复用的形象;两人都用 Character 时一致性约 95% 以上
- 需要 3 人及以上就走合成(Step 4)
# Pika 2.5 Scene Ingredients
- 每个角色/物体分别上传图片
- 模型分别放置并动画化,不会把它们融成一团
Step 3:用图生视频把两人都锁进首帧
如果你的工具没有每角色标签,就把两人都锁进一张干净的首帧:
# 参考帧检查清单
- 两个角色都清晰可见
- 剪影差异化(身高、发型、衣服)
- 空间分离干净、不遮挡
- 衣服颜色对比强
# 图生视频 prompt
"Continuation of the depicted scene. Woman in red stays on left throughout.
Man in blue stays on right throughout. No swapping of positions or clothing.
Maintain identities from the reference frame."
# 最长生成 4 秒;越长换的风险越高
Step 4:每个角色单独生成再合成
最可靠的修法,因为模型从头到尾只看到一个人,所以根本没法把两人换:
# 单独生成角色 A(在场景里)
"A tall woman in a red coat walks through a park from left to right,
empty path, no other people, locked tripod."
# 单独生成角色 B(同一场景)
"A shorter man in a blue jacket walks through a park from left to right,
empty path, no other people, locked tripod, matching lighting and color grade."
# 在 After Effects 或 DaVinci Resolve(Fusion)里合成
- 给每个角色抠像 / 描边(或干脆在纯色背景前拍,方便键控)
- A 放底层,B 放上层
- 调时间让两人在同一镜里出现
- 给每人脚下加一个地面影子,把他们"钉"住
Step 5:避免遮挡,或改写成单人镜头
如果还是改不掉身份漂,就重构剪辑,让两个角色在危险时刻不要同框:
# 把一个双人镜头换成两个单人镜头
- Shot 1:女红衣走(4 秒)
- Shot 2:男蓝衣走(4 秒)
- 在剪辑里切来切去
# 或者照样生成双人镜头,但切在遮挡之前/之后
- 生成 6 秒
- 只用没发生遮挡的前 3 秒
- 遮挡之后的部分丢弃
怎么确认修好了
- 在遮挡点(柱子、拥抱、交叉的那一刻)逐帧拖动。互换如果存在,就发生在重新出现后的几帧之内。
- 在最后一帧检查三件事:每个角色的衣服颜色、发型、屏幕上的位置,是否都和首帧一致。
- 同一个 prompt 重跑 2-3 次。身份互换是随机的,所以一条干净片段只是运气;连续三条干净才说明修法稳了。
- 如果你做了合成(Step 4),确认两层之间的影子和光照方向一致,这是合成最常见的破绽。
常见问题
为什么角色只在经过遮挡物后面时才换?
遮挡就是触发点。角色被挡住期间,模型没有像素可追踪,所以它重新出现时模型会按 prompt 里的属性池把人重新生成一遍,可能把 “red coat” 贴到错的人身上。每角色参考图标签(Step 2)或合成(Step 4)会给模型一个能扛过遮挡的固定锚点。
2026 年保两个角色不串,用哪个工具最好?
单条片段里,Runway Gen-4 References(@ 标签)和 Kling Elements 最强,因为每个角色都有自己的参考图。Sora 2 Characters 也很好,但每次生成最多 2 个角色。要做到不管什么工具都零互换,就把每个角色单独生成再合成(Step 4)。
能让同一批角色在多个独立片段之间保持一致吗?
在单条片段里,当前模型配参考图大约能到 95% 以上一致性。跨多条独立片段更难。可靠做法是每次生成都复用同一批命名好的参考图(Gen-4 References 保存后能跨会话保留)或同一批 Sora 2 Characters,再在后期统一调色。
写更长的 prompt 或加 “do not swap” 真的有用吗?
差异化描述和明确的一句 do not swap positions or clothing 有一点帮助,但纯文字解决不了遮挡处的身份互换。把 prompt 当成下限;真正的修法是每角色锚(参考图)或合成。
我的片段 4 秒没事、10 秒就换,怎么办?
把场景拆成两三段各 4-5 秒的短片再剪到一起,或者用每角色参考图让锚撑得更久。时长会放大弱锚定,所以缩短单次生成往往是最快见效的。
预防
- 凡是身份重要的镜头,默认用每角色参考图标签(Gen-4 References、Kling Elements);绝对不能换的时候退回到单角色合成。
- 多角色场景永远 prompt 出明显的视觉差异(颜色、身高、发型)。
- 避开需要遮挡、互换、近距离接触的 prompt。
- 多角色片段锁在 4-5 秒以内,更长的在后期拼。
- 给每个角色建一套参考图库(并命名保存),方便后续镜头保持一致。
Related
- AI video character drift
- AI video face changes mid
- AI video scene inconsistency
- AI video extension loses style
- AI video image to video not following
- AI video product deformation
外部参考:Runway: Creating with Gen-4 Image References、Kling AI character consistency quickstart。