← 返回 2026-08-14

UniSwap:说话视频的流式音视频联合身份替换 UniSwap: Streaming Audio-Visual Identity Swapping for Talking Videos

Yuxuan Zhang, Haozhong Xiong, Jiayi Song, Jinpeng Yu, Yang Shi, Jiaming Liu, Ruihua Huang, Liwei Wang 📅 2026-08-13 👍 22 2026-08-19 18:30
LoRA 扩散模型蒸馏 流式自回归生成 视频生成 语音转换 音视频同步

首个流式音视频联合身份替换框架:单一扩散模型同步换脸换声,3步采样13.6 FPS

前置知识

流匹配(Flow Matching)

一种生成模型训练范式:在噪声插值样本 $z_\sigma=(1-\sigma)z_0+\sigma\epsilon$ 上,让网络 $v_\theta$ 回归从噪声指向数据的速度场,损失为 $\mathcal{L}_{\mathrm{FM}}=\mathbb{E}\|v_\theta(z_\sigma,\sigma)-(\epsilon-z_0)\|_2^2$。相比 DDPM 扩散,概率流路径更直、采样步数更少。UniSwap 三个训练阶段的视频流与音频流都以条件流匹配为基础损失。

论文的训练目标、噪声水平 $\sigma$ 以及消融实验中“每块 30 步降到 3 步”全部建立在流匹配框架之上,不懂流匹配就无法理解各阶段的损失设计。

RoPE 旋转位置编码

把 token 的绝对位置转成复数旋转角并作用于注意力 query/key,使注意力得分只依赖相对位置差,是现代 DiT 与大语言模型的标准组件。它的绝对坐标会随序列长度无限增长,而模型只在训练时见过的坐标范围内可靠工作。

UniSwap 长视频稳定性问题正出在 RoPE 上:自回归流式生成时缓存块的位置索引会超出训练范围,Feature-RoPE Decomposition 就是针对这一问题的核心设计。

KV Cache 与块因果注意力

自回归推理时缓存已生成 token 的 key/value,新块只计算增量,使每块成本与已生成长度解耦。块因果注意力把序列切成块:每块可以看到全部历史块但看不到未来块,是流式视频生成(如 CausVid、OmniForcing)的标准推理形态。

Stage 2 的 Decoupled Streaming Conditioning Mask 本质是把训练时的注意力掩码对齐到 KV-cache 推理的真实可见性,理解 KV cache 才能理解这个设计的动机。

DMD 分布匹配蒸馏

Distribution Matching Distillation:训练一个 critic 网络逼近学生样本上的得分函数,用“critic 分数 − CFG 增强教师分数”作为生成器梯度,即 $\nabla_{\hat z}\approx D_\phi(\hat z_\sigma,\sigma)-T^{\mathrm{CFG}}_\psi(\hat z_\sigma,\sigma)$,其中 $T^{\mathrm{CFG}}_\psi=T^-_\psi+\gamma(T^+_\psi-T^-_\psi)$,从而把多步教师蒸馏成 1–3 步学生生成器,无需逐像素配对监督。

Stage 3 用 Self-forcing rollout 加 DMD 把每块 30 步压缩到 3 步,是实现 13.6 FPS 推理的关键;论文公式 (5) 正是带 CFG 的 DMD 梯度形式。

LoRA 低秩适配

冻结预训练权重,只在注意力等投影层上学习低秩增量 $\Delta W=BA$(秩 $r$ 远小于矩阵维度),大幅降低可训练参数量与显存占用。本文三个阶段全部以 rank 128 的 LoRA 微调冻结的 LTX-2.3 基座,主干参数始终不更新。

Efficient Multi-LoRA Switching 用三个可切换的 LoRA 在同一冻结主干上分别扮演 teacher/generator/critic 三角色,是蒸馏峰值显存从超 80GB 降到 65.34GB 的关键。

Attention Sink 与 Self-forcing

StreamingLLM 发现:流式生成时固定保留序列开头若干 token 的缓存(attention sink)可稳定无限长生成;Self-forcing 则在训练时让学生模型自回归展开自己的输出并逐步去噪,缓解“训练用真值历史、推理用自身输出”的 exposure bias。

UniSwap 的 Adaptive Sink Block 保留首个生成块 $B_0$ 作为持续身份锚点,Stage 3 的自强制 rollout 直接借鉴 Self-forcing,两者分别是长视频稳定与蒸馏质量的基础。

研究动机

