FantasyPortrait:基于表情增强扩散变换器的多角色肖像动画生成新突破
用一张照片和一段视频,就能让单人或多人的肖像动起来,而且细节丰富、情绪自然、跨身份依然精准。
1. 背景与挑战
在电影制作、虚拟通信、游戏建模等领域,将静态的肖像图像转换成带有真实表情和动作的视频,一直是一个充满挑战的任务。
过去的方法大多依赖显式的几何先验,比如:
-
人脸关键点(Facial Landmarks) -
三维可变形模型(3D Morphable Model, 3DMM)
这些方法虽然直观,但在实际使用中存在两大问题:
传统方法在跨身份驱动中容易失真,对比可见左侧效果失真明显,右侧为 FantasyPortrait
2. FantasyPortrait 的解决方案
由阿里巴巴与北京邮电大学团队提出的 FantasyPortrait,在解决上述问题上带来了两项核心创新:
-
表情增强隐式控制(Expression-Augmented Implicit Control)
不再依赖关键点或 3D 模型等显式特征,而是直接从视频中提取与身份无关的隐式表情特征,再通过表情增强模块对嘴唇和情绪这两类复杂动作进行精细建模。 -
掩码跨注意力机制(Masked Cross-Attention, MCA)
针对多人场景,将每个人的运动特征进行掩码分离,在潜空间中独立控制,同时保持多角色之间的时间同步与协调,从而避免特征混淆。
单人驱动示例(左)和多人驱动示例(右)
3. 技术原理详解
3.1 架构概览
FantasyPortrait 基于 潜空间扩散模型(Latent Diffusion Model, LDM) 和 视频扩散变换器(Video Diffusion Transformer, DiT)。
其工作流程如下:
-
输入:
-
肖像图像:静态人脸 -
驱动视频:包含表情变化和头部动作
-
-
特征提取:
-
检测并对齐人脸区域 -
提取嘴部动作( elip
)、眼部动作(eeye
)、头部姿态(ehead
)、情绪(eemo
)等隐式特征
-
-
表情增强:
-
对嘴唇与情绪特征进行细粒度分解 -
通过跨注意力机制捕捉与视频 Token 的局部语义关系
-
-
特征融合:
-
将增强后的运动特征与肖像图像的潜向量融合
-
-
视频生成:
-
在潜空间中反向扩散生成动画帧 -
解码还原为视频输出
-
FantasyPortrait 系统架构示意图:从输入到生成的全流程
3.2 表情增强隐式控制
相比传统依赖人脸关键点的方法,隐式特征编码有几个优势:
-
与身份无关,跨身份驱动效果稳定 -
不受相机抖动、光照等干扰影响 -
能保留更多细节
在 FantasyPortrait 中:
-
嘴唇动作和情绪是最复杂、最难学习的部分 -
系统引入了可学习 Token对这两类特征进行细粒度拆分 -
每个子特征对应特定肌肉群或情绪维度,再通过多头跨注意力与视频 Token 交互
公式表示:
em = Concat(Ea(eemo), Ea(elip), ehead, eeye)
这里 Ea
是表情增强编码器,em
是最终的运动嵌入。
3.3 多人动画与掩码跨注意力
多人动画的核心难题是如何防止驱动特征互相干扰。
FantasyPortrait 采用掩码跨注意力:
-
为每个人物生成单独的运动嵌入 -
基于人脸检测结果生成掩码矩阵 M
-
在注意力计算中施加 M
,确保不同人物的特征互不影响
双人驱动示例:两位角色的表情完全独立控制
4. 数据集与评测体系
4.1 Multi-Expr 数据集
为了解决多人训练数据不足的问题,团队构建了Multi-Expr:
-
数据来源:
-
OpenVid-1M -
OpenHumanVid
-
-
处理流程:
-
人物筛选:用 YOLOv8 检测视频中人物数量,保留两人及以上的片段 -
质量过滤:去掉模糊、低质量、有明显伪影的视频 -
表情挑选:用 MediaPipe 检测面部关键点,计算动作幅度,筛选表情明显的视频
-
-
数据规模:
-
约 3 万条高质量视频片段 -
每条视频都带有 AI 自动生成的描述字幕
-
三人场景驱动效果示例
4.2 ExprBench 评测基准
ExprBench 包含两个子集:
-
ExprBench-Single:单人场景 -
ExprBench-Multi:多人场景
测试视频覆盖:
-
真实人脸 -
动物拟人角色 -
卡通人物 -
各类表情与头部动作
动物拟人角色驱动示例
5. 实验结果
5.1 定量评测
在 ExprBench 上,FantasyPortrait 在 FID、FVD、AED、APD、LMD、MAE 等指标上均优于现有方法,尤其在跨身份驱动中优势明显。
5.2 用户主观评价
32 位志愿者对生成视频的质量、表情相似度、动作自然度和表情丰富度进行评分,FantasyPortrait 全面领先。
5.3 消融实验
-
去掉表情增强(EAL):细节捕捉能力下降 -
去掉掩码跨注意力(MCA):多人驱动时表情串台 -
去掉多人数据(MED):多人场景下性能显著下降
消融实验对比:无 MCA 时多人表情互相干扰
6. 安装与快速开始
6.1 环境准备
git clone https://github.com/Fantasy-AMAP/fantasy-portrait.git
cd fantasy-portrait
apt-get install ffmpeg
pip install -r requirements.txt
pip install flash_attn
6.2 数据集下载
6.3 模型下载
pip install "huggingface_hub[cli]"
huggingface-cli download Wan-AI/Wan2.1-I2V-14B-720P --local-dir ./models/Wan2.1-I2V-14B-720P
huggingface-cli download acvlab/FantasyPortrait --local-dir ./models
6.4 推理脚本
bash infer_single.sh # 单人
bash infer_multi.sh # 多人(同一驱动)
bash infer_multi_diff.sh # 多人(不同驱动)
7. 性能表现
torch_dtype |
持久参数 | 推理速度 | 显存需求 |
---|---|---|---|
torch.bfloat16 | 无限制 | 15.5秒/迭代 | 40G |
torch.bfloat16 | 7B | 32.8秒/迭代 | 20G |
torch.bfloat16 | 0 | 42.6秒/迭代 | 5G |
8. FAQ
Q1:最低显存要求是多少?
A:5G 显存即可运行,但速度较慢。
Q2:跨性别、跨年龄驱动效果好吗?
A:隐式特征与身份无关,跨身份驱动依然自然。
Q3:多人表情会不会混乱?
A:掩码跨注意力可有效隔离不同角色特征。
9. 总结与展望
FantasyPortrait 带来了两个重大突破:
-
表情增强隐式控制:精准捕捉细节情绪 -
掩码跨注意力:高质量的多人表情生成
未来方向:
-
加速推理以适应实时应用 -
加强技术防滥用的检测机制