← 返回 2026-08-14

LiveAnimate:实时稳定的长时间流式人体动画 LiveAnimate: Stable Long-Form Streaming Human Animation in Real-Time

Yuxuan Zhang, Haozhong Xiong, Yubo Huang, Jiayi Song, Jinpeng Yu, Haofan Wang, Jiaming Liu, Ruihua Huang, Liwei Wang 📅 2026-08-13 👍 23 2026-08-19 18:30
KV缓存 人体动画 扩散蒸馏 流式推理 视频生成

首个14B级实时流式人体动画系统,19.63 FPS且3分钟质量几乎零漂移

前置知识

Diffusion Transformer (DiT) 与流匹配

扩散模型把去噪网络从 U-Net 换成 Transformer 主干后称为 DiT,可随参数量扩展。现代视频 DiT(如 Wan)通常采用流匹配(flow matching)目标:学习速度场 $v_\theta(z_t, t)$,让噪声沿概率流 ODE 逐步演化到数据分布。Wan2.2-Animate-14B 是一个 14B 参数的视频 DiT,配因果 3D VAE,用双向注意力对整段视频联合去噪,原始配置每段需 50 步去噪。

LiveAnimate 的全部工程都围绕把这样一个双向、多步的离线 DiT 改造成因果、少步的实时流式生成器,不理解 DiT 就无法理解其改造对象。

Attention Sink 与 KV 缓存

自回归模型逐 token 生成时会把已生成内容的 key/value 存入 KV 缓存供后续注意力查询。StreamingLLM 发现序列开头的少量 token 充当注意力汇聚点(attention sink),只要永久保留它们,就能在有限缓存窗口下稳定地无限长生成。LiveAnimate 把这一思想移植到视频扩散:参考图 latent 构成全局 Ref Sink,首个生成块构成 Static Sink。

PR-Sink 是本文长时程稳定性的核心机制,本质是注意力汇聚点 + 有界 KV 缓存的视频版推广,是读懂第 3.4 节的前提。

教师强制与曝光偏差

教师强制(teacher forcing)训练自回归模型时,每步的条件上下文用真实历史(ground truth)而非模型自身的历史预测,训练稳定但推理时模型面对的是自己的输出,产生分布不匹配,即曝光偏差,会导致误差随生成长度累积。Self Forcing 类方法让模型在训练中就基于自身 rollout 的历史来生成,从而弥合训练-推理差距。

LiveAnimate 的两阶段训练正是先教师强制打基础、再用块级自强制消除曝光偏差,这条主线贯穿第 3.2 和 3.3 节。

分布匹配蒸馏 (DMD)

DMD 通过一个可学习的 critic(fake score)逼近学生模型的分数,用真实分数与 fake 分数之差构造梯度 $\mathcal{L}_{\text{DMD}} = S_{\text{real}} - S_{\text{fake}}$,让学生模型的输出分布直接匹配教师分布,从而把几十步的采样压缩到 1-4 步,而非逐步模仿去噪轨迹。

Stage 2 的 BS-DMD 把 50 步去噪压到 3 步实现实时,靠的就是 DMD;其块级重放技巧也围绕 DMD 损失如何作用于整条轨迹展开。

RoPE 旋转位置编码

RoPE 通过对 query 和 key 做与相对位置有关的角度旋转来注入位置信息:注意力得分只依赖 $q$ 与 $k$ 的相对位移。若把一段历史 KV 从其原始时间位置复制到另一个缓存位置,直接使用会引入位置错配,必须用新位置的旋转重算,或缓存旋转前的 raw key 在注意力时重新旋转。

PR-Sink 会把姿态匹配的历史块复制到 Dynamic Sink,位置与其原始时间戳解耦,因此需要 RoPE 前缓存 + 重新旋转(RoPE follow)才能正确复用,这是消融实验验证的关键设计。

研究动机

