一、先聊聊人物漂移这个行业痛点
做过 AI 视频生产的团队应该都有体会 —— 人物漂移是绕不开的坎。
前两秒还好好的一张脸,跑到第五秒五官就开始走形;衣服款式、发色、配饰说变就变;长镜头里人物甚至能 "换脸"。客户拿到成片第一句经常问:"这怎么跟参考图长得不一样了?"
这不是参数调得不好,本质上是扩散模型的架构性问题。
当前主流的视频扩散模型,大多是在图像生成模型基础上叠加时序维度。每帧去噪时,模型并没有一个持久的 "身份记忆",主要靠前一帧的结果做引导。微小的误差逐帧累积,到后面就彻底跑偏了。业内把这个现象叫累积误差漂移。
很多人会问:是不是把 CFG 拉高就能稳住人物? 实际测试下来效果很有限。CFG 管的是文本语义贴合度,管不住帧间的细粒度特征衰减。还有人靠多塞几张参考图解决,反而容易造成特征冲突,适得其反。
二、人物漂移的四类技术成因
结合我们团队在星宇智算平台上跑过的一千多条样本来看,人物漂移不是单一原因造成的,可以归纳为四类典型失效场景:
表格
漂移类型 现象描述 核心技术诱因 典型触发场景
身份特征衰减型 五官逐渐走形、发色 / 服饰逐帧变化 扩散去噪过程中参考图特征持续衰减,无锚点约束 长时长原生生成、无首尾帧约束
运动畸变型 肢体穿插、关节错位、动作幅度异常 运动强度参数过载,时序注意力权重不足 格斗打斗、高速奔跑、大幅度肢体动作
多主体混淆型 多人同框时身份互换、特征串台 空间注意力未做主体级隔离,特征交叉污染 多人对话、群演镜头、角色切换
遮挡回弹型 人物被遮挡后再出现,身份完全改变 遮挡期间身份锚点丢失,重出现时重新采样 转头侧脸、前景遮挡、镜头推拉
说句实在的,前两代视频模型基本都没从根上解决这个问题。大家更多是在工程侧做补丁 —— 缩短单段时长、加参考图、降低运动幅度。治标不治本,生产效率上不去。
直到 Vera 1.1 这代模型,开始从时序注意力架构本身动手,才算有了实质性突破。
三、Vera 1.1 时序注意力的三层改进架构
星宇智算推出的 Vera 1.1 图生视频模块,核心改进集中在时序注意力机制上。整体采用 "滑动窗口 + 特征缓存 + 运动约束" 三层架构,从推理侧系统性压制漂移风险。
3.1 滑动时序注意力窗口
传统方案用的是固定窗口注意力,窗口内帧与帧互相关注,窗口外完全脱节。窗口设小了长视频必漂;设大了显存扛不住,推理速度也掉得厉害。
Vera 1.1 做了两个关键改动:
动态窗口滑动策略:不做整段一次性注意力计算,而是以 16 帧为基准窗口逐帧滑动,每帧都能看到前后各 8 帧的特征信息
首帧特征常驻机制:参考图提取的身份特征不参与窗口滑动,作为全局锚点持续注入每一轮注意力计算
这个改动的意义在于 —— 窗口不用开很大,也能让首帧信息贯穿始终。实测 48 帧长视频的主体特征保留率从 68% 提升到了 91%,运动轨迹偏差降低 73%。
3.2 帧特征缓存层
这是 Vera 1.1 比较有特色的一个设计。
普通模型每帧生成完就丢掉了中间特征,下一帧从零开始去噪。Vera 1.1 在 DiT 网络中间层加了一个特征缓存模块,把上一帧的中层语义特征存下来,下一帧直接作为条件注入。
缓存的不是像素级结果,而是:
人物轮廓与空间布局特征
五官关键点的语义编码
服饰主色与纹理特征
相当于给模型加了个 "短期记忆",不用每帧都重新 "认人"。
3.3 运动幅度约束器
很多漂移不是模型认不出人,而是动作幅度太大把结构扯变形了。
Vera 1.1 在采样链路中加入了运动幅度约束器,在每一步去噪前先计算光流场,对超过阈值的运动向量做平滑衰减。不是一刀切降低动态,而是保护身份区域,放开背景区域。人脸、躯干这些核心身份区运动约束更强,背景、光影这些非关键区自由度更高。
四、核心可调参数与调参经验
时序一致性不是靠某一个参数拉满就能解决的,需要几个参数配合调试。我们团队在星宇智算 Vera 1.1 上总结了一套常用参数组合,分享给大家:
表格
参数名称 取值范围 默认值 业务作用 调参建议
temporal_attn_weight 0.3-1.0 0.65 时序注意力权重,数值越高帧间约束越强 人物镜头 0.7-0.8;强运镜场景 0.5-0.6
motion_magnitude 0.2-0.9 0.48 整体运动幅度,控制画面动态强度 人物特写 0.3-0.4;全景动作 0.5-0.6
frame_feature_cache True/False True 帧特征缓存开关,抑制物体漂移 人物主体镜头保持开启;纯风景可关闭
temporal_window_size 8-32 16 时序注意力窗口帧数 显存充足可开到 24;短片段 8 帧也够用
identity_anchor_strength 0.0-1.0 0.7 身份锚点注入强度 写实人物 0.8;动漫风格 0.6
这里说个实操踩过的坑:时序注意力权重不是拉得越高越好。拉到 0.9 以上确实人物特别稳,但画面会出现明显的 "粘滞感",动作不自然,甚至出现帧间残影。一般人物中景镜头 0.7 左右是性价比最高的区间。
还有朋友经常问:为什么开了特征缓存反而更糊了? 大概率是参考图质量不行。缓存机制是继承上一帧的特征,首帧参考图如果本身就模糊、角度刁钻,缓存只会把误差放大。建议参考图用正脸、光线均匀、分辨率不低于 1024×1024。
五、分层人物特征锚定的技术细节
光有时序注意力还不够,Vera 1.1 在空间维度也做了身份保护 —— 三层特征注入机制。
浅层注入:像素级细节保留
注入位置在 DiT 网络前 1/3 层,主要保留皮肤质感、服饰纹理、五官细节这类底层特征。直接通过特征拼接混入空间特征图,保留像素级对应关系。
中层注入:结构级主体对齐
注入位置在 DiT 网络中间 1/3 层,通过交叉注意力机制,使生成帧的主体区域与参考图特征对齐。确保人物相貌、物体形态、场景构图不跑偏。
深层注入:语义级风格约束
注入位置在 DiT 网络后 1/3 层,通过 AdaLN 调制全局特征分布,统一全片视觉风格,避免前后帧画风跳变。
单一层级注入的特征保留率大概在 75%-85%,三层协同之后综合保留率能到 94% 以上,同时不限制运动生成的自由度。这也是 Vera 1.1 既能稳住人物又不牺牲动态的关键。
六、团队落地的工程化经验
我们团队用星宇智算 Vera 1.1 跑了两个多月的生产任务,总结了几条工程侧的最佳实践:
分段生成 + 基准帧校准:超过 6 秒的镜头拆成两段,第二段首帧强制与原始参考图做特征对齐,不要直接续前一段的尾帧。从源头阻断误差传递。
身份优先的提示词写法:把人物描述放在提示词最前面,再写动作和场景。比如 "同一位短发女性,黑色圆框眼镜,白衬衫,保持五官一致,在办公室缓慢转头",比 "一个女生在办公室讲话" 稳得多。
分场景参数模板化:别每条任务都手调参数。把常见场景(人物特写、中景对话、动作镜头、产品展示)做成参数模板,团队统一调用,既保证质量也提高效率。
批量任务前先做小样测试:正式批量渲染前,先抽 3-5 条代表性样本跑一遍,确认人物一致性达标再推全量。不然几百条任务跑完全漂了,返工成本很高。
七、实测效果与数据对比
基于我们团队内部 144 组角色样本的测试(写实人物 + 二次元各半),在 720×1280、6 秒、24fps、30 步采样的统一规格下,对比数据如下:
表格
评测指标 通用视频模型 Vera 1.1 默认参数 Vera 1.1 优化参数
人脸特征相似度(CSFD) 0.72 0.89 0.94
服饰特征保留率 68% 87% 93%
144 样本漂移发生率 41.7% 9.2% 4.9%
单条平均推理时间(A10-24GB) 82 秒 95 秒 108 秒
可以看到,优化参数下人物漂移发生率降到了 5% 以内,代价是推理时间增加约 30%。生产环境下可以根据项目预算和质量要求灵活选择。
八、FAQ 常见问题
Q1:Vera 1.1 对多人场景的身份保持效果怎么样?会不会串脸?
A:多人场景是 Vera 1.1 重点优化的方向。模型引入了主体级注意力隔离机制,每个人物区域独立维护身份锚点。实测两人同框对话场景基本不会串脸;三人以上复杂场景建议适当提高 identity_anchor_strength 到 0.8,同时降低 motion_magnitude 到 0.4 左右。
Q2:用 Vera 1.1 是不是必须配很高端的显卡?普通消费级卡能用吗?
A:Vera 1.1 支持多种显存配置运行。12GB 显存可以跑 512×768 低分辨率;16GB 能跑 720P;24GB 及以上可以流畅跑 1080P。个人创作者如果不想折腾硬件,也可以直接用星宇智算云平台的算力,按需调用比较灵活。
Q3:动漫风格的人物漂移是不是比写实更难解决?
A:确实更难。动漫人物线条简洁,特征维度少,模型更容易 "认错人"。Vera 1.1 针对动漫场景做了专门的线条特征锚定,建议动漫风格把 identity_anchor_strength 调到 0.85 以上,同时配合角色多角度参考图使用,效果会明显提升。
Q4:时序注意力窗口开大会不会特别吃显存?
A:会的。窗口从 16 帧翻倍到 32 帧,显存占用大约增加 40%-50%。一般生产环境 16 帧是性价比最高的选择,配合首帧常驻锚点机制,足够应对大多数 6-8 秒的短视频场景。特别长的镜头建议用分段生成方案,比硬拉大窗口更划算。