说话视频换角色需要同时转移人物的外貌与声音,同时保留源视频的运动、场景、语言内容与音视频时序,但现有方法只能单边替换。视频角色替换方法(MoCha、Wan-Animate、VACE、HunyuanCustom、SCAIL-2)只从参考图转移外貌,不生成对应的新声音;变声系统(Seed-VC、CosyVoice、OpenVoice)只修改音色,完全不看视觉语境。把两者级联虽能双双重替换,但两个模块是独立优化的:没有任何联合目标保证转换后语音与唇形一致,一个模态产生的误差也无法借助另一个模态的证据来修正。此外,多数基于扩散模型的视频替换方法必须拿到完整片段才能开始生成,无法分块流式推理,直接排除了低延迟交互类应用。论文实验也印证了级联的缺陷:所有视频替换基线统一接 Seed-VC 后,最佳级联的 Sync-C 也只有 3.289,明显低于本文联合生成的 3.633。

本文的目标是本文要构建第一个流式音视频联合身份替换框架 UniSwap:给定源说话视频 $V_s$ 及其音频 $A_s$、一张参考人像 $I_r$ 和一段参考声音 $A_r$,模型在单一音视频扩散 Transformer 内部同时把参考外貌与音色迁移到输出,同时保留源视频的运动、唇动、背景与语言内容。输出按块自回归流式生成,每块仅需 3 步去噪,在单张 NVIDIA H100 上达到 13.6 FPS,并通过有界缓存支持小时级长视频的稳定生成。理想目标是联合建模带来比级联系统更强的音视频同步(唇形贴合转换后的语音)、与最强基线相当的身份保持、接近专用变声系统的语音质量,以及不随生成时长增加而漂移的稳定性。

与已有工作不同的是,本文的独特切入有三点。其一,把换角色重新表述为统一的条件音视频生成问题,而非“换脸+变声”两个任务的拼接:模型同时看到驱动内容(源视频)与目标身份(参考图+参考声音),依靠跨模态注意力让唇动与转换后的语音天然对齐。其二,训练数据用 swap-and-reconstruct 自监督合成:真实片段本身就是重构目标,把画面里的人换成姿态代理、把音色随机换掉来构造“身份被抽走”的源,从而绕开“不同人做同样动作说同样话”这种无法规模化采集的配对数据需求。其三,工程路线上不是从头训练流式模型,而是把现成的双向音视频骨干(LTX-2.3,22B 条件参数)经三阶段渐进改造成块因果、3 步采样的流式生成器,并配套 Feature-RoPE 分解解决长序列位置索引溢出。这使它区别于 CausVid、OmniForcing 等面向通用生成的流式蒸馏工作。

核心方法

直觉上,UniSwap 把“换人”当成带双重条件的音视频联合生成:模型一边看源视频(决定说什么、怎么动、在什么场景),一边看参考图与参考声音(决定长什么样、什么嗓音),在共享物理时间轴上联合生成视频与音频。技术上,它构建在冻结的 LTX-2.3 音视频扩散 Transformer(22B 条件参数)之上:因果视频 VAE 对时间做 8 倍压缩,音频以每秒 25 个 latent token 表示,两个模态流通过双向跨模态注意力交互。训练分三阶段:Stage 1 用 in-context 预训练把源、参考与带噪目标拼成统一序列,学习联合替换;Stage 2 用 Decoupled Streaming Conditioning Mask 把双向注意力改造成块因果结构,启用 KV-cache 自回归流式推理;Stage 3 用 Self-forcing DMD 蒸馏,把每块 30 步去噪降到 3 步,并以三个可切换 LoRA 共享同一冻结主干。推理时用 Feature-RoPE Decomposition 管理有限缓存(参考 token + 自适应 sink 块 + 滚动历史),支撑小时级稳定生成。全程只训 LoRA(rank 128),基座始终冻结。

核心创新是与已有方法的三个本质区别。第一,swap-and-reconstruct 数据合成:不去采集“两个人说同一句话”的配对数据,而是让每个真实片段自身充当重构目标——视觉上用 ViTPose 估计姿态、SAM2 分割去人后得到背景板,再把姿态驱动的人物代理合成上去,保留运动/时序/背景但抹掉外貌;音频上用 Seed-VC 把原声转成随机说话人音色;参考身份取自原片段本身(人像帧 + 随机 30% 时长的音频段)。任何普通说话视频由此立刻变成一条对齐训练对。第二,Decoupled Streaming Conditioning Mask:把训练时每个角色的感受野逐一对齐到推理时 KV-cache 的真实可见性——噪声目标块只能看参考、对齐的源块、干净历史块和它自己——从而消除双向训练与因果推理之间的 train-test 差距。第三,Efficient Multi-LoRA Switching:DMD 蒸馏通常需要 teacher/generator/critic 三份完整模型,这里用同一冻结主干上的三个 LoRA(冻结的 Stage-1 LoRA 当教师、Stage-2 初始化的 LoRA-2 当生成器、随机初始化的 LoRA-3 当可训 critic)切换扮演,峰值显存从超 80GB(80GB 卡装不下)降到 65.34GB。