姿态驱动人体动画只需一张参考图和一段骨架序列就能让目标人物动起来,是数字人直播、虚拟化身、远程呈现等交互应用的基础能力,但现有扩散方案全是离线的。基于 14B 参数 DiT 的最新系统(Wan-Animate、SCAIL、UniAnimate-DiT、One-to-All)每段视频需要数分钟到数小时计算:论文实测六个基线系统生成同一段 3 分钟 25FPS 序列需要约 2-5 小时(One-to-All 约 2 小时、EverAnimate 约 5 小时),完全无法支撑需要秒级响应的实时交互。即便是把生成拉长到分钟级、通过持久 latent 传播抑制身份漂移的 EverAnimate,每个分块仍要 20 步去噪,离实时相去甚远。更糟的是长时生成普遍存在外观漂移:3 分钟 rollout 中 One-to-All 的图像质量评估 IQA 从 3.402 崩到 1.786,DINO 身份相似度从 0.769 跌至 0.328,FID 从 146.29 恶化到 386.33;保留全部历史 KV 又会让显存和注意力开销随流长线性增长,二者构成两难。

本文的目标是本文要构建第一个同时满足三个条件的姿态驱动人体动画系统:流式生成(可处理开放式、无界的姿态序列)、实时推理(交互级延迟)、十亿参数规模下长时稳定(外观与身份不随时间漂移)。具体量化目标是把 14B DiT 的每块采样压缩到 3 步、在 2 张 H100 上达到约 20 FPS、KV 缓存与内存占用不随流时长增长,并在 3 分钟基准上让质量指标从第 30 秒到第 180 秒基本保持不变。同时训练管线必须可行:Stage 2 蒸馏 14B 模型要能装进单台 8×80GB GPU 节点。

与已有工作不同的是,已有工作各自只解决问题的一部分:CausVid、Self Forcing、Causal Forcing 等自回归视频蒸馏方法解决了少步因果生成,但没有针对姿态条件动画的参考图锚定,也不处理姿态反复出现时的外观证据回收;Rolling Forcing、Context Forcing、Rolling Sink、Stable Video Infinity 缓解通用视频生成的 rollout 漂移,但都不在严格实时延迟预算下做姿态感知的缓存保留;EverAnimate 做了分钟级稳定但仍是每块 20 步的离线系统。本文的独特切入是把三个问题当成耦合系统一并求解:用参考图锚定的教师强制把双向 DiT 改成因果生成器,用块级自强制 DMD 蒸馏压到 3 步,再针对 articulated motion 的特殊性提出姿态检索式注意力汇聚——当人物回到曾经做过的姿势时,从一个小型记忆库中取回那个姿势对应的历史 KV 写入动态汇聚点,让外观证据按需召回而非全程持有。

核心方法

直觉上,实时长视频生成的矛盾在于:要因果逐块输出就必须有历史上下文,但全量历史让成本随时间无限增长,丢弃历史又会在姿势复现时丢失外观证据。LiveAnimate 的解法是让缓存里的每一部分各司其职:参考图永久锚定身份,第一个生成块锚定场景外观,最近三块提供短期运动连贯性,再留一个槽位按当前姿势从记忆库动态召回最相关的历史块——总量恒定,信息却不丢。技术路线上分三步走。第一步(Stage 1,Reference-Anchored Teacher-Forcing Adaptation):把预训练双向 DiT(Wan2.2-Animate-14B)改造成块因果生成器,训练时每个时间块在干净的真实历史上做 50 步去噪,参考图 latent 以 $t=0$ 前向编码成全局 Ref Sink 对所有块可见。第二步(Stage 2,Block-wise Self-Forcing Distillation):先用无梯度自强制 rollout 让模型暴露在自己的历史下,再逐块重放计算 DMD 分布匹配损失,把采样压到 3 步。第三步是推理期的 PR-Sink 缓存机制加 Ulysses 序列并行与 torch.compile 系统优化,最终在 2×H100 上达到 19.63 FPS。

