ESC
输入关键词搜索文章
目录

Hallo3

CVPR 2025 · Fudan Generative Vision Lab / Baidu
首次把预训练视频扩散 Transformer 搬进肖像动画,让 talking head 走出正面居中的静态背景
134h过滤后训练数据
64×H100训练硬件
20.359HDTF FID
13.286Wild 主体动态度

论文信息

系列说明Hallo3 是复旦 Generative Vision Lab 的 Hallo 系列第三代,也是本系列里第一篇把 预训练视频扩散 Transformer(DiT) 当 backbone 的肖像动画工作。它与本系列的 Hallo(精读十五) 出自同一实验室,但换掉了 U-Net + ReferenceNet 的整套技术栈;与 SadTalker(精读四)、AniPortrait(精读十四) 这些中间表示路线相比,它直接吃视频生成大模型的先验去做“wild 场景”里的会说话肖像。
Part 1
为什么肖像动画需要一个“视频大模型”底座

肖像动画(portrait image animation)要做的事听起来很朴素:给一张肖像照片、一段语音,再加一句文字提示,生成一段与语音同步、表情自然、身份稳定的说话视频。#Cui-et-al.-2025-Hallo3 它同时坐落在计算机视觉和计算机图形学的交叉口,也直接对接影视制作、游戏、社媒内容、在线教育这些落地场景。#Cui-et-al.-2025-Hallo3

过去几年这个领域的技术栈换了好几轮。最早是显式中间表示路线:用面部关键点(landmark)定位嘴、眼、眉、鼻、下巴,或者引入 3DMM(3D Morphable Model)这样的统计形状模型来参数化人脸。#Cui-et-al.-2025-Hallo3 这类方法可控性好,但表情和头姿的还原精度被中间表示卡死——3DMM 能表达的表情本身就有限。随后 GAN 与扩散模型把画质拉了上来:LivePortrait 用 GAN 做隐式关键点的拼接与重定向,VASA-1、EMO、以及本实验室的 Hallo / Hallo2 则用扩散模型做端到端生成。#Cui-et-al.-2025-Hallo3

但这些方法有一个共同的“舒适区假设”:参考图是正面、居中的一张脸,背景是静态的,表情幅度不大。一旦离开这个舒适区——侧脸、仰拍、手里拿着麦克风、身后有奔跑的鸵鸟、面前有跳动的篝火——它们就集体失灵。#Cui-et-al.-2025-Hallo3 Hallo3 的出发点,就是想把 talking head 从“证件照说话”推到“真实世界里说话”。

一句话结论:Hallo3 的核心贡献不是“又用扩散模型做数字人”,而是首次把预训练的 DiT 视频生成模型(CogVideoX-5B-I2V)当 backbone,借它的视频先验和强泛化能力,去处理非正面视角、动态前后景和肖像周围的动态物体。#Cui-et-al.-2025-Hallo3
Hallo3 teaser:不同视角、动态前后景的说话肖像
图 1:Hallo3 效果概览。给定一张参考图、一段音频和一句文字提示,方法能生成正面或不同视角的动画肖像,长时间保持身份,并融入动态前景与背景。(来源:Hallo3, teaser)

为什么“换 backbone”这件事值得单独写一篇 CVPR?因为 backbone 一换,旧时代的技术手段全部作废。U-Net 时代靠 ReferenceNet 做身份保持、靠专门的 audio-visual cross-attention 做音频驱动、靠帧间 warp 或时序模块做长视频,这些方法都是围绕 U-Net 的空间特征图设计的。#Cui-et-al.-2025-Hallo3 到了 DiT 里,视频被 3D VAE 压成一串 token,没有了空间特征图这种载体,身份、音频、外插三件事都得推倒重来——这正是本文三大创新的由来。

Part 2
问题剖析:三道旧墙,与 DiT 带来的新麻烦

我们先把“旧方法为什么不行”讲清楚,再看 DiT 引入了什么新问题。论文把现有方法的局限归成三条。#Cui-et-al.-2025-Hallo3

