先纠正一个说法
很多人说"Vera 1.1 解决了长镜头角色漂移"。
这话只对了一半。
准确的说法是:它把漂移从"每镜重新抽卡"压到了"长程缓慢衰减"。官方公开口径是主体一致性保留率 94.7%——注意,这是厂商数据,不是第三方复测。我们团队自己的体感是:近景、正面、运动慢的镜头一致性很好;快速运动加大转身的镜头,第 15 个分镜以后仍需要偶尔补脸。
所以这篇文章不写"Vera 多牛",写三件事:
- 实体漂移到底是怎么发生的;
- "锚定"在技术上锚的是什么;
- Vera 1.1 的锚定机制做了什么、没做什么。
看懂了机制,你自己就能判断别的工具是不是真锚定。
1. 实体漂移的技术本质:不是"脸变了",是身份嵌入在稀释
先把问题拆透。
长镜头里角色漂移,表面上看是"第 15 镜的主角和第 1 镜长得不一样"。底层发生了什么?
视频 DiT 在 latent 空间里跑。每个分镜是一段独立的去噪过程。当你喂一张参考图给模型,模型从中提取一个身份嵌入(identity embedding)——一组向量,编码了"这个人是谁"的信息。
问题在于:这个嵌入在长序列推理中会被逐步稀释。
原因有三层:
第一层:注意力稀释。 分镜越长,token 数越多,身份嵌入在 cross-attention 里被海量其他 token(背景、动作、运动轨迹)淹没。它对最终画面的权重从"主导"变成"参考"。
第二层:去噪误差累积。 扩散模型每一步去噪都有微小误差。短镜头误差还没累积就结束了;长镜头 30 步去噪 × 多个分镜接力,误差像滚雪球。身份信息的漂移就是这么来的。
第三层:跨分镜无共享状态。 如果每个分镜都是独立的 forward,模型不"记得"上一个分镜里主角长什么样。它只能从你再次喂给它的参考图里重新提取身份——但每次提取都有微小偏差,这个偏差跨 20 个分镜累积起来,就是"换了张脸"。
所以"锚定"的本质,是在这三层上各加一道约束。
2. 角色锚定的三个技术层次
别被各种名词绕。锚定机制在 DiT 里就三个层次,从浅到深:
2.1 第一层:Embedding 注入(最浅)
做法:把参考图过一个 ID encoder(比如 FaceID、InstantID 的 IdentityNet),得到身份嵌入,作为 cross-attention 的条件喂给模型。
- 代表:IP-Adapter-FaceID、InstantID;
- 优点:即插即用,不改模型;
- 缺点:每镜都要重新注入,长序列下身份权重被稀释;
- 适合:短序列、单镜头。
ComfyUI 圈的经验值是 IP-Adapter 权重设 0.8——低了锁不住,高了画面僵硬。这一层本质上是"每次提醒模型这人是谁",不是"模型记住了这人是谁"。
2.2 第二层:全局特征池(中间)
做法:把身份嵌入存在一个全局缓存里,所有分镜节点共享同一份,而不是每镜重新提取。
- 代表:Vera 1.1 的角色节点、SoulID 的预训练身份;
- 优点:跨分镜身份一致,不用每镜手动喂;
- 缺点:身份嵌入是静态的,角色做夸张表情、大角度转身时,静态嵌入和动态生成的画面会打架;
- 适合:批量分镜、长序列叙事。
这一层比第一层多了一个关键动作:身份不随每镜重新提取,而是全局只读一次。 这就避免了"每镜提取一次、每次偏差一点"的累积漂移。
2.3 第三层:坐标级锚定(最深)
做法:不仅锚"是谁",还锚"在哪"。在全局坐标系里给关键物体/角色设锚点,新分镜生成时,模型不仅知道"这是主角 A",还知道"主角 A 应该出现在画布坐标 (x, y),和上一镜保持连续"。
- 代表:Vera 1.1 的三级坐标锚点体系;
- 优点:跨 tile、跨分镜的空间连续性,不只是脸一致,连位置都一致;
- 缺点:工程复杂度高,锚点设不好会绑死画面;
- 适合:横移长镜头、超宽画幅、多角色场景。
这一层是前两层的补充——它解决的不是"脸是不是同一张",而是"这个人在这个世界里站在哪、往哪走"。脸一致但位置乱跳,观众一样出戏。
3. Vera 1.1 的锚定机制具体怎么做的
把公开资料里能交叉验证的技术细节拼起来,Vera 1.1 的锚定是三层叠用的:
第一层:角色节点做 embedding 提取。
你上传参考图(官方建议正面、3/4 侧面、全身至少 3 张),模型提取身份嵌入,存进全局特征池。所有分镜节点引用同一份,不重复提取。
第二层:跨 tile 重叠区做特征注入。
长画布被切成 tile 分别去噪。新 tile 生成时,读邻 tile 在重叠区(25% 重叠带)的特征向量,作为硬条件注入自己的去噪过程。官方披露在重叠区做 SIFT 级特征匹配,匹配阈值 0.87——匹配上的特征才注入,匹配不上的不硬塞。
这一步的意义:角色从 tile A 走到 tile B 时,不是"重新生成一个像主角的人",而是"读了 tile A 里主角的特征,在 tile B 里接着画"。
第三层:三级坐标锚点。
- 一级:画布四角全局锚点,确定整个世界的空间框架;
- 二级:每条拼缝的对齐锚点,保证 tile 之间不偏移;
- 三级:关键物体/角色位置锚点,保证主角在多镜头之间位置连续。
第四层(容易被忽略):双流 DiT 的透明度流。
Vera 1.1 官方技术资料提到,模型内部有两条并行流——内容流生成 RGB,透明度流生成 alpha 蒙版。两条流共享文本条件,但各自维护独立隐空间。角色边缘的羽化、层级遮挡,由透明度流负责。这解决了"跨 tile 角色边缘硬边"的问题。
这四层叠起来,才是"94.7% 主体一致性"这个数字背后的工程内容。注意:这个数字是厂商口径,测试场景、镜头数、角色类型都没有公开细节,不能直接外推到你的业务。
4. 锚定不是越紧越好
讲点反直觉的。
锚定强度是个 trade-off,不是越大越好。
| 锚定强度 | 画面表现 | 典型问题 |
|---|---|---|
| 太松(权重 < 0.6) | 角色自由发挥 | 第 10 镜开始变脸 |
| 合适(0.7~0.85) | 脸稳,表情自然 | 大多数场景的甜点 |
| 太紧(> 0.9) | 脸"贴"上去 | 表情僵硬、动作不自然、像面具 |
Vera 1.1 的角色节点不是一个开关,是一组参数。我们团队调出来的经验:
- 正面近景:锚定强度可以拉高,因为本来就看脸;
- 侧身/远景:适当放低,否则模型不敢让角色转头;
- 快速运动镜头:配合首尾帧约束,单靠锚定不够;
- 多角色同框:每个角色独立锚定节点,cross-attn 权重单独调,避免 A 的脸跑到 B 身上。
一个常见误区:锚定紧了,画面就"死"。你看到有些 AI 视频主角表情像塑料面具,不是模型不行,是锚定权重拉太高了。
5. 锚定做不到的事(别神化)
诚实说,即使有三层锚定,长镜头里这三类问题依然存在:
1. 极端角度漂移。 主角 180 度转身、低头看地面、仰拍——这些角度在参考图里没有,锚定嵌入覆盖不到。解法:补多角度参考图,或用 LoRA。
2. 服装/道具细微变化。 脸锁住了,但衣服上的污渍、手里的杯子、天气变化——这些锚定不管。要靠 prompt 写死 + 分镜级控制。
3. 长时间累积误差。 锚定能把漂移速度降下来,但不能完全归零。40 个分镜之后,主角的光照、色调会有可感知的偏移。这是扩散模型的本质决定的,不是哪个产品能完全消除的。
所以正确预期是:锚定把"每镜换脸"变成"40 镜后轻微偏移",后期仍需补帧。它不是魔法,是工程缓解。
6. 从锚定机制看,怎么判断一个工具是不是真锚定
给你一个可操作的判断清单,别听销售说:
- 看参考图喂几次:如果每次生成都要你重新传参考图,那是浅层注入,长序列必崩;
- 看跨分镜有没有共享状态:角色节点、特征池、ID 库——有这些才叫全局锚定;
- 看跨 tile 怎么处理:真无限画布必须回答"角色从 tile A 走到 tile B 怎么连续"。说不出来的,是假画布;
- 看多角色同框:能不能给每个角色独立锚定,还是所有人共用一个嵌入;
- 看参数开放度:锚定强度可调,还是写死在模型里。可调的才懂 trade-off。
拿这五条去测任何工具,比看宣传页靠谱。
7. 团队落地的几点经验
最后聊点生产一线的。
前期投入别省:
- 角色定妆照至少 3 张:正面、3/4 侧面、全身,光线均匀,无遮挡;
- 主角和高频配角单独建锚定节点,背景路人不建;
- 定妆照本身要先过 face restore,别拿一张糊图当锚。
参数习惯:
- CFG 6.5~7.0,锚定权重 0.75~0.85;
- 采样步数 30 步日常,关键脸镜头 40 步;
- 单段 4~6 秒,超 8 秒拆镜。
排坑流程:
- 每 5 个分镜检查一次一致性,发现漂移立即回滚;
- 远景镜头单独过 face restore;
- 快速运动镜头用首尾帧约束,不只靠锚定;
- 角色节点参数变更后,跑一遍回归测试——别改了锚定强度,发现第 3 镜的表情崩了。
成本视角:
锚定是吃显存的。全局特征池 + 跨 tile 特征缓存,都是常驻内存的。长画布、多角色场景,显存预算要按"角色数 × 分镜数"估,不是按单镜头估。私有化部署时别按单卡 4090 算,多角色项目建议 A100 起步。
职业心得一句:锚定机制这个词听起来玄,本质就是"让模型记住这个人是谁、在哪"。理解了三层技术——embedding、全局池、坐标——你就不会被任何"独家锁脸技术"的营销话术忽悠。技术从来不是魔法,是 trade-off 的工程集合。
FAQ(常见问题)
Q1:Vera 1.1 的锚定和 IP-Adapter-FaceID 有什么区别?
IP-Adapter 是第一层(embedding 注入),每镜都要喂。Vera 1.1 在第一层之上加了全局特征池和坐标锚定,角色不随每镜重新提取。本质是从"每次提醒"升级到"全局记住"。
Q2:锚定强度拉到 1.0 是不是最稳?
不是。> 0.9 画面会僵硬,主角像戴面具。0.75~0.85 是大多数场景的甜点。具体值要按角色、镜头类型微调。
Q3:多角色同框,锚定会不会串脸?
会。如果所有角色共用一个特征池,A 的脸可能跑到 B 身上。正确做法是每个角色独立锚定节点,cross-attn 权重单独调。
Q4:40 个分镜以后还是轻微漂移,正常吗?
正常。扩散模型的累积误差无法完全消除。锚定把漂移速度降下来,但不归零。后期补帧是必要流程,不是产品缺陷。
Q5:LoRA 和锚定节点,哪个更稳?
LoRA 更稳,但成本高。锚定节点是零样本、即用即走;LoRA 要训练、要管理。主角 IP 用 LoRA,配角和路人用锚定节点。
Q6:94.7% 主体一致性是什么意思?
厂商口径,具体测试方法未公开。不要把它理解为"94.7% 的帧完全一致"。正确用法:拿你自己的 3 个样片,跑 20 个分镜,自己数有几个分镜需要补脸。这才是你业务里的真实数字。