方法步骤详情

①数据合成:ViTPose 估姿态 → SAM2 分割去人得背景板 → 姿态代理合成得源视频 $V_s$;$A_t$ 经 Seed-VC 换成随机音色得 $A_s$;取 $A_t$ 的随机 30% 作参考音频 $A_r$,目标人像帧作 $I_r$,真实片段 $(V_t,A_t)$ 即重构目标。②Stage 1:把参考、源、带噪目标 latent 按模态拼接成统一序列,只对目标段加噪,源/目标共享时间位置、参考用固定偏移 $\Delta_{vr},\Delta_{ar}$,以视频+音频联合流匹配损失端到端训练(LoRA rank 128、lr $10^{-4}$、5 万步)。③Stage 2:目标按 $K=3$ 个视频 latent 帧切块(首块 4 帧适配因果 VAE 的时间索引),Decoupled Streaming Conditioning Mask 限制噪声块只能看参考、对齐源块与干净历史,损失只算噪声目标块,再训 5 万步。④Stage 3:学生自回归 rollout,每块在噪声级 $[0.999,0.757,0.522]$ 三步去噪;DMD 梯度取 critic 分数减 CFG 增强教师分数($\gamma_{\mathrm{video}}=3.0$、$\gamma_{\mathrm{audio}}=5.0$),critic 与生成器更新比 5:1,共 2 万步,推理只留 LoRA-2。⑤推理:参考预填充一次、源块临时缓存、完成块提交为干净历史;Feature-RoPE 存未旋转 key 并按当前槽位重加旋转,窗口 $W=4$(1 sink + 2 滚动 + 当前块)。

技术新颖性

技术新颖性体现在四个层面。①任务层面:这是首个在单一扩散 Transformer 中联合替换视觉与声音身份的工作,此前的视频角色替换(MoCha、Wan-Animate、SCAIL-2)和变声(Seed-VC、CosyVoice)都是互不相通的单模态孤岛。②数据层面:swap-and-reconstruct 是无需跨身份配对采集的自监督方案,与传统换脸依赖平行人脸数据、变声依赖说话人配对语料的思路截然不同,把“无配对的真实视频”直接变成对齐监督。③蒸馏层面:不同于 CausVid(纯因果视频 DMD)与 OmniForcing(双向双流音视频模型的通用流式蒸馏),UniSwap 把 self-forcing rollout 与 CFG 增强 DMD 组合,专门用于“源驱动条件替换”场景,并用可切换 LoRA 替代三份模型副本这一显存优化在同类蒸馏工作中少见。④长序列层面:Feature-RoPE Decomposition 把缓存特征与旋转坐标解耦、按共享物理时间轴重绑定位置,视频与音频坐标始终对齐,同时用保留首块的 Adaptive Sink 提供持续身份锚点——这是对 StreamingLLM attention-sink 机制在音视频联合生成场景下的针对性改造。

Overview of UniSwap. The three-stage pipeline comprises (a) In-Context Pretraining for joint audio-video replacement, (b) Conditional Streaming Adaptation with block-causal masking and KV-cached inference, and (c) Efficient Self-Forcing DMD, which reduces denoising to 3 steps per block.
Figure 2: Overview of UniSwap. The three-stage pipeline comprises (a) In-Context Pretraining for joint audio-video replacement, (b) Conditional Streaming Adaptation with block-causal masking and KV-cached inference, and (c) Efficient Self-Forcing DMD, which reduces denoising to 3 steps per block.
Swap-and-reconstruct paired data synthesis. Every real talking video serves as its own reconstruction target.
Figure 3: Swap-and-reconstruct paired data synthesis. Every real talking video serves as its own reconstruction target.

实验结果