第一,视角受限。大量方法强调注视、唇同步、头姿,却默认参考图是正面居中的。一旦是侧脸、俯视或仰视,这些方法要么把脸“扳正”,要么直接崩坏。第二,忽略肖像周围的物体。人手里拿着手机、麦克风,或者穿戴贴身饰物时,旧方法只会动嘴,物体要么僵住要么鬼畜。第三,假设静态背景。前景的篝火、背景的人群、身后奔跑的动物——这些动态元素在旧框架里根本无从生成。#Cui-et-al.-2025-Hallo3

一个自然的想法是:既然 DiT 视频生成模型(CogVideoX、Movie Gen 等)已经在海量视频上学到了“世界怎么动”的先验,能生成真实、动态、主体泛化的视频,#Cui-et-al.-2025-Hallo3 那为什么不直接把它当 talking head 的底座?这样动态前后景、复杂视角这些能力“免费”就有了。

但麻烦随之而来。DiT 视频模型有一个硬约束:单次生成只能覆盖几十帧(Hallo3 的配置是 49 帧)。#Cui-et-al.-2025-Hallo3 而且它原生并不知道“要保持某个人的脸”,也不知道“嘴要跟着这段语音动”。于是本文要在不破坏预训练先验的前提下,往里塞三样东西:

DiT 带来的新问题U-Net 时代的旧解法Hallo3 的新设计
视频变长后身份快速退化ReferenceNet(空间特征图注入)Identity Reference Network(3D VAE + 42 层 transformer,token 级注入)
音频如何驱动嘴部分层 audio-visual cross-attentionwav2vec 多层拼接 + audio cross-attention 层
单次只能生成 49 帧时序模块 / 帧间 warpTemporal Motion Frames(末 n 帧作条件外插)
关键 Insight:Hallo3 没有从零训练一个视频模型,而是把“身份、音频、长视频”三件事拆成三个可插拔的条件注入模块,各自最小化对 CogVideoX 原始特征的扰动。三个模块的具体形式(reference network vs face attention、cross-attention vs adaLN、n 帧 motion)全部是靠消融实验选出来的,而不是拍脑袋。#Cui-et-al.-2025-Hallo3
Part 3
Hallo3 架构详解:一个 backbone,三根注入

我们先看整体 pipeline,再逐个拆三个注入模块。理解这张图是理解全文的关键。

Hallo3 整体架构:Identity Reference Network + denoising network + audio 分支
图 2:Hallo3 整体架构。文本经 T5 得 ctext;参考图经 3D VAE 得 zref 送入 Identity Reference Network(上方 ×N);音频经 Wav2Vec + MLP 得 caudio;噪声与 motion frames 拼成 zvision 送入 denoising network(下方 ×N,含 3D Full Attention / Cross-Attention / Audio-Attention),最后 3D VAE Decoder 解码成视频。(来源:Hallo3, Fig. 2)

3.1 Backbone:CogVideoX 的 DiT 骨架

Hallo3 的底座是 CogVideoX:它用一个 3D VAE 把视频压缩成 latent,latent 变量被拼接、reshape 成序列 \(\mathbf{z}_t\);文本用 T5 编码成 \(\mathbf{c}_{\text{text}}\)#Cui-et-al.-2025-Hallo3 视频 latent 与文本 embedding 一起送进 expert transformer,用 expert adaptive layer normalization 对齐文本与视频两个特征空间,再用 3D RoPE(旋转位置编码)建立帧间的长程依赖。#Yang-et-al.-2024-CogVideoX

在这个骨架上,Hallo3 除了原有的文本条件 \(\mathbf{c}_{\text{text}}\),又引入两个新条件:语音条件 \(\mathbf{c}_{\text{audio}}\) 和身份外观条件 \(\mathbf{c}_{\text{id}}\)#Cui-et-al.-2025-Hallo3 DiT 论文里给了四种条件注入方式:in-context、cross-attention、adaLN、adaLN-zero。#Peebles-Xie-2022-DiT Hallo3 主要在 cross-attentionadaLN 之间做选择。cross-attention 把条件 embedding 当 key/value、latent 当 query,能让模型“聚焦”到条件信息上;而 adaLN 在简单条件下够用,但面对语音这种富含时序语义的序列条件就力不从心——这个判断后面被消融坐实了。#Cui-et-al.-2025-Hallo3

