AI个人学习
和实操指南
讯飞绘镜

JoyGen:音频驱动的3D深度感知人像说话视频编辑工具

综合介绍

JoyGen是一个创新的两阶段说话人脸视频生成框架,专注于解决音频驱动的面部表情生成问题。该项目由京东科技团队开发,采用先进的3D重建技术和音频特征提取方法,能够准确捕捉说话人的身份特征和表情系数,实现高质量的唇形同步和视觉合成。JoyGen框架包含两个主要阶段:首先是基于音频的唇部运动生成,其次是视觉外观合成。通过整合音频特征和面部深度图,为精确的唇音同步提供全面的监督。该项目不仅支持中文和英文音频驱动,还提供了完整的训练和推理pipeline,是一个功能强大的开源工具。

JoyGen:音频驱动的3D深度感知人像说话视频编辑工具-1


 

功能列表

  • 音频驱动的3D面部表情生成和编辑
  • 精确的唇形-音频同步技术
  • 支持中文和英文音频输入
  • 3D深度感知的视觉合成
  • 面部身份特征保持功能
  • 高质量视频生成和编辑能力
  • 完整的训练和推理框架支持
  • 预训练模型支持快速部署
  • 支持自定义数据集训练
  • 提供详细的数据预处理工具

 

使用帮助

1. 环境配置

1.1 基础环境要求

  • 支持的GPU:V100, A800
  • Python版本:3.8.19
  • 系统依赖:ffmpeg

1.2 安装步骤

  1. 创建并激活conda环境:
conda create -n joygen python=3.8.19 ffmpeg
conda activate joygen
pip install -r requirements.txt
  1. 安装Nvdiffrast库:
git clone https://github.com/NVlabs/nvdiffrast
cd nvdiffrast
pip install .
  1. 下载预训练模型
    从提供的下载链接获取预训练模型,并按照指定目录结构放置在./pretrained_models/目录下。

2. 使用流程

2.1 推理过程

执行完整推理pipeline:

bash scripts/inference_pipeline.sh 音频文件 视频文件 结果目录

分步执行推理过程:

  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
  1. 使用新的表情系数逐帧渲染深度图:
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
  1. 基于音频特征和面部深度图生成面部动画:
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

2.2 训练过程

  1. 数据预处理:
python -u preprocess_dataset.py --checkpoints_dir ./pretrained_models --name face_recon_feat0.2_augment --epoch=20 --use_opengl False --bfm_folder ./pretrained_models/BFM --video_dir ./demo --result_dir ./results/preprocessed_dataset
  1. 检查预处理数据并生成训练列表:
python -u preprocess_dataset_extra.py data_dir
  1. 开始训练:
    修改config.yaml文件后执行:
accelerate launch --main_process_port 29501 --config_file config/accelerate_config.yaml train_joygen.py
未经允许不得转载:首席AI分享圈 » JoyGen:音频驱动的3D深度感知人像说话视频编辑工具
zh_CN简体中文