CentOS中GeneFace++安装攻略

AI技术
小华
2025-12-26

CentOS 7/8 部署 GeneFace++ 安装攻略
一 环境准备与驱动

  • 建议使用 NVIDIA 驱动 ≥ 515CUDA 11.7Python 3.9PyTorch 2.0.1+cu117。驱动与 CUDA 安装完成后,执行 nvidia-sminvcc --version 验证版本与可用性。
  • 升级基础编译链与多媒体依赖(CentOS 7 强烈建议启用 SCL 获取较新 GCC):
  • 安装工具链与依赖
  • sudo yum groupinstall -y "Development Tools"
  • sudo yum install -y epel-release
  • sudo yum install -y cmake3 git wget pciutils htop
  • 可选:启用较新 GCC(示例为 devtoolset-9)
  • sudo yum install -y centos-release-scl
  • sudo yum install -y devtoolset-9
  • echo "source /opt/rh/devtoolset-9/enable" >> ~/.bashrc && source ~/.bashrc
  • 安装 FFmpeg(含 x264,用于音视频处理)
  • 推荐 conda 安装以避免系统库冲突:conda install -c conda-forge ffmpeg
  • 说明:GeneFace++ 官方流程在 Ubuntu 上常见搭配为 CUDA 11.7 + PyTorch 2.0.1;在 CentOS 上保持相同版本组合可获得最高兼容性。

二 创建 Conda 环境并安装 Python 依赖

  • 创建隔离环境
  • conda create -n geneface python=3.9 -y
  • conda activate geneface
  • 安装 PyTorch 与多媒体基础
  • conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
  • conda install -c conda-forge ffmpeg
  • 安装 PyTorch3D(源码方式,适配 CUDA 11.7)
  • pip install "git+https://github.com/facebookresearch/pytorch3d.git@stable"
  • 安装 MMCV(openmim)
  • pip install cython openmim==0.3.9
  • mim install mmcv==2.1.0
  • 安装项目其余依赖
  • pip install -r docs/prepare_env/requirements.txt -v
  • 验证关键点
  • python -c "import torch; print(torch.__version__, torch.cuda.is_available())"
  • python -c "import pytorch3d; print(pytorch3d.__version__)"
  • ffmpeg -version(应能看到 h264 支持)

三 构建扩展与常见报错处理

  • 构建项目扩展
  • bash docs/prepare_env/install_ext.sh
  • 常见报错与修复
  • ModuleNotFoundError: No module named 'torch_ngp' / 构建 torch-ngp 失败:确保已安装匹配版本的 CUDA 11.7PyTorch 2.0.1,并使用支持 CUDA 的 PyTorch 构建;必要时清理缓存后重试:pip cache purge && pip install -r docs/prepare_env/requirements.txt -v
  • 报错含 “rsync”:安装 rsync(CentOS 常见缺失)
  • sudo yum install -y rsync
  • 训练 torso 时报错(社区已知问题):按项目 issue 说明修改相应文件(如 egs_bases/radn 相关配置或脚本),参考:https://github.com/yerfor/GeneFacePlusPlus/issues/122
  • 音频/视频处理报错(缺少系统库):安装 portaudio 与 alsa 开发库
  • sudo yum install -y portaudio-devel alsa-lib-devel
  • 构建扩展时提示缺少 gcc/编译工具:确认已安装 Development Tools 与(如用 SCL)已 source /opt/rh/devtoolset-9/enable

四 快速验证与最小数据集流程

  • 准备数据与目录
  • 设定视频 ID:export VIDEO_ID=s1
  • 将原始视频放入:data/raw/videos/${VIDEO_ID}.mp4
  • 视频预处理(25 FPS、512×512)
  • ffmpeg -i data/raw/videos/${VIDEO_ID}.mp4 -vf fps=25,scale=512:512 -qmin 1 -q:v 1 data/raw/videos/${VIDEO_ID}_512.mp4
  • mv data/raw/videos/${VIDEO_ID}.mp4 data/raw/videos/${VIDEO_ID}_to_rm.mp4
  • mv data/raw/videos/${VIDEO_ID}_512.mp4 data/raw/videos/${VIDEO_ID}.mp4
  • 音频特征与图像帧
  • ffmpeg -i data/raw/videos/${VIDEO_ID}.mp4 -f wav -ar 16000 data/processed/videos/${VIDEO_ID}/aud.wav
  • 可选加速 HF 下载:export HF_ENDPOINT=https://hf-mirror.com
  • python data_gen/utils/process_audio/extract_hubert.py --video_id=${VIDEO_ID}
  • python data_gen/utils/process_audio/extract_mel_f0.py --video_id=${VIDEO_ID}
  • mkdir -p data/processed/videos/${VIDEO_ID}/gt_imgs
  • ffmpeg -i data/raw/videos/${VIDEO_ID}.mp4 -vf fps=25,scale=512:512 -qmin 1 -q:v 1 -start_number 0 data/processed/videos/${VIDEO_ID}/gt_imgs/%08d.jpg
  • python data_gen/utils/process_video/extract_segment_imgs.py --ds_name=nerf --vid_dir=data/raw/videos/${VIDEO_ID}.mp4 --force_single_process
  • 关键点与 3DMM
  • python data_gen/utils/process_video/extract_lm2d.py --ds_name=nerf --vid_dir=data/raw/videos/${VIDEO_ID}.mp4
  • python data_gen/utils/process_video/fit_3dmm_landmark.py --ds_name=nerf --vid_dir=data/raw/videos/${VIDEO_ID}.mp4 --reset --debug --id_mode=global
  • python data_gen/runs/binarizer_nerf.py --video_id=${VIDEO_ID}
  • 训练(示例)
  • 训练 Head:CUDA_VISIBLE_DEVICES=0 python tasks/run.py --config=egs/datasets/${VIDEO_ID}/lm3d_radnerf_sr.yaml --exp_name=motion2video_nerf/${VIDEO_ID}_head --reset
  • 训练 Torso(如报错按第四节修复):CUDA_VISIBLE_DEVICES=0 python tasks/run.py --config=egs/datasets/${VIDEO_ID}/lm3d_radnerf_torso_sr.yaml --exp_name=motion2video_nerf/${VIDEO_ID}_torso --hparams=head_model_dir=checkpoints/motion2video_nerf/${VIDEO_ID}_head --reset

五 推理与常见问题速查

  • 推理示例(确保相应权重已就位)
  • python inference/genefacepp_infer.py \

--a2m_ckpt=checkpoints/audio2motion_vae \
--head_ckpt=checkpoints/motion2video_nerf/${VIDEO_ID}_head \
--torso_ckpt=checkpoints/motion2video_nerf/${VIDEO_ID}_torso \
--drv_aud=data/raw/val_wavs/MacronSpeech.wav \
--out_name=${VIDEO_ID}_demo.mp4

  • 常见问题速查
  • 依赖冲突/安装缓慢:优先使用 conda 管理 PyTorch 与 ffmpeg,pip 安装其余依赖;必要时指定镜像源或升级 pip。
  • 数据集/权重路径错误:核对 --a2m_ckpt、--head_ckpt、--torso_ckpt 与 --drv_aud 路径是否存在且可读。
  • 训练中断或显存不足:降低 batch 相关参数、减少并发进程,或仅训练 head 后再训练 torso。
  • 构建扩展失败:确认 CUDA、驱动、PyTorch 版本一致,清理缓存后重试;如仍失败,查看报错末尾的编译命令并补齐缺失的系统库。
亿速云提供售前/售后服务

售前业务咨询

售后技术保障

400-100-2938

7*24小时售后电话

官方微信小程序