3.2 音频驱动:为什么 cross-attention 完胜 adaLN

Motivation. 语音信号里同时藏着音素(决定嘴形)和韵律(影响表情节奏)。要把它变成能驱动脸的条件,先得抽出一个层次丰富的表示。Mechanism. Hallo3 用 wav2vec 提特征,并且把最后 12 层的 embedding 全部拼接起来,让不同层级的语音语义都保留下来。#Schneider-et-al.-2019-wav2vec 再用三层连续线性变换把它转成逐帧表示:

音频逐帧表示

$$\mathbf{c}_{\text{audio}}^{(f)} = \mathcal{L}_3\!\left( \mathcal{L}_2\!\left( \mathcal{L}_1\!\left( \mathbf{c}_{\text{audio}} \right) \right) \right)$$

其中 \(\mathbf{c}_{\text{audio}}\) 是 wav2vec 拼接后的音频 embedding,\(\mathcal{L}_1,\mathcal{L}_2,\mathcal{L}_3\) 是三个线性变换层,\(\mathbf{c}_{\text{audio}}^{(f)}\) 是最终逐帧的音频驱动特征。

拿到逐帧音频特征后,Hallo3 在 denoising network 的每个 face-attention 层之后插入一个 audio attention 层,用 cross-attention 让 latent 与音频特征交互。具体地,音频的 motion patch 作 key/value,与隐状态 \(\mathbf{z}_t\) 做 cross-attention:

音频 Cross-Attention 注入

$$\mathbf{z}_t = \text{CrossAttention}\!\left( \mathbf{z}_t, \, \mathbf{c}_{\text{audio}}^{(f)} \right)$$

\(\mathbf{z}_t\) 作为 query(视觉隐状态),\(\mathbf{c}_{\text{audio}}^{(f)}\) 作为 key/value(音频条件)。这种“局部聚焦”让嘴唇区域能精准跟随音素。

反直觉发现:把音频改用 adaLN 或 self-attention 注入,Sync-C 只有 1.3~1.4;换成 cross-attention 后 Sync-C 跳到 4.601(详见 Part 6 消融表)。#Cui-et-al.-2025-Hallo3 差距如此悬殊,说明唇同步本质是一个空间局部对齐问题,adaLN 那种“全局调制”根本抓不住嘴部这个局部。

3.3 身份保持:Identity Reference Network

Motivation. DiT 视频模型有个通病:视频越长,脸越“漂”。只靠音频 embedding 能建立音-面对应,却拦不住长时生成中身份特征的快速退化。#Cui-et-al.-2025-Hallo3 Intuition. Hallo3 的思路是:与其临时“提醒”模型这个人长什么样,不如造一个和 denoising network 结构完全对称的参考网络,让它把参考图的外观特征逐层“喂”给去噪网络。

Mechanism. 把参考图 \(\mathbf{I}_{\text{ref}}\) 当成单帧,送进 causal 3D VAE 得到身份 latent:

身份 latent 提取

$$\mathbf{z}_{\text{id}} = \mathcal{E}_{3D}\!\left( \mathbf{I}_{\text{ref}} \right)$$

\(\mathcal{E}_{3D}\) 是 causal 3D VAE 的编码器,\(\mathbf{z}_{\text{id}}\) 是参考图对应的身份 latent。

这个 latent 经过一个由 42 层 transformer 组成的 reference network。在每一层,Hallo3 从 3D full attention 的输入里抽出 vision token 作为参考特征 \(\mathbf{z}_{\text{id}}\),注入到 denoising network 对应层,与去噪 latent 一起做 self-attention:

身份特征注入

$$\mathbf{z}_{t,\text{enhanced}} = \text{SelfAttention}\!\left( \mathbf{z}_t, \, \mathbf{z}_{\text{id}} \right)$$

\(\mathbf{z}_t\) 是时间步 \(t\) 的去噪 latent,\(\mathbf{z}_{\text{id}}\) 是同层参考特征。二者拼在一起做 self-attention,让去噪网络“看着参考图去噪”。