核心创新是 Pose-Retrieval Sink Attention(PR-Sink)与参考锚定条件生成的结合。与 StreamingLLM 式的静态汇聚点不同,本文观察到人体动画的漂移有鲜明的姿态结构性:滚动窗口滑走后,当主体回到某个曾经做过的姿势(如回头、抬手),窗口里只剩下中间过渡帧的外观证据,局部伪影随之出现。PR-Sink 因此把持久缓存组织成 Static Sink(第一个生成块,提供时间不变的全局外观锚)加 Dynamic Sink(存放从容量 $M=5$ 的记忆库中按姿态相似度检索出的历史块,提供特定姿态和视角下的外观证据)。记忆库的写入目标是最大化姿态覆盖度:新块到来时穷举所有替换方案,选平均成对余弦相似度最低的库 $i^* = \arg\min_i \text{AvgSim}((B\setminus\{i\})\cup\{q\})$,冗余姿势被拒之门外,新异构型才能入库。另一个关键区别是条件生成的 Ref Sink:标准教师强制是无条件文本到视频的技术,而这里参考图 KV 以干净时间步编码并对所有块全局可见,使身份锚定与块因果化同时成立——这是把 LLM 注意力汇聚点思想迁移到条件姿态驱动场景的实质性改造。

方法步骤详情

完整流程如下。训练 Stage 1:把视频切成每块 $B_f$ 个 latent 帧的时间块,块 $b$ 去噪时通过块因果注意力读取 Ref Sink、真实干净历史 $z_{\text{GT}_{<b}}$ 和当前块,即 $\text{Attn}(Q_b, K, V) = \text{softmax}\left(\frac{Q_b [K_{\text{ref}}; K_{<b}]^T}{\sqrt{d}}\right)[V_{\text{ref}}; V_{<b}]$;在 60k 视频(40k 非说话视频 + 20k 人体运动视频)上以 LoRA rank 128、学习率 $5\times10^{-5}$ 训练 10k 步。训练 Stage 2:Pass 1 学生无梯度生成完整轨迹 $(\bar{z}_1,\ldots,\bar{z}_N) = \text{Rollout}_\theta(\epsilon_{1:N}, C)$,每块 3 步;Pass 2 逐块重放,仅当前块 $z_T^\theta = G_\theta(\epsilon_T; \text{sg}(KV(\bar{z}_{<T})), C_T)$ 带梯度,在拼接轨迹 $\tilde{z}^{(T)} = [\text{sg}(\bar{z}_1),\ldots,z_T^\theta,\ldots,\text{sg}(\bar{z}_N)]$ 上计算 $\mathcal{L}_T = \mathcal{L}_{\text{DMD}}(\tilde{z}^{(T)}; C)$,回传后释放激活图,滑动 $T$ 从 1 到 $N$;以 $1\times10^{-5}$ 学习率继续训练 20k 步,峰值显存控制在单台 8×80GB 节点内。推理:姿态流以块为单位流入;用 ViTPose 提取 133 个全身关键点,三帧拼成 $3\times62\times3=558$ 维 ℓ2 归一化指纹 $\phi_b$;生成前检索 $r(b) = \arg\max \phi_b^T \phi_i$(排除已在窗口中的 $b-1$),把对应 KV 复制进 Dynamic Sink;当前块 3 步去噪后执行 Clean KV Update $KV_{\text{cache}} \leftarrow KV_{\text{cache}} \cup \text{Forward}(\hat{z}^0_b, t{=}0, C)$ 写入滚动窗口;历史 KV 均缓存 RoPE 旋转前的 raw key,注意力时在当前缓存位置重新旋转(RoPE follow)。基础设施层用 Ulysses all-to-all 序列并行切分注意力头、torch.compile 以 max-autotune 模式预编译三个分辨率桶。

技术新颖性

技术新颖性体现在四个层面。第一,块级自强制重放(BS-DMD):直接对 N 块自强制 rollout 反向传播需要保留整条轨迹的激活图,本文的 two-pass 方案——第一遍无梯度 rollout、第二遍逐块带梯度重放并把 DMD 损失施加在完整学生诱导轨迹上——让 14B 模型的自强制蒸馏在单节点可行,这是对 Self Forcing 在计算图层面的工程化重构。第二,姿态感知的缓存保留:现有长视频方法(Rolling Sink 等)按时间规则管理缓存,本文首次以姿态语义为索引决定召回哪段历史,针对 articulated motion 的姿势复现特性定制,且 558 维全身指纹(含置信度通道与失败帧零填充)加 ℓ2 归一化让检索退化为一次余弦相似度最大化的点积,几乎零开销(占块时间 0.542%)。第三,多样性驱动的库更新:不是简单替换最旧条目,而是以最小化库内平均相似度为目标穷举替换,写入求覆盖、读取求相关,两个目标解耦。第四,位置一致 KV 复用:历史块写入 Dynamic Sink 时通过缓存 raw key + 按当前布局重旋转的方式与其原始时间戳解耦,同一记忆库条目可在任意时刻无位置错配地复用。

