FaceShot
肖像动画的核心任务是把一张静态肖像图像「活起来」——用驱动视频中的头部运动、表情和嘴部动作来动画源图像。在这条路线上,LivePortrait #Guo-et-al.-2024 证明了隐式关键点 + stitching + retargeting 的工程价值,把 GAN 路线推到了产品可用。但 LivePortrait 和同期方法都依赖一个隐含假设:驱动视频和源图像都是人类面孔,且面部 landmark 可以被准确检测。
FaceShot 要解决的正是这个假设的盲区。来自同济大学、上海 AI Lab 和南京理工大学的团队发现:当源图像是非人类角色——emoji、玩具、动物、动漫人物——面部 landmark 检测器(如 FAN、STAR、Uni-Pose)会彻底失效 #GaoJ-et-al.-2025。检测失败导致后续的动画模型要么无法工作,要么在狗脸上贴出人类的嘴巴,产生荒诞效果。
论文的核心洞察是:不需要训练一个更好的 landmark 检测器,而是利用扩散模型中间层特征的语义对应能力来完成跨域 landmark 匹配。这使 FaceShot 成为一个 training-free 框架——不需要微调、不需要训练、不需要配对数据。它只需要三步:用扩散特征给任意角色找到精确 landmark;用坐标变换将驱动视频的运动迁移到这些 landmark 上;把得到的 landmark 序列喂给任意 landmark-driven 动画模型。
论文还构建了 CharacBench——一个包含 46 个多样化角色(动物、emoji、玩具、动漫角色)的评测基准——并证明 FaceShot 在所有指标上超越 SOTA 方法 #GaoJ-et-al.-2025。更重要的是,FaceShot 可以作为插件接入任何 landmark-driven 动画模型(包括 LivePortrait、AniPortrait、MOFA-Video),显著提升它们在非人类角色上的表现。
监督式 landmark 检测的根本局限
当前肖像动画方法分为两类:一类直接用隐式关键点驱动(如 LivePortrait #Guo-et-al.-2024、Face Vid2vid #Wang-et-al.-2021),另一类用显式面部 landmark 作为运动接口(如 AniPortrait #Wei-et-al.-2024、MOFA-Video #Niu-et-al.-2024、Follow Your Emoji #Ma-et-al.-2024)。后者依赖 landmark 检测器从源图像中提取面部关键点。
问题在于,主流 landmark 检测器——STAR #Zhou-et-al.-2023、Uni-Pose #Yang-et-al.-2023、FAN——都是在人类面部数据集上监督训练的。当输入是非人类角色时,这些模型的表现急剧退化。论文在 CharacBench 上测试了三种检测器的 NME(Normalized Mean Error):
| 检测方法 | NME↓ | 说明 |
|---|---|---|
| STAR | 24.530 | 监督式,大量误检 |
| Uni-Pose | 13.731 | 监督式 SOTA,仍不理想 |
| DIFT | 11.448 | 无监督扩散特征匹配 |
| FaceShot | 8.569 | 外观引导扩散特征匹配 |
FaceShot 把 NME 从最好的监督方法的 13.731 降到 8.569,降幅达 37.6%。关键在于它利用了扩散模型在大量图像上学到的语义理解能力,而非依赖标注数据 #GaoJ-et-al.-2025。
3DMM 的跨域问题
除了 landmark 检测,另一条路径用 3D Morphable Model(3DMM)生成 landmark 序列。但 3DMM 本质上是用人类 3D 面部数据训练的统计模型,对非人类角色同样无法泛化。论文展示了 Deep3D、DECA 和 3DDFAv2 三种 3DMM 方法在非人类角色上的建模结果,均无法正确对齐面部形状,也无法捕捉细微运动如闭眼 #GaoJ-et-al.-2025。
FaceShot 的框架由三个组件构成,全部 training-free,无需任何微调或训练 #GaoJ-et-al.-2025:
- Appearance-guided Landmark Matching:利用扩散模型特征为任意角色匹配精确 landmark
- Coordinate-based Landmark Retargeting:将驱动视频的运动迁移到匹配的 landmark 上
- Character Animation Model:将 landmark 序列输入预训练动画模型生成视频
组件 1:Appearance-guided Landmark Matching
这是 FaceShot 的核心创新。基本思路是利用 Stable Diffusion #Rombach-et-al.-2022 的 U-Net 中间层特征来做语义点匹配——即 DIFT 方法 #Tang-et-al.-2023 的思路。但原始 DIFT 在跨域时会产生误匹配:比如把左眼匹配到右耳。
FaceShot 的改进是注入外观先验。受 IP-Adapter #Ye-et-al.-2023 启发,它把参考图像和目标图像都作为图像提示(image prompt)注入扩散模型,然后执行 DDIM inversion 得到确定性扩散特征 #GaoJ-et-al.-2025:
其中 $z^{t-1}$ 通过 DDIM inversion 迭代采样,$c$ 是文本提示 "a photo of a face",$c'$ 是图像提示。$F_l$ 提取 U-Net 第 $l$ 层的特征。论文通过网格搜索确定最佳参数:$t=301$,$l=6$ #GaoJ-et-al.-2025。
外观画廊(Appearance Gallery)
为了进一步降低跨域外观差异,FaceShot 构建了一个外观画廊 $G = [G_e, G_m, G_n, G_{eb}, G_{fb}]$,包含五个面部部件(眼睛、嘴、鼻、眉、面部轮廓)在多个域(人类、动漫、写实等)的 $k$ 张参考图。对于输入参考图,用 CLIP 图像分数匹配最近的域,组合出目标图像 $I_{tar}$。这样扩散特征匹配就在域内进行,大幅减少误匹配。
具体地,对于第 $i$ 个 landmark 点 $p_{tar}^i$,FaceShot 用 $k$ 张目标图像的平均特征与参考图像特征做余弦距离最小化匹配 #GaoJ-et-al.-2025:
论文实验表明 $k=10$ 是性能和时间的最佳平衡点——$k$ 从 1 增到 10 时 NME 从 12.801 降到 6.343,但继续增大收益递减 #GaoJ-et-al.-2025。
组件 2:Coordinate-based Landmark Retargeting
有了参考角色的精确 landmark 后,下一步是将驱动视频的运动迁移过来。FaceShot 没有使用 3DMM 或学习式方法,而是提出了一个纯坐标变换的 retargeting 模块 #GaoJ-et-al.-2025。
该模块分两个阶段:
阶段一:全局运动。用面部轮廓的两个端点构建矩形坐标系 $(O, \theta)$,计算驱动视频从第 0 帧到第 $m$ 帧的平移 $\Delta O$ 和旋转 $\Delta\theta$,直接迁移到参考图像:
阶段二:局部运动。对五个面部部件(眼、嘴、鼻、眉、轮廓)分别建立局部坐标系,计算相对运动和点运动。点运动用比例缩放来约束:
这个设计简单但有效——它不需要任何训练参数,只需坐标运算,时间开销极低。论文实验显示 retargeting 50 帧只需 0.382 秒 #GaoJ-et-al.-2025。
组件 3:Character Animation Model
得到参考角色的 landmark 序列后,FaceShot 将其输入任意 landmark-driven 动画模型 #GaoJ-et-al.-2025。论文默认使用 MOFA-Video #Niu-et-al.-2024——一个基于 Stable Video Diffusion #Blattmann-et-al.-2023 的 landmark-conditioned 动画模型。Landmark 序列通过 ControlNet-like 结构注入 U-Net。
关键在于,这个组件是可替换的。论文在实验中展示了 FaceShot 也可以作为 AniPortrait 的插件,显著提升后者在非人类角色上的表现 #GaoJ-et-al.-2025。
FaceShot 的一个核心卖点是 training-free——不需要微调扩散模型,不需要训练 retargeting 网络,不需要配对数据 #GaoJ-et-al.-2025。这在当前肖像动画领域几乎是一个异类——绝大多数方法都需要某种形式的训练。
为什么不训练?
论文的逻辑是:问题的根源不在动画模型,而在 landmark 生成。如果用扩散模型的语义特征就能做跨域 landmark 匹配,那么训练一个专门的检测器就是多此一举。而且,training-free 带来了几个工程优势:
- 零数据需求:不需要非人类角色的标注数据(这类数据几乎不存在)
- 即插即用:不需要为新角色准备训练集,推理时直接运行
- 通用兼容:可以接入任意 landmark-driven 动画模型
Appearance Gallery 的构建
虽然不需要训练,但 FaceShot 需要预先构建一个 Appearance Gallery——包含五个面部部件在多个域(人类、动漫、写实等)的 $k$ 张参考图。这个 gallery 的构建是离线的一次性操作,不增加推理时的训练负担 #GaoJ-et-al.-2025。
每个部件的 landmark 数量分配如下:
| 部件 | 眼睛 | 嘴 | 鼻 | 眉 | 面部轮廓 | 合计 |
|---|---|---|---|---|---|---|
| Landmark 数 | 12 | 20 | 9 | 10 | 17 | 68 |
这 68 个 landmark 遵循 MOFA-Video 的约定 #Niu-et-al.-2024,与 300W 数据集 #Sagonas-et-al.-2016 的标准一致。
与 LivePortrait 训练策略的对比
作为对比,LivePortrait #Guo-et-al.-2024 使用了两阶段训练:Stage I 在 8 块 A100 上训练 10 天,用 6900 万帧学习基础动画能力;Stage II 冻结基础模块,只训练 stitching / eyes / lip 三个小型 MLP。Ditto #Li-et-al.-2025 更重——用 8 块 A100、batch 1024、500 epochs 训练 Conditional DiT。FaceShot 完全跳过了这些——它的「训练」就是预构建一个外观画廊和选择扩散模型的超参数。
推理流程
FaceShot 的推理分为三个阶段 #GaoJ-et-al.-2025:
阶段 1:Driving Detection。用 FAN(facexlib 实现)从驱动视频中检测 landmark 序列。这是标准的监督式检测,因为驱动视频是人类面孔,检测器可以正常工作。50 帧耗时约 1.817 秒。
阶段 2:Landmark Matching。这是 FaceShot 的核心步骤。对参考图像执行 DDIM inversion 获取扩散特征,然后在 Appearance Gallery 中匹配最近的域,最后用余弦距离最小化匹配每个 landmark 点。这一步与帧数无关(只需对参考图执行一次),50 帧耗时约 0.860 秒。
阶段 3:Landmark Retargeting。用坐标变换将驱动视频的运动迁移到参考角色的 landmark 上。纯计算,无模型推理。50 帧耗时约 0.382 秒。
三个阶段合计,FaceShot 在 50 帧上额外开销约 3.059 秒。作为插件,它给 MOFA-Video 增加的额外时间仅 119ms(landmark 匹配仅需一次,可分摊到所有帧)#GaoJ-et-al.-2025。
推理配置表
| 配置项 | 值 | 来源 |
|---|---|---|
| 推理硬件 | 单 NVIDIA H800 GPU | 论文披露 |
| 扩散模型 | Stable Diffusion v1.5 | 论文披露 |
| 图像提示注入 | IP-Adapter 预训练权重 | 论文披露 |
| DDIM inversion 时间步 | $t = 301$ | 论文披露 |
| U-Net 特征层 | $l = 6$ | 论文披露 |
| 目标图像数 | $k = 10$ | 论文披露 |
| Landmark 数量 | 68(300W 标准) | 论文披露 |
| 动画帧数 | 64 | 论文披露 |
| 输出分辨率 | 512 × 512 | 论文披露 |
| 基础动画模型 | MOFA-Video(SVD-based) | 论文披露 |
| Landmark 检测器(驱动) | FAN(facexlib) | 论文披露 |
| 训练参数 | 0(Training-free) | 论文披露 |
推理时间对比
论文提供了详细的推理时间分析。在 50 帧的设置下,各方法的总推理时间如下:
| 方法 | 推理时间(50帧) | 类型 |
|---|---|---|
| LivePortrait* | 4.321s | GAN-based |
| FaceVid2Vid* | 4.308s | GAN-based |
| MOFA-Video | 79.421s | Diffusion-based |
| FaceShot | 79.540s | Diffusion-based(含 FaceShot 开销) |
| AniPortrait | 99.977s | Diffusion-based |
| FADM | 88.368s | Diffusion-based |
| X-Portrait | 132.702s | Diffusion-based |
| Follow Your Emoji | 112.830s | Diffusion-based |
| MegActor | 174.189s | Diffusion-based |
可以看到,FaceShot 相比基础模型 MOFA-Video 仅增加 119ms 开销,这在扩散模型动辄数十秒的推理时间面前几乎可以忽略 #GaoJ-et-al.-2025。而 GAN-based 方法(LivePortrait、FaceVid2Vid)速度快得多,但在非人类角色上无法工作。
CharacBench 评测基准
论文构建了 CharacBench——一个包含 46 个角色的评测基准,涵盖动物、emoji、玩具和动漫角色 #GaoJ-et-al.-2025。选择标准是确保角色尽可能不像人类面部。驱动视频来自 RAVDESS #Livingstone-et-al.-2018 的人类头部视频。
定量对比
FaceShot 在 CharacBench 上与 7 个 SOTA 方法对比 #GaoJ-et-al.-2025:
| 方法 | ArcFace↑ | HyperIQA↑ | Aesthetic↑ | Point-Track↓ | 失败率 |
|---|---|---|---|---|---|
| FaceVid2Vid | 0.525 | 33.721 | 4.267 | 6.944 | — |
| FADM | 0.633 | 39.402 | 4.522 | 6.993 | — |
| X-Portrait | 0.490 | 52.357 | 4.754 | 7.301 | — |
| Follow Your Emoji | 0.612 | 52.056 | 4.906 | 6.960 | — |
| AniPortrait* | 0.634 | 55.951 | 4.928 | 6.367 | 39.13% |
| MegActor* | 0.613 | 40.191 | 4.855 | 7.183 | 36.50% |
| LivePortrait* | 0.893 | 53.587 | 5.092 | 7.474 | 16.67% |
| MOFA-Video | 0.695 | 52.272 | 4.952 | 14.985 | — |
| FaceShot | 0.848 | 53.723 | 5.036 | 6.935 | 0% |
注意 LivePortrait 的 ArcFace(0.893)高于 FaceShot(0.848),但 LivePortrait 有 16.67% 的失败率——它无法检测到部分非人类角色的面部,只能在成功检测的角色上计算指标 #GaoJ-et-al.-2025。FaceShot 的 0% 失败率意味着它在所有 46 个角色上都能工作。
消融实验
论文进行了三组消融 #GaoJ-et-al.-2025:
(1) Landmark Matching 消融:FaceShot 的 NME(8.569)显著低于 DIFT(11.448)和监督方法 Uni-Pose(13.731)、STAR(24.530),证明外观引导的扩散特征匹配在跨域场景中明显优于纯 DIFT 和监督方法。
(2) Landmark Retargeting 消融:FaceShot 的 Point-Tracking(6.935)低于 Deep3D(8.282)、Everything's Talking(8.382)和 FreeNet(8.272),证明坐标变换比 3DMM 和学习式方法更精确。
(3) 作为插件的消融:将 FaceShot 的 landmark 输入 AniPortrait 的管线,原始 AniPortrait 因 landmark 不准导致角色扭曲,接入 FaceShot 后生成和谐结果 #GaoJ-et-al.-2025。
实验配置披露表
| 配置项 | 状态 |
|---|---|
| 数据集名称与规模 | CharacBench(46 角色)+ RAVDESS 驱动视频,论文披露 |
| 训练/推理硬件 | 单 H800 GPU(推理),论文披露 |
| 优化器 / 学习率 / Schedule | 不适用(Training-free) |
| Batch size / Epoch / 训练时长 | 不适用(Training-free) |
| Checkpoint 选择策略 | 不适用(Training-free) |
| 扩散模型超参数 | $t=301, l=6, k=10$,论文完整披露 |
| 基础动画模型 | MOFA-Video(SVD-based),论文披露 |
| Landmark 检测器 | FAN(facexlib),论文披露 |
三个工作的技术路线差异
LivePortrait、Ditto 和 FaceShot 都在做肖像动画,但解决的核心问题完全不同:
| 维度 | LivePortrait | Ditto | FaceShot |
|---|---|---|---|
| 核心问题 | 隐式关键点不够可控 | 扩散太慢且不可控 | Landmark 检测跨域失败 |
| 技术路线 | GAN + 隐式关键点 + stitching | 扩散 DiT + LivePortrait motion space | 扩散特征匹配 + 坐标变换 |
| 运动接口 | 隐式 3D 关键点(K≈21) | LivePortrait 运动表示(265D) | 显式 2D landmark(68 点) |
| 需要训练 | 是(两阶段,8×A100,12天) | 是(8×A100,500 epochs) | 否(Training-free) |
| 推理速度 | 12.8ms/帧(RTX 4090) | RTF 0.895(A100) | ~1.59s/帧(H800) |
| 角色泛化 | 弱(landmark 检测受限) | 弱(训练数据为人类) | 强(任意角色) |
| 可控性 | stitching + eyes/lip retargeting | gaze + emotion + pose + regional | 无(依赖下游模型) |
| 驱动类型 | 视频驱动 | 音频驱动 | 视频驱动 |
| 开源 | 是(GitHub) | 是(GitHub) | 是(Project Page) |
架构对比:运动表示的三个层次
三个工作代表了运动表示的三个层次:
LivePortrait的架构是端到端的:源图和驱动视频各自通过 Motion Extractor $\mathcal{M}$ 提取隐式关键点,然后通过 warping 和 SPADE decoder 生成动画。整个流程在一个框架内完成,stitching 和 retargeting 作为可插拔模块附加在推理阶段。它的优势是速度快(12.8ms/帧)和可控性强,但运动表示是隐式的——当源图不是人类面孔时,Motion Extractor 无法正确提取关键点。
Ditto的架构在 LivePortrait 之上加了一层扩散生成器:HuBERT 提取音频特征 → Conditional DiT 生成运动表示($\delta, R, t$,共 265 维)→ LivePortrait 的 renderer($\mathcal{F}$ + $\mathcal{G}$)渲染图像。Ditto 明确声明"We construct the motion space based on LivePortrait" #Li-et-al.-2025——它复用了 LivePortrait 的 Motion Extractor 和 Face Renderer,但在中间插入了一个扩散模型来做音频到运动的映射。这解决了 LivePortrait 无法从音频驱动的问题,但同样无法处理非人类角色。
FaceShot的架构则完全不同——它不在动画模型内部做改进,而是在动画模型的输入端做改进。它用扩散模型的语义特征为任意角色生成精确 landmark,然后用坐标变换迁移运动,最后把 landmark 序列交给任意动画模型。这意味着 FaceShot 可以与 LivePortrait 或 Ditto 叠加使用——FaceShot 负责解决「输入端跨域 landmark」问题,LivePortrait/Ditto 负责解决「模型端动画生成」问题。
为什么 FaceShot 选择不训练?
FaceShot 的 training-free 设计不是技术限制,而是问题定义的策略选择。如果目标是「让动画模型更强大」,那么应该像 Ditto 那样在模型内部引入扩散生成器。但如果目标是「让动画模型能接受任意角色的输入」,那么最有效的做法是改善输入接口——也就是 landmark 生成——而不是重新训练整个动画模型。
这种策略使得 FaceShot 具有独特的平台化特征:它可以作为任何 landmark-driven 动画模型的前置模块,包括 LivePortrait、AniPortrait、MOFA-Video,甚至未来的新模型。论文在实验中已经验证了与 AniPortrait 的兼容性 #GaoJ-et-al.-2025。
局限性
- 推理速度慢:FaceShot 依赖 MOFA-Video 做动画生成,50 帧需要 79.540 秒,远慢于 LivePortrait 的 4.321 秒。如果对实时性有要求,FaceShot 目前不适合。
- 依赖 DDIM inversion:Landmark matching 需要对参考图执行 DDIM inversion,这一步引入了扩散模型的计算开销(约 0.86 秒,但只需执行一次)。
- 动画模型不可控:FaceShot 本身不提供 stitching、retargeting 等可控性模块——它依赖下游动画模型。如果用 MOFA-Video,则没有 LivePortrait 的精细控制能力。
- Landmark 数量固定:使用 68 个 2D landmark 作为运动接口,比 LivePortrait 的 21 个 3D 隐式关键点维度更低,可能在某些精细运动上表达力不足。
参考来源
- Gao, Junyao et al. (2025). FaceShot: Bring Any Character into Life. ICLR 2025. arXiv:2503.00740 · Project Page
- Guo, Jianzhu et al. (2024). LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control. arXiv:2407.03168. arXiv · 精读 →
- Li, Tianqi et al. (2025). Ditto: Motion-Space Diffusion for Controllable Realtime Talking Head Synthesis. ACM MM 2025. arXiv:2411.19509 · 精读 →
- Niu, Xianjie et al. (2024). MOFA-Video: Controllable Image Animation via Generative Sparse Motion Fields. arXiv:2405.20222
- Rombach, Robin et al. (2022). High-Resolution Image Synthesis with Latent Diffusion Models. CVPR 2022.
- Ye, Hu et al. (2023). IP-Adapter: Text Compatible Image Prompt Adapter for Text-to-Image Diffusion Models. arXiv:2308.06721
- Tang, Luming et al. (2023). Emergent Correspondence from Image Diffusion. NeurIPS 2023.
- Wang, Ting-Chun et al. (2021). One-Shot Free-View Neural Talking-Head Synthesis for Video Conferencing. CVPR 2021.
- Wei, Huawei et al. (2024). AniPortrait: Audio-Driven Synthesis of Photorealistic Portrait Animation. arXiv:2403.17694. · 精读 →
- Ma, Zhen-Hou et al. (2024). Follow Your Emoji: Real-Time Portrait Animation with Conditional Diffusion. SIGGRAPH 2024.
- Blattmann, Andreas et al. (2023). Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets. arXiv:2311.15127
- Deng, Jiankang et al. (2019). ArcFace: Additive Angular Margin Loss for Deep Face Recognition. CVPR 2019. · 精读 →
- Zhou, Yang et al. (2023). STAR: A Benchmark for Skeletal Human Action Recognition in the Wild.
- Yang, Jingkang et al. (2023). Uni-Pose: Improving Sparse-View Pose Estimation with Universal Pose Dictionary. · 精读 →
- Sagonas, Christos et al. (2016). 300 Faces In-The-Wild Challenge: Database and Results. Image and Vision Computing.
- Livingstone, Steven R. et al. (2018). The Ryerson Audio-Visual Database of Emotional Speech and Song (RAVDESS). PLOS ONE.