这里有一个特别关键的设计:reference network 和 denoising network 共享同一个 causal 3D VAE(权重完全相同)、层数也完全一致(都是 42 层)#Cui-et-al.-2025-Hallo3 因为两条网络的特征在语义和尺度上天然对齐,注入时既能带入参考图的外观,又几乎不扰动去噪网络原有的特征表示。这也是为什么后面消融里“identity reference network”路线(FID 28.789)远好于“face attention”路线(FID 57.541,反而引入模糊失真)——后者用一个外部 face encoder 塞特征,特征空间对不齐,破坏了全局视觉上下文。#Cui-et-al.-2025-Hallo3

论文最终采用的是“Face attention + Identity reference network”的组合:用 face encoder(InsightFace)抽的面部 embedding 走 cross-attention 让面部运动更可控,用 3D VAE reference network 保全局外观,两者互补。#Cui-et-al.-2025-Hallo3

3.4 长视频外插:Temporal Motion Frames

DiT 单次只能出 49 帧,要生成长视频就得“接龙”。Hallo3 的做法是把前一段视频的最后 \(n\) 帧当作 motion frames,作为下一段生成的条件。#Cui-et-al.-2025-Hallo3 具体地:设目标视频长 \(L\)、对应 latent 有 \(l\) 帧,motion frames 记为 \(N\)。motion frames 先过 3D VAE 得到 \(n\) 帧 latent,对后续 \((l-n)\) 帧做 zero padding,再与 \(l\) 帧高斯噪声拼接,patchify 成 vision token 输入去噪网络。#Cui-et-al.-2025-Hallo3 通过反复利用 motion frames 做锚点,长视频就能保持时序一致。

这套三注入 + 外插的机制,可以用下面这张流程图串起来:

graph LR
    A[参考图 I_ref] --> B[Causal 3D VAE]
    B --> C[Identity Reference Network
42 层 transformer] T[文本 prompt] --> T5[T5] --> D AU[驱动音频] --> W[Wav2Vec 末12层拼接] --> M[3 层 MLP] --> CA[c_audio_f] MF[前段末 n 帧 motion frames] --> B2[3D VAE] --> Z N[高斯噪声 x l 帧] --> Z[z_vision 拼接] Z --> D[Denoising Network
3D Full Attn + Cross Attn + Audio Attn] C -. 逐层 z_id 注入 self-attn .-> D CA -. 逐层 cross-attn .-> D D --> DEC[3D VAE Decoder] --> V[输出视频 x F 帧]
小结:一个 CogVideoX backbone(提供动态与泛化)+ Identity Reference Network(保身份)+ audio cross-attention(驱动嘴)+ motion frames(接长视频)。四块拼起来,就是 Hallo3。
Part 4
如何训练 Hallo3:两阶段冻结策略与百小时数据 curation

4.1 两阶段训练

Hallo3 的训练分成两个阶段,核心是冻结大部分参数、只训练当前阶段需要的模块,以免破坏 CogVideoX 的预训练先验。#Cui-et-al.-2025-Hallo3

阶段一 · 身份一致性(Identity Consistency Phase)。冻结 3D VAE 与 face image encoder;更新 reference network 和 denoising network 里的 3D full attention block,以及 denoising network 的 face attention block。输入是从训练视频随机采样的一张参考图、一句文本提示、一个面部 embedding——文本由 MiniCPM 生成(描述人物外观、动作、环境背景),面部 embedding 由 InsightFace 提取。输出 49 帧视频。#Cui-et-al.-2025-Hallo3

阶段二 · 音频驱动(Audio-Driven Phase)。在 denoising network 的每个 transformer block 里插入 audio attention module,冻结其他所有组件,只更新 audio attention。输入换成参考图 + 音频 embedding + 文本提示,输出 49 帧音频驱动视频。#Cui-et-al.-2025-Hallo3 这种“先学身份、再学音频”的解耦,让音频模块不至于把已经学好的身份/外观搞乱。

两个阶段都用 v-prediction 扩散损失 优化。#Salimans-Ho-2022 网络用 CogVideoX-5B-I2V 的权重初始化。#Yang-et-al.-2024-CogVideoX