Overview of LiveAnimate.
Figure 2: Overview of LiveAnimate.

实验结果

核心实验在 3 分钟基准(24 对参考图与驱动视频:12 个网络野生视频加 12 个由 X-Dance 姿态正放-倒放-正放构造的姿态复现序列)上展开。短时程质量:0-30 秒段 LiveAnimate 取得全场最佳 ASE 2.823 和 IQA 4.047,证明 3 步蒸馏没有牺牲感知质量。长时程稳定性是主结果:IQA 从首个 10 秒段的 4.047 到最后段仅降到 4.026,ASE 从 2.823 到 2.824 几乎不动,DINO-S 仅下降 0.015(0.833→0.818);对照组 One-to-All 的 IQA 从 3.402 崩至 1.786、DINO-S 从 0.769 跌至 0.328、FID 从 146.29 恶化到 386.33,Wan2.2-Animate 的 DINO-S 也从 0.795 降到 0.770。定性上(Figure 3/4):One-to-All 随时间严重崩坏,UniAnimate-DiT 和 SCAIL 保持全局结构但有帧间闪烁,Wan-Animate 和 EverAnimate 后段出现颜色与背景漂移,只有 LiveAnimate 全程稳定。速度:SCAIL 和 UniAnimate-DiT 的 DINO-S 全程略高于本文(离线多步采样保留了更多细节),但生成同样 3 分钟 25FPS 序列它们需 2-5 小时,LiveAnimate 约 4 分钟且以 19.63 FPS 流式输出。系统层面(Table 2/3):Ulysses 并行 1→2 GPU 吞吐从 12.41 到 19.63 FPS(1.58× 加速、79.1% 效率),4 GPU 仅 22.13 FPS(效率跌至 44.6%)故默认两卡;单块 12 帧耗时 0.611 秒,其中去噪占 75.07%、Clean KV Update 占 24.39%、Sink 读写合计仅 0.542%,且延迟与内存不随流长变化。消融(Figure 6/7):去掉 Dynamic Sink 后末段 DINO-S 从 0.818 降到 0.805、FID 从 100.90 升到 106.52,姿势复现处脸和肩出现局部伪影;去掉 Static Sink 后 DINO-S 崩到 0.693 而帧级指标仍体面(ASE 2.726、IQA 3.833),人物和背景整段换掉,说明帧级指标无法诊断身份失败、两个 Sink 缺一不可;关闭 RoPE follow 后 DINO-S 降到 0.801 并出现渐进颜色/背景偏移;用普通教师强制替换 DMD 蒸馏后 IQA 从 3.849 滑到 3.438、DINO-S 从 0.780 跌到 0.679,验证自强制对少步误差累积的抑制作用;采样步数上 4 步帧级最优但多一次前向、2 步末段 DINO-S 只有 0.783,3 步是效率-质量最优折中。

