JoyGen:用音频生成3D说话人脸视频,快速生成逼真的唇部同步视频

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


大家好,我是蚝油菜花,今天跟大家分享一下 JoyGen 这个由京东和香港大学联合推出的音频驱动的3D说话人脸视频生成框架。

🚀 快速阅读

JoyGen 是一个创新的3D说话人脸视频生成框架。

  1. 核心功能:支持多语言、高质量视觉效果和精确的唇部与音频同步。
  2. 技术原理:结合音频特征和面部深度图,驱动唇部运动的生成,并使用单步UNet架构进行高效的视频编辑。

JoyGen 是什么

JoyGen

JoyGen 是京东科技和香港大学联合推出的一款音频驱动的3D说话人脸视频生成框架。它专注于实现精确的唇部与音频同步及高质量的视觉效果。通过结合音频特征和面部深度图,JoyGen 能够生成逼真的唇部运动,使用单步UNet架构进行高效的视频编辑。

在训练过程中,JoyGen 使用包含130小时中文视频的高质量数据集,并在开源的HDTF数据集上验证其优越性能。实验结果表明,JoyGen 在唇部与音频同步和视觉质量方面均达到行业领先水平,为说话人脸视频编辑领域提供了新的技术解决方案。

JoyGen 的主要功能

  • 唇部与音频同步:基于音频驱动的唇部运动生成技术,确保视频中人物的唇部动作与音频内容精准对应。
  • 高质量视觉效果:生成的视频具有逼真的视觉效果,包括自然的面部表情和清晰的唇部细节。
  • 视频编辑与优化:在现有视频的基础上进行唇部运动的编辑和优化,无需重新生成整个视频。
  • 多语言支持:支持中文和英文等不同语言的视频生成,适应多种应用场景。

JoyGen 的技术原理

  • 第一阶段:音频驱动的唇部运动生成

    • 3D重建模型:从输入的面部图像中提取身份系数,用于描述人物的面部特征。
    • 音频到运动模型:将音频信号转换为表情系数,控制唇部的运动。
    • 深度图生成:结合身份系数和表情系数生成面部的3D网格,基于可微渲染技术生成面部深度图,用于后续的视频合成。
  • 第二阶段:视觉外观合成

    • 单步UNet架构:用单步UNet网络将音频特征和深度图信息整合到视频帧的生成过程中。UNet基于编码器将输入图像映射到低维潜在空间,结合音频特征和深度图信息进行唇部运动的生成。
    • 跨注意力机制:音频特征基于跨注意力机制与图像特征交互,确保生成的唇部运动与音频信号高度一致。
    • 解码与优化:生成的潜在表示基于解码器还原为图像空间,生成最终的视频帧。基于L1损失函数在潜在空间和像素空间进行优化,确保生成视频的高质量和同步性。

如何运行 JoyGen

1. 安装环境

创建 conda 环境并安装所需的依赖包:

conda create -n joygen python=3.8.19 ffmpeg
conda activate joygen
pip install -r requirements.txt

安装 Nvdiffrast 库:

git clone https://github.com/NVlabs/nvdiffrast
cd nvdiffrast
pip install .

下载预训练模型:

./pretrained_models/
├── BFM
│   ├── 01_MorphableModel.mat
│   └── ...
├── audio2motion
│   ├── 240210_real3dportrait_orig
│   │   └── audio2secc_vae
│   └── hubert
├── joygen
│   ├── config.json
│   └── diffusion_pytorch_model.safetensors
└── ...
2. 推理

运行推理脚本:

bash scripts/inference_pipeline.sh args1 args2 args3

逐步运行推理过程:

1. 获取音频驱动的面部表情系数:
python inference_audio2motion.py \
    --a2m_ckpt ./pretrained_models/audio2motion/240210_real3dportrait_orig/audio2secc_vae \
    --hubert_path ./pretrained_models/audio2motion/hubert \
    --drv_aud ./demo/xinwen_5s.mp3 \
    --seed 0 \
    --result_dir ./results/a2m \
    --exp_file xinwen_5s.npy
2. 渲染深度图帧:
python -u inference_edit_expression.py \
    --name face_recon_feat0.2_augment \
    --epoch=20 \
    --use_opengl False \
    --checkpoints_dir ./pretrained_models \
    --bfm_folder ./pretrained_models/BFM \
    --infer_video_path ./demo/example_5s.mp4 \
    --infer_exp_coeff_path ./results/a2m/xinwen_5s.npy \
    --infer_result_dir ./results/edit_expression
3. 生成面部动画:
CUDA_VISIBLE_DEIVCES=0 python -u inference_joygen.py \
 --unet_model_path pretrained_models/joygen \
 --vae_model_path pretrained_models/sd-vae-ft-mse \
 --intermediate_dir ./results/edit_expression \
 --audio_path demo/xinwen_5s.mp3 \
 --video_path demo/example_5s.mp4 \
 --enable_pose_driven \
 --result_dir results/talk \
 --img_size 256  \
 --gpu_id 0 \

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值