配置项披露状态值 / 说明
训练数据已披露约 134h(HDTF 6h + YouTube 72h + movie 56h),源自 8h+1200h+2346h 原始素材
训练硬件已披露64× NVIDIA H100
优化器未披露原文只给学习率,未给优化器类型 / β
学习率已披露1×10⁻⁵(未给 schedule / warmup)
Batch size已披露per-GPU = 1(全局 64)
训练步数已披露每阶段 20,000 steps,共两阶段
训练时长未披露原文未给出小时数
模型参数量部分披露基于 CogVideoX-5B(约 5B backbone)+ 42 层 reference network;总参数量未精确给出
精度格式未披露原文未给出
Checkpoint 策略未披露原文未给出
初始化来源已披露CogVideoX-5B-I2V 权重
Stage 1 优化范围已披露reference&denoising 的 3D full attention + denoising 的 face attention
Stage 2 优化范围已披露仅 audio attention modules(其余全冻结)
条件 drop已披露参考图 / 音频 / 文本各以概率 0.05 drop(CFG 训练)

4.2 数据 curation:从 3554 小时噪声里洗出 134 小时

训练数据来自三个来源:HDTF(8 小时原始素材)、YouTube(1,200 小时公开视频)、以及一个大规模电影数据集(2,346 小时)。#Cui-et-al.-2025-Hallo3 但 YouTube 和电影里噪声极多,于是论文设计了一条三阶段 curation 流水线。

Hallo3 数据处理流水线与统计分布
图 3:数据处理流水线(左)、最终数据的 Sync-C/Sync-D/面部旋转/脸比分布(中),以及推理数据可视化(右)。(来源:Hallo3, Fig. 4)

第一步 · 单说话人提取:用 SceneDetect 做镜头切分(时长过滤到 5–20 秒)并以 H.264、25 FPS 重编码,用 UVR(Ultimate Vocal Remover)去掉背景音乐和环境音,再用 pyannote 做说话人分离,保证每段只含一个说话人。#Cui-et-al.-2025-Hallo3 第二步 · 面部与相机运动过滤:用 InsightFace 算面部位移(17 帧窗口内位移超过人脸框 50% 就丢)、算面部旋转(平均水平 yaw 超过 40° 就丢);用 CoTracker 检测并剔除动态相机的片段;用 SyncNet 算音画同步分,低于 5.0 的丢弃。#Cui-et-al.-2025-Hallo3 第三步 · 后处理:用 ffmpeg 按面部位置裁到 3:2,用 Wav2Vec2 编码音频、InsightFace 编码随机一帧的人脸得到 embedding。#Cui-et-al.-2025-Hallo3

经过这套流水线,3,554 小时原始素材最终只保留约 134 小时高质量数据(HDTF 6h + YouTube 72h + movie 56h)。#Cui-et-al.-2025-Hallo3 值得注意的是,论文特意保留了大幅头动和动态场景的数据——这也解释了后面为什么它在静态 benchmark 上的唇同步反而“吃亏”。

Part 5
推理链路:motion frame 接龙与三路 CFG 调参

推理时,模型接收四样输入:一张参考图、一段驱动音频、一句文本提示、以及 motion frames。#Cui-et-al.-2025-Hallo3 它从随机高斯噪声出发,经过 DiT 的迭代去噪,最后由 3D VAE 解码器还原成视频。生成的视频既要与音频唇同步,又要保持身份一致。

5.1 长视频“接龙”式外插

由于单次只能出 49 帧,长视频靠 motion frames 一段接一段地生成:推理时用前一段视频的最后 2 帧作为 motion frames\(n=2\)),作为下一段的锚点条件。#Cui-et-al.-2025-Hallo3 这样每一段都“记得”上一段结尾的样子,拼起来时序连贯。为什么是 2 帧而不是 1 帧或 8 帧?这是消融选出来的折中——1 帧唇同步最好,但 2 帧画质(FID/FVD)最好,推理更看重画质稳定,所以取 2(见 Part 6 motion frame 消融)。