Capability comparison of human animation methods.
Table 1: Capability comparison of human animation methods.
Scaling efficiency of Ulysses sequence parallelism on H100 GPUs at 480×480.
Table 2: Scaling efficiency of Ulysses sequence parallelism on H100 GPUs at 480×480.
Steady-state inference profile on the three-minute benchmark.
Table 3: Steady-state inference profile on the three-minute benchmark.
Qualitative comparison on a full-body sequence.
Figure 3: Qualitative comparison on a full-body sequence.
Qualitative comparison on an upper-body sequence.
Figure 4: Qualitative comparison on an upper-body sequence.
Quality and identity over a three-minute rollout.
Figure 5: Quality and identity over a three-minute rollout.
Qualitative ablation over a three-minute rollout.
Figure 6: Qualitative ablation over a three-minute rollout.
Quantitative ablation over the three-minute rollout.
Figure 7: Quantitative ablation over the three-minute rollout.
Additional qualitative results on four three-minute sequences.
Figure 8: Additional qualitative results on four three-minute sequences.
Additional qualitative results on three three-minute sequences.
Figure 9: Additional qualitative results on three three-minute sequences.
查看结构化数据
任务指标本文基线提升
3 分钟 rollout 感知质量稳定性 IQA(无参考图像质量,↑) 4.047 → 4.026(首段至末段几乎不变) One-to-All:3.402 → 1.786 末段领先 2.24,且漂移幅度从 -1.616 压缩到 -0.021
3 分钟 rollout 身份一致性 DINO-S(与参考图身份相似度,↑) 0.833 → 0.818(降 0.015) One-to-All:0.769 → 0.328;Wan2.2-Animate:0.795 → 0.770 末段领先 One-to-All 0.490;略低于离线系统 SCAIL/UniAnimate-DiT
3 分钟 rollout 分布质量 FID(↓) 全 3 步配置末段约 100.90(去 Dynamic Sink 后升至 106.52) One-to-All:146.29 → 386.33 末段约为 One-to-All 的 1/4
短时程初始质量(0-30s) ASE 美学评分(↑) 2.823(全场最佳) EverAnimate / One-to-All / SCAIL / UniAnimate-DiT / Wan2.2-Animate 3 步蒸馏下仍居首位
实时流式推理吞吐 FPS(仅 DiT 生成循环) 19.63 FPS @ 2×H100,单 12 帧块 0.611 s 1 GPU 12.41 FPS;4 GPU 22.13 FPS 2 卡 Ulysses 并行 1.58× 加速(79.1% 效率)
3 分钟 25FPS 序列端到端生成耗时 墙钟时间 约 4 分钟(流式,约 30× 实时以下) 五个离线基线约 2-5 小时 约 30-75 倍加速
消融:Static Sink 的作用 DINO-S(末段,↑) 完整模型 0.818 w/o Static Sink 0.693(帧级 ASE 2.726、IQA 3.833 仍体面) +0.125,证明全局外观锚不可替代
消融:蒸馏目标的作用 DINO-S(末段,↑) 自强制 DMD 蒸馏 0.679 起点 0.780(教师强制变体) 教师强制替换 DMD:IQA 3.849 → 3.438,DINO-S 0.780 → 0.679 自强制显著抑制少步采样下的误差累积

局限与改进

作者明确承认:当前只在 480×480 分辨率以 3 步去噪生成,视觉保真度和分辨率受限;不支持多人场景;不支持大幅相机运动,向高分辨率流式、多人动画和相机动态场景扩展留作未来工作。我的补充观察:第一,19.63 FPS 只度量 DiT 生成循环,条件编码和 VAE 解码虽可在其他设备流水线化,但端到端交互延迟(含网络与块粒度排队)会更高,且块粒度为 12 帧(25FPS 下约 0.48 秒),交互响应存在结构性下限;第二,2×H100 80GB 的硬件门槛使消费级和中小机构部署不现实,论文未给出低端 GPU 的可行路径;第三,记忆库容量仅 $M=5$ 且只在前 20 块写入,对姿势空间丰富的长舞蹈序列,5 个代表块能否覆盖全部关键外观状态存疑,实验基准中姿态正放-倒放-正放的构造也天然有利于检索机制;第四,所有感知指标(ASE、IQA 来自 Q-Align)和 DINO/FID/V-MAE 都不要求像素对齐,可能高估了姿态跟随精度——论文没有报告任何姿态跟随误差指标(如关键点 mAP),动作准确性主要靠目测定性判断;第五,对 SCAIL/UniAnimate-DiT 的长视频对比采用作者自制的训练免费滑窗协议,基线在非原生用法下的表现可能被低估;第六,LoRA rank 128 的适配意味着能力上限受基座 Wan2.2-Animate 束缚,且 60k 视频的训练集相对该规模模型偏小。

独立分析的弱点

