站点图标 高效码农

用一张照片秒变动态表情!阿里巴巴新算法FantasyPortrait刷新行业认知


FantasyPortrait:基于表情增强扩散变换器的多角色肖像动画生成新突破

用一张照片和一段视频,就能让单人或多人的肖像动起来,而且细节丰富、情绪自然、跨身份依然精准。


1. 背景与挑战

在电影制作、虚拟通信、游戏建模等领域,将静态的肖像图像转换成带有真实表情和动作的视频,一直是一个充满挑战的任务。

过去的方法大多依赖显式的几何先验,比如:

  • 人脸关键点(Facial Landmarks)
  • 三维可变形模型(3D Morphable Model, 3DMM)

这些方法虽然直观,但在实际使用中存在两大问题:


传统方法在跨身份驱动中容易失真,对比可见左侧效果失真明显,右侧为 FantasyPortrait


2. FantasyPortrait 的解决方案

由阿里巴巴与北京邮电大学团队提出的 FantasyPortrait,在解决上述问题上带来了两项核心创新:

  1. 表情增强隐式控制(Expression-Augmented Implicit Control)
    不再依赖关键点或 3D 模型等显式特征,而是直接从视频中提取与身份无关的隐式表情特征,再通过表情增强模块对嘴唇和情绪这两类复杂动作进行精细建模。

  2. 掩码跨注意力机制(Masked Cross-Attention, MCA)
    针对多人场景,将每个人的运动特征进行掩码分离,在潜空间中独立控制,同时保持多角色之间的时间同步与协调,从而避免特征混淆。


单人驱动示例(左)和多人驱动示例(右)


3. 技术原理详解

3.1 架构概览

FantasyPortrait 基于 潜空间扩散模型(Latent Diffusion Model, LDM)视频扩散变换器(Video Diffusion Transformer, DiT)

其工作流程如下:

  1. 输入:

    • 肖像图像:静态人脸
    • 驱动视频:包含表情变化和头部动作
  2. 特征提取:

    • 检测并对齐人脸区域
    • 提取嘴部动作(elip)、眼部动作(eeye)、头部姿态(ehead)、情绪(eemo)等隐式特征
  3. 表情增强:

    • 对嘴唇与情绪特征进行细粒度分解
    • 通过跨注意力机制捕捉与视频 Token 的局部语义关系
  4. 特征融合:

    • 将增强后的运动特征与肖像图像的潜向量融合
  5. 视频生成:

    • 在潜空间中反向扩散生成动画帧
    • 解码还原为视频输出


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
  • 处理流程:

    1. 人物筛选:用 YOLOv8 检测视频中人物数量,保留两人及以上的片段
    2. 质量过滤:去掉模糊、低质量、有明显伪影的视频
    3. 表情挑选:用 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 带来了两个重大突破:

  1. 表情增强隐式控制:精准捕捉细节情绪
  2. 掩码跨注意力:高质量的多人表情生成

未来方向:

  • 加速推理以适应实时应用
  • 加强技术防滥用的检测机制

退出移动版