这不是一个“实时”方法

需要提醒的是,Hallo3 是一个 5B 参数的 DiT + 42 层 reference network 的离线生成方案,采用完整多步扩散采样、按 49 帧一段接龙。论文正文没有披露任何推理硬件、推理速度、显存占用或首帧延迟,因此不能与本系列里 VASA-1、Ditto 那类实时/流式方案直接比“能不能实时”。它换来的是画质、动态度和场景泛化,代价大概率是推理开销。

5.2 三路 CFG:一个旋钮控制一种属性

推理里最有工程价值的一点,是 Hallo3 把 classifier-free guidance(CFG)拆成音频、文本、参考图三路,各自一个 scale。论文的消融显示这三个旋钮几乎正交:#Cui-et-al.-2025-Hallo3

CFG 旋钮主要控制调大的效果
\(\lambda_a\)(音频)唇同步Sync-C 从 6.154 升到 6.469
\(\lambda_t\)(文本)动态程度主体/背景动态度随之增大
\(\lambda_i\)(参考图)主体外观一致性Subject Consistency 从 0.9810 升到 0.9835

论文推荐的平衡配置是 \(\lambda_a=3.5,\ \lambda_t=3.5,\ \lambda_i=1.0\)#Cui-et-al.-2025-Hallo3 想要更活泼的背景就调大 \(\lambda_t\),想要更严格的对口型就调大 \(\lambda_a\),想让脸更贴参考图就调大 \(\lambda_i\)——这种可解释的解耦控制,对实际调用非常友好。

此外,Hallo3 还保留了 CogVideoX 的文本可控性:用相同 prompt 与 baseline CogVideoX 对比,它依然能按文字驱动主体交互(如兔子、马、鸟)以及前景/背景动画(海浪、烛光),并且在引入音频条件之后这种可控性仍然维持#Cui-et-al.-2025-Hallo3 这说明三路条件之间没有互相“打架”。

Part 6
实验验证:benchmark 平手、wild 场景碾压

6.1 实验配置

配置项披露状态值 / 说明
评测数据集已披露HDTF、Celeb-V、自建 wild dataset(34 例)
评测指标已披露FID↓ / FVD↓ / Sync-C↑ / Sync-D↓ / E-FID↓ + V-bench 动态度(RAFT) / 主体一致性(DINO)
Baseline 方法已披露SadTalker、DreamTalk、AniPortrait、Hallo(/Hallo2)
推理硬件未披露原文未给出推理 GPU / 显存 / RTF / 首帧延迟
推理分辨率已披露480×720(同训练)
推理环境未披露原文未给框架 / CUDA 版本

talking head 不能只看 FID

评价数字人必须多维度看:画质与分布距离(FID/FVD/E-FID)、音画同步(Sync-C/Sync-D)、身份一致性(Subject Consistency,DINO)、动作/动态自然度(V-bench dynamic degree,RAFT)。Hallo3 的贡献恰恰在于额外引入了主体/背景动态度这个维度——单看 FID 会完全错过它“能生成动态场景”这个核心卖点。

6.2 HDTF 与 Celeb-V:画质领先,唇同步略逊

HDTFFID↓FVD↓Sync-C↑Sync-D↓
SadTalker22.340203.8607.8857.545
DreamTalk78.147790.6606.3768.364
AniPortrait26.561234.6664.01510.548
Hallo20.545173.4977.7507.659
Hallo3 (Ours)20.359160.8387.2528.106
Real video8.7006.597
Celeb-VFID↓FVD↓Sync-C↑Sync-D↓E-FID↓
SadTalker50.015471.1636.9227.92195.194
DreamTalk109.011988.5395.7098.743153.450
AniPortrait46.915477.1792.85311.70988.986
Hallo44.578377.1177.1917.98478.495
Hallo3 (Ours)43.271355.2726.5279.11371.210
Real video7.3727.518

