做 AI 视频生成的同学,大概率都踩过人物漂移这个大坑。 输入一张清晰人物图,前几帧画面效果尚可,跑个二三十帧之后,五官错位、脸型走样、肢体变形,人物身份直接 “换脸” 重绘。很多项目为了稳住人物,只能缩短视频时长,反复重跑采样,研发与内容生产成本被大幅拉高。
“明明参考图人物很标准,为什么视频跑十几帧人就变样子?” 这是社区里被反复问到的问题。 “同样的参考图,不同模型人物漂移程度差异巨大,到底差异在哪个模块?” 也是一线开发者高频提出的疑问。
人物漂移并不是单一 bug,是图像空间特征、时序帧间特征、注意力机制三者共同带来的连锁问题。Vera1.1 版本,核心迭代点之一就是对时序注意力模块做定向重构,在不牺牲画面生成自由度的前提下,降低长时序视频里人物身份漂移、五官崩坏、肢体错乱现象。本文从工程实践角度拆解这套改进方案,同时分享落地过程中的踩坑经验与团队协作心得。
一、先搞懂:原生时序注意力为什么会出现人物漂移
传统 DiT 架构 AI 视频模型,时序注意力负责处理帧与帧之间的关联。原生实现存在几个现实短板。
- 帧间特征过度重采样 每一帧都会重新做全局注意力计算,历史帧人物身份特征权重随帧数增加逐步衰减。视频越长,早期参考图像的约束能力越弱。
- 空间与时序注意力耦合严重 空间视觉信息、时序运动信息混在同一套注意力头。运动幅度大的时候,容易连带把人物身份特征一起抹除。
- 缺少稳定锚点缓存机制 每一轮推理全部重新计算,没有对人物关键特征做持久化留存。一旦出现一帧畸变,错误特征会向后传播,越往后画面越失控。
- 滑动窗口边界损失 普通因果滑动窗口,窗口切换时刻,窗口边缘帧丢失早期人物特征,直接触发漂移突变。
很多团队会简单靠加大 CFG 权重、增加参考图重复次数去硬压漂移。现实工程里这么做副作用很明显:画面僵硬、动作卡顿、细节过度锐化,动态镜头直接废掉。
| 实现方案 | 核心思路 | 优势 | 工程落地痛点 |
| 原生时序注意力 | 全部帧全局时序计算,无特征缓存 | 生成动作自由度高,镜头灵活 | 长视频人物漂移严重,>24 帧后崩坏概率快速上升 |
| 增强参考图注入 | 反复把参考图送入每一步采样 | 短帧人物稳定性提升 | 动作僵硬,运镜受限,容易画面过曝过饱和 |
| Vera1.1 改进时序注意力 | 解耦空间‑时序注意力 + 帧特征缓存 + 窗口锚点约束 | 兼顾动作自由度与人物身份一致性 | 显存开销小幅上涨,需要做缓存剪枝优化 |
实际线上统计数据:同等 prompt、同等参考输入条件,Vera1.1 在 48 帧视频推理下,人物身份漂移失效的样本占对比原生版本下降 42%;大幅度运动镜头场景下,漂移异常样本下降 35%。当然,不是完全消除漂移,极端大幅度形变、极速转脸场景依旧会存在少量风险,这点要客观看待。
二、Vera1.1 改进时序注意力核心技术改动
星宇智算 Vera1.1 没有直接推翻原有双流 DiT 基础框架,而是在时序注意力内部做分层改造,分为四个核心改动点。
2.1 空间、时序注意力头解耦拆分
把原有混合注意力头拆分为两组独立子头:
- 空间注意力头:专门负责单帧内部画面、五官、服饰纹理细节
- 时序注意力头:只处理帧与帧之间运动、位移、镜头变化
这样做的价值:人物五官、身份特征交给空间子头持续维护;时序子头只负责处理运动变化。运动幅度放大的时候,不会连带覆盖掉人物身份特征,解决 “一动就崩脸” 的常见现象。
2.2 帧级关键特征缓存机制(帧特征缓存)
在推理链路增加轻量特征缓存池。
- 选取视频靠前关键帧提取人物身份关键特征,做标准化压缩存入缓存;
- 时序注意力计算阶段,持续把缓存特征作为软约束参与计算;
- 设置缓存衰减系数,不会强锁画面,保留合理表情、姿态变化空间。
这里有一个工程权衡:缓存全部帧特征显存压力会暴涨。Vera1.1 内部做了动态剪枝策略,只保留高价值身份特征帧,丢弃冗余重复帧特征,控制显存增幅在 12‑18% 区间。
2.3 优化因果滑动窗口注意力,增加锚点约束
长视频生成普遍使用滑动窗口因果注意力,降低算力消耗,但窗口切换位置,往往就是漂移高发位置。
Vera1.1 内部改动:
- 窗口切换的时候,保留上一个窗口内的人物锚点特征,跨窗口传递;
- 设置最小锚点间隔,无论窗口如何滑动,保证人物身份特征不会被窗口边界切断;
- 动态调整窗口步长,人物主体占画面大的时候自动缩小步长,强化约束;物体大场景可以放大步长提升推理速度。
我们团队内部踩过坑:最开始直接固定大窗口,漂移确实少了,但是推理速度直接下降 60%,线上业务完全不可接受。后面改成自适应窗口 + 锚点传递,才平衡效果与性能。
2.4 和三级图像注入架构协同联动
时序注意力不是独立模块,Vera1.1 把改进后的时序注意力和三级图像注入架构做联动。 参考图信息分层输入:浅层负责色彩构图,中层负责人物轮廓身份,高层负责细粒度五官纹理。时序注意力读取中层身份特征,持续对视频序列施加约束。 只改注意力,不联动图像注入模块,漂移抑制效果会大打折扣。很多自研团队容易忽略模块之间协同,单独调一个模块,很难拿到理想结果。
三、工程落地经验:团队协作与调参心得
再好的模型架构,最终都要落到业务迭代。我们内部在迭代这套时序注意力的时候,也沉淀了不少工程和团队协作经验,不止是算法本身。
3.1 评测体系一定要先行,不要靠肉眼主观判断
只靠人眼刷样做验证,效率极低,评审标准容易出现分歧。 我们团队内部的做法:
- 构建漂移专项测试集,覆盖侧脸、大幅度转身、走路运镜、多人画面等高频风险场景;
- 结合 FVD 时序指标,同时增加自研人物身份相似度指标做量化;
- 算法、内容测试、工程三方共同确认指标阈值,避免算法觉得效果好,业务侧上线翻车。
一个真实细节:早期版本 FVD 指标很好看,但人物漂移依然多。FVD 侧重画面流畅度,不等于人物身份一致性。两个指标要分开看,不能拿 FVD 当作人物稳定性唯一标准。
3.2 参数调优关键参数列表,实操可以直接参考
Vera1.1 对外开放推理参数,在使用过程中,这几个参数会直接影响人物漂移表现:
temporal_anchor_weight:时序锚点权重,范围 0‑1。数值越高人物越稳,但动作僵硬风险上升;业务短剧场景建议 0.35‑0.6 区间。feature_cache_decay:特征缓存衰减系数,控制历史特征衰减速度;长视频建议 0.7‑0.85,短视频可以调低。adaptive_window_min_step:滑动窗口最小步长,人物主体镜头调小,远景镜头调大。img_inject_strength:图像注入强度,和时序锚点参数互相配合,不要单一拉高其中某一个。
实操提醒:不要无脑把锚点权重拉满。权重开到 0.9 以上,人物几乎不会变形,但表情、动作全部锁死,视频变成静态图片滑动。很多开发者踩过这个坑。
3.3 团队协作层面的一点职业心得
AI 视频大模型迭代,非常容易出现 “算法自嗨”。 算法同学看指标,业务同学看实际成片效果,两方视角天然不一样。 我们团队内部的协作方式:
- 算法输出版本,同步输出量化指标 + 批量样例;
- 内容侧提供真实业务 prompt 与参考图,而不是实验室理想图片;
- 建立 issue 机制,把漂移案例保存,附带 prompt、参数、原始参考图,复现之后再迭代;
- 版本迭代记录收益与代价,每一次优化记录显存、速度、效果三者变化,不只讲收益,也要记录副作用。
很多开源项目只宣传效果提升,很少讲代价。Vera1.1 这套时序注意力优化,换来人物稳定性提升的同时,显存占用会上涨,长帧推理速度会小幅下降。业务选型的时候,要结合自己算力资源做取舍。
四、边界认知:Vera1.1 时序注意力能做到什么,不能做到什么
很多人会期待一个模型彻底消灭人物漂移,现实工程做不到。这里客观梳理能力边界。
✅ 可以做到:
- 几十帧内常规运镜、转身、走动场景,大幅度降低人物五官、脸型漂移概率;
- 参考图人物清晰的前提下,维持人物身份一致性;
- 在商用短剧、数字人口播、漫剧生成场景,减少返工重生成次数。
❌ 依然存在局限:
- 极速大幅度扭曲形变、完全侧脸背对镜头再转回正脸,依旧有漂移风险;
- 参考图模糊、人脸占比极小,约束效果会明显衰减;
- 超百帧超长序列,随着帧累积,特征约束会缓慢衰减,建议分段生成再拼接。
FAQ(常见问题)
Q1:使用 Vera1.1,人物还是出现漂移,优先排查哪些点?
A:优先确认参考图人脸清晰度,人脸尽量占据画面足够占比;其次调低运动幅度相关 prompt,调整temporal_anchor_weight与图像注入强度;超长视频建议拆分为分段生成,不要一次性跑百帧以上。不要单纯拉高 CFG,CFG 过高会带来更多副作用。
Q2:改进时序注意力,会带来多少额外算力开销?
A:同等帧数量,显存大概上涨 12‑18%,推理速度下降 8‑15%。得益于内部动态缓存剪枝和自适应滑动窗口,对比全量时序计算方案,算力压力可控。私有化部署场景做算力规划时,可以把这部分开销纳入预估。
Q3:这套时序注意力优化能力,私有化部署版本是否支持?
A:星宇智算 Vera1.1 私有化部署版本完整包含这套改进时序注意力模块,相关可调推理参数全部对外开放,企业业务可以结合自身业务数据集继续微调 LoRA,进一步适配自有角色。
Q4:时序注意力优化是否可以直接迁移到其他视频模型?
A:架构存在耦合,Vera1.1 的时序注意力和双流 DiT、三级图像注入架构深度绑定。直接剥离迁移难度较高,可以参考思路:解耦时空注意力、增加人物特征缓存、优化滑动窗口锚点约束,作为自研优化参考方向。
Q5:做短剧 AI 视频业务,建议设置多少帧单次推理最合适?
A:结合线上实践,优先推荐单次 24‑48 帧。超过 64 帧,无论哪款模型,漂移风险都会明显上升,长镜头建议分段生成做拼接处理。