短视频基准(100 条约 10 秒 AVSpeech 片段,视频基线统一接 Seed-VC):UniSwap 的 Sync-C 3.633 最高、Sync-D 10.304 最低,超过最佳级联 SCAIL-2+Seed-VC(3.289/11.269);DINO-S 身份相似度 0.629 与最强者 SCAIL-2 的 0.630 仅差 0.001;但 ASE 2.097、IQA 3.758 低于 MoCha(2.534/4.249)与 SCAIL-2(2.409/4.067);语音 SIG 3.486 接近 Seed-VC 的 3.489,但 BAK 3.563、OVRL 2.988、SECS 0.730 均低于专用变声。长视频(20 条 1 分钟、按 20 秒分段):UniSwap 的 IQA 稳定于 3.966–4.032、DINO-S 稳定于 0.590–0.596,而 SCAIL-2 的 DINO-S 从 0.566 跌至 0.517、Wan-Animate 的 IQA 从 3.766 跌至 3.628。效率:每 24 帧块 3 步去噪仅 1.76 秒、13.6 FPS,约为 Wan-Animate(1.367 FPS)的 10 倍、MoCha(0.134 FPS)的 100 倍,但仍低于 25 FPS 播放速率。消融:Stage 1 同步最佳(Sync-C 5.272);Stage 3 较 Stage 2 声音指标回升(SIG 3.349→3.486、SECS 0.681→0.730)但同步下降(4.620→3.633);去掉条件 PE 偏移后 Sync-C 崩至 1.738、DINO-S 跌至 0.463;去掉参考重锚定后末段 IQA 3.741→3.208。用户研究(30 人盲测):外貌 ID 4.16、唇同步 4.11、自然度 3.96 均第一,Voice ID 3.87 略低于 MoCha+Seed-VC 的 4.08。

Quantitative comparison on the short-video benchmark.
Table 1: Quantitative comparison on the short-video benchmark.
Long-video comparison. Metrics are computed independently on three 20-second segments of 1-minute generated videos.
Table 2: Long-video comparison. Metrics are computed independently on three 20-second segments of 1-minute generated videos.
Efficiency comparison on the short-video benchmark (241-frame clips). All measurements use one NVIDIA H100 GPU.
Table 3: Efficiency comparison on the short-video benchmark (241-frame clips). All measurements use one NVIDIA H100 GPU.
Ablation on training stages and the condition positional encoding offset (short-video benchmark).
Table 4: Ablation on training stages and the condition positional encoding offset (short-video benchmark).
Qualitative comparison on the short-video benchmark.
Figure 4: Qualitative comparison on the short-video benchmark.
Qualitative comparison on the long-video benchmark. Frames are sampled every 10 seconds from 1-minute generations.
Figure 5: Qualitative comparison on the long-video benchmark. Frames are sampled every 10 seconds from 1-minute generations.
Qualitative ablation on Feature-RoPE Decomposition.
Figure 6: Qualitative ablation on Feature-RoPE Decomposition.
Additional qualitative results on short videos (Part I).
Figure 7: Additional qualitative results on short videos (Part I).
Additional qualitative results on short videos (Part II).
Figure 8: Additional qualitative results on short videos (Part II).
Additional qualitative results on one-minute videos.
Figure 9: Additional qualitative results on one-minute videos.
查看结构化数据
任务指标本文基线提升
音视频同步(短视频基准,100 条 10 秒片段) Sync-C ↑(SyncNet 置信度) 3.633±1.236 3.289±1.592(SCAIL-2 + Seed-VC 级联,最佳基线) +10.5%
音视频同步(同上) Sync-D ↓(SyncNet 特征距离) 10.304±0.849 11.198±1.881(MoCha + Seed-VC,基线中最低) −8.0%(越低越好)
视觉身份保持(短视频基准) DINO-S ↑ 0.629±0.136 0.630±0.150(SCAIL-2 + Seed-VC) 持平(差 0.001 以内)
语音质量(与专用变声系统比) SIG ↑(DNSMOS) 3.486±0.327 3.489±0.335(Seed-VC 纯音频) 持平(−0.003)
说话人音色相似度 SECS ↑ 0.730±0.064 0.829±0.047(Seed-VC 纯音频) −0.099(联合建模的代价)
长视频稳定性(40–60 秒段) DINO-S ↑ 0.596±0.118 0.517±0.135(SCAIL-2 + Seed-VC) +15.3%
生成效率(24 帧块,单张 H100) FPS ↑ 13.6(每块 3 步,1.76 秒) 1.367(Wan-Animate,每条视频 20 步全序列更新) 约 10×;较 MoCha(0.134 FPS)约 100×
用户研究(30 人盲测,5 分制) Lip Sync ↑ 4.11 3.67(SCAIL-2 + Seed-VC) +0.44;外貌 ID 4.16 与自然度 3.96 亦为全场最高

局限与改进

