CentOS环境部署GeneFace++
一 环境准备与系统依赖
- 建议使用CentOS 7/8,提前准备NVIDIA驱动与CUDA 11.7(驱动版本需与CUDA匹配),并确认GPU可被识别(nvidia-smi)。
- 安装基础工具与编译链:
- sudo yum update -y
- sudo yum groupinstall -y "Development Tools"
- sudo yum install -y cmake python3 python3-devel libpng-devel libjpeg-devel libtiff-devel
- 创建并激活隔离环境(Python 3.9):
- conda create -n geneface python=3.9
- conda activate geneface
- 安装多媒体与音频依赖:
- conda install -c conda-forge ffmpeg(需包含libx264编解码器)
- 音频开发库(用于部分依赖):sudo yum install -y alsa-lib-devel portaudio-devel
- 说明:GeneFace++官方更推荐在Conda环境中部署,并通过项目提供的脚本来安装部分扩展(如torch-ngp)。
二 Python与深度学习依赖安装
- 安装PyTorch(CUDA 11.7):
- conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
- 经验表明,torch 2.1+ 可能与部分扩展(如torch-ngp)不兼容,优先使用2.0.1。
- 安装PyTorch3D(源码方式,稳定分支):
- pip install "git+https://github.com/facebookresearch/pytorch3d.git@stable"
- 安装MMCV(使用mim):
- pip install cython
- pip install openmim==0.3.9
- mim install mmcv==2.1
- 安装项目其余Python依赖:
- 在项目根目录执行:pip install -r requirements.txt
- 说明:上述版本组合已在实践文档中验证可用,能减少依赖冲突与构建失败。
三 编译扩展与项目设置
- 构建项目扩展(如torch-ngp等,按项目脚本执行):
- 进入项目目录:cd
- 执行安装脚本:bash docs/prepare_env/install_ext.sh
- 若构建失败,优先检查CUDA版本、gcc版本与网络(必要时设置代理),再重试。
- 设置Python路径(在项目根目录执行,使模块可被导入):
- export PYTHONPATH=$(pwd):$PYTHONPATH
- 说明:扩展构建是耗时步骤,建议在稳定网络与充足磁盘空间环境下进行。
四 数据与模型准备
- 3DMM模型(BFM2009):下载并解压后将文件放置到/deep_3drecon/BFM/,目录结构应包含如下列表:
- 01_MorphableModel.mat、BFM_exp_idx.mat、BFM_front_idx.mat、BFM_model_front.mat、Exp_Pca.bin、facemodel_info.mat、index_mp468_from_mesh35709.npy、mediapipe_in_bfm53201.npy、std_exp.*
- 预训练权重与示例音频:按项目说明下载audio2motion_vae、motion2video_nerf(如may_head、may_torso)等权重,以及示例音频文件,放置到相应目录(如checkpoints/、data/raw/val_wavs/)。
- 说明:数据与权重路径在推理脚本中需与实际一致,缺失会导致运行报错。
五 推理验证与常见问题
- 推理验证(在项目根目录执行,路径按实际修改):
- python inference/genefacepp_infer.py \
--a2m_ckpt checkpoints/audio2motion_vae \
--head_ckpt checkpoints/motion2video_nerf/may_head \
--torso_ckpt checkpoints/motion2video_nerf/may_torso \
--drv_aud data/raw/val_wavs/example.wav \
--out_name demo_output.mp4
- 常见问题与处理:
- 构建扩展失败:确认CUDA 11.7、驱动匹配,gcc版本合规;必要时使用代理或重试install_ext.sh。
- 版本不兼容:优先使用PyTorch 2.0.1 + CUDA 11.7;torch 2.1+可能导致torch-ngp错误。
- FFmpeg报错:确保ffmpeg包含libx264编解码器(conda-forge渠道)。
- 模块导入失败:确认已执行export PYTHONPATH=$(pwd):$PYTHONPATH。
- 音频设备相关报错:安装alsa-lib-devel、portaudio-devel后重试。
- 说明:若遇到其他依赖冲突,建议新建干净conda环境,并严格按上述版本安装。