弱点一:姿态跟随精度无量化。全部指标(ASE/IQA/DINO-S/FID/V-MAE)都刻意避开像素对齐,理由是像素对齐会惩罚合理的运动,但这导致无法回答"动作跟得准不准"这一动画系统的第一性问题。改进方向:补充基于 ViTPose 重检测关键点的姿态跟随误差(如 MPJPE 或 OKS),或在驱动姿态与生成人体上做时序对齐后的骨架距离评估。弱点二:实时门槛过高。19.63 FPS 依赖 2×H100 且只算 DiT 循环,约 0.611 秒/块的块级延迟意味着用户动作到画面响应有近半秒滞后。改进方向:把 Clean KV Update(占 24.39% 时间)与前一块解码重叠、探索 W4A8 量化或更激进的蒸馏步数、用缓存复用减少 Ref Sink 与 Static Sink 的重复计算,将单卡吞吐推向可用区间。弱点三:记忆库策略脆弱。$M=5$、前 20 块后冻结的设计假设姿态分布可在流开头被代表性采样,一旦人物中途换装、光照渐变或出现训练时未见构型,检索将系统性失配。改进方向:允许带衰减权重的持续写入、按指纹距离门控触发库刷新、或用轻量外观 LoRA 增量编码新状态。弱点四:分辨率与场景泛化。480×480 加三桶固定宽高比难以服务竖屏直播和高清需求。改进方向:在 Stage 2 中引入分辨率条件化或流式超分后处理;多人与大相机运动则需要把 Ref Sink 扩展为多实例并引入相机位姿作为额外条件流。弱点五:姿态检测单点依赖。指纹依赖 ViTPose 检测质量,检测失败整帧零填充,遮挡密集场景下检索会退化。改进方向:融合时序平滑的指纹或在检测缺失时退回 Static Sink + 窗口的保守缓存。

未来方向

作者提出的方向:更高分辨率的流式生成(当前 480×480、3 步);多人场景动画(需把单实例 Ref/Static Sink 推广为按人物分组的缓存组织);相机动态场景(把相机位姿纳入条件并解决背景与人物运动的耦合)。基于本文成果可延伸的方向:第一,把 PR-Sink 的姿态检索缓存推广为通用的"语义寻址 KV 缓存"框架,用于任何带结构化条件的自回归视频生成(如文本-条件流、音频驱动说话人),记忆库的多样性目标函数可按条件模态替换;第二,交互式控制——当前姿态流是预先给定的,结合实时姿态重定向可做观众驱动或强化学习策略驱动的交互化身,块级延迟是关键约束;第三,音频与全身动画的联合流(说话+手势),需要把 558 维指纹扩展为多模态联合索引;第四,将 Clean KV Update 的 24.39% 开销通过蒸馏掉额外前向(如直接从 3 步 latent 估计干净 KV)消除;第五,训练-推理在更长时间尺度上的对齐实验:训练 rollout 只有 N 块,推理是无限的,研究记忆库状态分布随流长的漂移是否需要在线适应;第六,公开基准建设——论文的 3 分钟姿态复现基准本身是对社区的贡献,可扩展为带姿态跟随指标的标准化长视频动画评测集。

复现评估

复现评估:中等偏高难度。论文给出项目页(liveanimate.github.io)但正文未附代码发布承诺,截至成文未见开源仓库,这是最大不确定项。基座 Wan2.2-Animate-14B 是公开模型,ViTPose、UniPC、Q-Align 指标、X-Dance 数据均有公开实现,训练配方也交代得相当完整:两阶段共 30k 步(Stage 1 10k 步 lr $5\times10^{-5}$,Stage 2 20k 步 lr $1\times10^{-5}$)、LoRA rank 128、60k 训练视频(40k 非说话 + 20k 人体运动,引用了可获取的数据源)、三个分辨率桶、块大小 3 个 latent 帧对应 12 帧 RGB、记忆库 $M=5$ 且前 20 块写入。算力需求是主要门槛:训练需要 8×H100(Stage 2 声称单台 8×80GB 节点可行),推理需要 2×H100 80GB;不过 LoRA 化的训练使总更新参数量不大,降配到 A100 集群加长训练时间应可行,推理端在更小显卡上靠量化也有机会逼近。基准构造(24 对,其中 12 个由 X-Dance 姿态循环扩展)描述清晰可复刻。综合判断:若官方开源权重与推理代码,第三方在单节点 H100 环境复现推理结果难度中等;从头复现训练则需 8 卡 H100 级资源与较深系统工程能力(Ulysses 并行 + torch.compile 三桶预编译 + two-pass 重放),属于高门槛复现。