作者明确承认的局限(第 10 节):模型目前只面向单人说话视频,多人场景、遮挡与复杂人物交互仍是挑战;面部表情由音频条件自动驱动而非显式控制,不支持独立的表情编辑或用户指定表情。效率上作者也承认 13.6 FPS 低于 25 FPS 播放速率,当前实现支持流式生成但还不是实时播放,需要进一步系统优化。我的补充观察:①画面质量有明显代价——ASE 2.097 与 IQA 3.758 落后 MoCha 的 2.534/4.249 约 0.4–0.5,统一建模与块状流式牺牲了画面精细度;②音质有代价——BAK、OVRL、SECS、SSIM 全面低于专用变声系统(SECS 0.730 vs 0.829);③蒸馏引入退化——Sync-C 从 Stage 2 的 4.620 降到 Stage 3 的 3.633,等于用同步精度换速度;④“小时级生成”只在 teaser 中声称,实验最长只有 1 分钟、20 条视频,缺少小时尺度的定量验证;⑤训练依赖 22B 的 LTX-2.3 骨干与 8 卡 GPU,门槛很高;⑥基准规模偏小(短视频仅 100 条),且未报告 FVD、ArcFace 人脸相似度等常用指标,与部分文献不可直接对比。

独立分析的弱点

独立分析五点弱点。①音色相似度缺口:SECS 0.730 对 Seed-VC 的 0.829,BAK/OVRL 也全面落后,可能源于音频 latent 通道容量被共享骨干与联合目标稀释——改进方向是在 DMD 阶段加入说话人嵌入的对抗项或对比项,或给音频分支单独加大 LoRA 秩与 token 容量。②蒸馏换同步:Sync-C 由 4.620 降至 3.633,说明 3 步 DMD 在唇-音精细对齐上有信息损失——可在分布匹配中引入 SyncNet 感知正则,或让 CFG 加权对视频/音频分支在不同噪声区间分别调整。③画面质量落后:ASE/IQA 低于 MoCha 约 0.4–0.5,推测与姿态代理数据的像素分布差异、块间拼接伪影有关——可在推理端加时序一致的人像细化/超分网络,或训练时提高分辨率桶(当前最高 704×416)。④任务范围窄:仅覆盖单人说话视频,多人对话、走动遮挡会破坏“单一人物代理”的数据合成假设——需要实例级多人分割与区域化的参考身份绑定。⑤评测协议的偏差:所有视频基线被统一接到 Seed-VC,虽隔离了视觉差异,但也迫使基线使用非原生音频管线,结论对“各方法自选最优音频”的真实级联场景代表性有限,可补一组基线自配音频的对照实验。

未来方向

作者未单列未来工作,但结论与限制部分指明了方向,再加上可自然延伸的点:①显式表情控制——当前表情由音频隐式驱动,加入 blendshape 或表情编码器条件即可支持独立表情编辑与风格化表演;②多说话人扩展——把参考身份绑定到实例级掩码区域,覆盖对话、群像与交互场景;③迈向真实时——从 13.6 FPS 到 25 FPS 需要更大推理块、算子融合、量化或进一步蒸馏到 1–2 步;④小时级验证——为数小时长的生成设计定量基准,检验窗口淘汰机制的长期漂移与错误累积;⑤任务外延——swap-and-reconstruct 思路可推广到服装、风格、场景等“属性替换”任务,也可扩展到歌唱、动画角色配音;⑥应用闭环——与语音翻译、TTS 结合做视频本地化与多语言配音;⑦安全配套——论文第 11 节强调冒充、非自愿媒体与虚假信息风险,未来应内置同意验证、内容溯源与水印机制,并保持与取证检测工具的兼容。

复现评估

复现评估:中高难度。有利条件是论文细节相当充分——数据管线依赖的 ViTPose、SAM2、Seed-VC 均为开源模型,训练数据 AVSpeech 公开可得;三阶段超参完整给出(LoRA rank 128、AdamW、5 万/5 万/2 万步、critic 与生成器更新比 5:1、噪声级 [0.999,0.757,0.522]、$\gamma_{\mathrm{video}}=3.0$、$\gamma_{\mathrm{audio}}=5.0$、窗口 $W=4$、三个分辨率桶 512×512/416×704/704×416、每条训练片段 241 帧约 9.6 秒),并有项目页 uniswap-av.github.io 展示效果。不利条件:①基座是 LTX-2.3(22B 条件参数)的大规模工业模型,权重可得性是最大不确定点,若拿不到则完全无法复现;②训练需 8 卡 GPU(FSDP、bf16)共约 12 万步,数据合成还要跑姿态估计、分割、去人、变声四条流水线,成本远超学术实验室常规预算;③评测集(100 条短视频、20 条长视频及参考人像库)未说明会公开;④论文未见代码与模型权重的开源声明。若基座权重可得,工程团队按论文复现单卡 H100 推理(3 步流式)是可行的;完整三阶段训练复现则需要可观的算力与数据工程投入。