在两个标准 benchmark 上,Hallo3 拿下了 FID、FVD(以及 Celeb-V 的 E-FID)的最优,说明画质与分布相似度全面领先#Cui-et-al.-2025-Hallo3 但唇同步(Sync-C/Sync-D)略逊于 SadTalker、Hallo。论文给出的解释很诚实:为了能生成不同视角的动态肖像,它的训练数据以大幅头动、身体运动和多样动态场景为主,而非“静态小运动”,这会牺牲一点唇同步,却更贴近真实应用。#Cui-et-al.-2025-Hallo3

HDTF 与 CelebV 定性对比
图 4:HDTF(左)与 CelebV(右)上的定性对比。(来源:Hallo3, Fig. 3)

6.3 Wild 数据集:动态度断层领先

真正体现 Hallo3 价值的是自建的 wild dataset——34 个代表性案例,涵盖不同脸比、头姿、静态/动态场景、复杂头饰服装。#Cui-et-al.-2025-Hallo3

WildSync-C↑Sync-D↓主体动态↑背景动态↑主体FVD↓背景FVD↓
SadTalker3.84510.3782.9530.220470.377313.758
DreamTalk4.49811.0056.9581.806835.480744.177
AniPortrait1.68512.0253.3511.769473.173302.716
Hallo4.65410.2025.2681.272394.627291.052
Hallo3 (Ours)6.1548.57413.2864.481359.493248.283
关键发现:在 wild 场景里 Hallo3 全指标最优。主体动态度 13.286(次好的 DreamTalk 只有 6.958,约 1.9 倍)、背景动态度 4.481(次好 1.806,约 2.5 倍),同时唇同步 Sync-C 6.154 也是最高。#Cui-et-al.-2025-Hallo3 这说明它不是靠“少动”来换画质,而是真的能在剧烈运动、动态背景下依然保持同步与稳定。
复杂身份、动态配饰、不同姿态朝向对比
图 5:复杂面部身份、动态配饰主体与不同姿态朝向的对比。其他方法难以驱动侧脸肖像,常出现静止或面部失真,也会忽略与前景物体(如老人身旁的狗)、动态背景(如女孩身后的鸵鸟)的交互。(来源:Hallo3, Fig. 5)
动态前后景与多头姿复杂场景
图 6:动态前景/背景与多种头姿的复杂场景,Hallo3 能生成多朝向、带复杂前后景的真实肖像。(来源:Hallo3, Fig. 6)

6.4 消融实验:三个模块各自的贡献

音频注入方式(消融一)。这是最戏剧性的一组对比:adaLN / adaLN-zero / self-attention 的 Sync-C 都在 1.3~1.4 徘徊,唯独 cross-attention 把 Sync-C 拉到 4.601,FID/FVD 也同时最优。#Cui-et-al.-2025-Hallo3

音频注入方式FID↓FVD↓Sync-C↑Sync-D↓
AdaLN24.159264.3311.37413.524
AdaLN-zero24.029276.4031.39813.553
Self Attn.24.748270.1011.34513.456
Cross Attn. (Ours)23.458242.6024.60110.416

身份注入方式(消融二)。没有身份条件时模型保不住外观(FID 32.304);只用 face attention 反而更糟(FID 57.541,引入模糊失真);face adaptive norm 直接崩溃(FID 150.720、FVD 1587.395);identity reference network 明显改善(FID 28.789);而 face attention + reference network 的组合最优(FID 23.458、主体一致性 0.988)。#Cui-et-al.-2025-Hallo3

身份注入方式FID↓FVD↓Sync-C↑Sync-D↓主体一致性↑
(a) 无身份条件32.304371.8203.18311.7320.977
(b) Face attention57.541740.5364.04210.6820.974
(c) Face adaptive norm150.7201587.3953.82212.3240.904
(d) Identity reference net28.789291.8634.55310.3170.984
(e) Face attn + Ref net (Ours)23.458242.6024.60110.4160.988
不同身份注入策略定性对比 a-e
图 7:不同身份注入策略的定性对比。(a) 无身份条件;(b) Face attention;(c) Face adaptive norm;(d) Identity reference network;(e) Face attention + Identity reference network。(来源:Hallo3, Fig. 8)

Motion frame 数量(消融三)。\(n=1\) 唇同步最好(Sync-C 6.889、Sync-D 8.695),\(n=2\) 画质最好(FID 23.458、FVD 242.602),\(n=8\) 明显退化(FID 27.303)。#Cui-et-al.-2025-Hallo3 推理最终取 \(n=2\) 平衡画质与稳定。

Motion frame 数FID↓FVD↓Sync-C↑Sync-D↓
n = 124.040242.7086.8898.695
n = 223.458242.6024.60110.416
n = 424.459269.9045.10910.489
n = 827.303265.3965.11410.464
不同音频注入策略定性对比
图 8:不同音频注入策略的定性对比,cross-attention 在唇同步上明显更优。(来源:Hallo3, Fig. 7)
Part 7
讨论与启发:把视频大模型的红利导给数字人

放到整个 talking head 地图上看,Hallo3 是一次范式迁移:从“为 talking head 专门设计的 U-Net + 中间表示”,转向“复用通用视频生成大模型 + 轻量条件注入”。#Cui-et-al.-2025-Hallo3 它证明了一件事——只要把身份、音频、长视频三件事以最小扰动的方式注入 DiT,就能把视频大模型的动态、泛化红利直接导给数字人,从而解决旧方法多年攻不下的非正面视角与动态场景。

和本系列其他工作对照:Hallo 用 U-Net 分层音视觉对齐,长于静态正面唇同步;VASA-1、Ditto 主打实时/流式,胜在延迟;而 Hallo3 用画质、动态度、场景泛化去换掉了实时性——它更像是“影视级离线生成”路线的代表。选型时,要实时互动选前者,要高动态、复杂场景的高质量成片选 Hallo3。

局限与开放问题

论文自己承认:动态环境下复杂表情的真实性仍需打磨,尤其在光照变化下。#Cui-et-al.-2025-Hallo3 未来方向包括更强的多视角鲁棒性、更全面的数据集,以及引入实时反馈机制。从复现角度看还有两个坑:一是推理成本完全没披露(5B DiT + 42 层 reference network + 多步采样,实时性存疑);二是唇同步在静态 benchmark 上并非最优,若你的场景就是正面静态播报,Hallo/SadTalker 可能更划算。此外论文也专门讨论了 deepfake 滥用风险,强调需要伦理准则与知情同意。#Cui-et-al.-2025-Hallo3

可操作的启发:(1)当你手上有一个强预训练视频扩散模型时,做下游可控生成的正确姿势是“结构对称的 reference network + token 级注入”,而不是外挂一个 encoder 硬塞特征——特征空间对齐比特征本身更重要;(2)序列型条件(语音)优先用 cross-attention 而非 adaLN,因为它需要的是空间局部对齐;(3)长视频外插用少量 motion frame 做锚点,帧数是画质与同步之间的可调折中;(4)把 CFG 拆成多路,能得到可解释、近乎正交的属性旋钮,非常适合产品化调参。

总的来说,Hallo3 给数字人领域打了个样:不必事事从头训。视频生成大模型的能力正在快速进化,谁能用最轻的方式把这些能力“接”到自己的任务上,谁就能站在浪潮之巅。

参考来源

  • Cui, J., Li, H., Zhan, Y., Shang, H., Cheng, K., Ma, Y., Mu, S., Zhou, H., Wang, J., & Zhu, S. (2025). Hallo3: Highly Dynamic and Realistic Portrait Image Animation with Video Diffusion Transformer. CVPR 2025. arXiv:2412.00733 · GitHub
  • Yang, Z. et al. (2024). CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer. arXiv:2408.06072
  • Peebles, W., & Xie, S. (2022). Scalable Diffusion Models with Transformers (DiT). ICCV 2023. arXiv:2212.09748
  • Salimans, T., & Ho, J. (2022). Progressive Distillation for Fast Sampling of Diffusion Models(v-prediction). ICLR 2022. arXiv:2202.00512
  • Schneider, S. et al. (2019). wav2vec: Unsupervised Pre-training for Speech Recognition. arXiv:1904.05862
  • Xu, M. et al. (2024). Hallo: Hierarchical Audio-Driven Visual Synthesis for Portrait Image Animation. arXiv:2406.08801 · 精读 →