CentOS系统GeneFace++安装教程

AI技术
小华
2025-12-26

CentOS 7/8 部署 GeneFace++ 教程
一 环境准备与驱动

  • 安装基础编译工具与依赖
  • CentOS 7:sudo yum groupinstall -y "Development Tools"
  • CentOS 8:sudo dnf groupinstall -y "Development Tools"
  • 通用:sudo yum install -y epel-release cmake3 git wget pciutils
  • 升级 GCC(推荐 GCC 9+ 以兼容部分依赖)
  • 启用 SCL:sudo yum install -y centos-release-scl
  • 安装 devtoolset-9:sudo yum install -y devtoolset-9
  • 启用:echo "source /opt/rh/devtoolset-9/enable" >> ~/.bashrc && source ~/.bashrc
  • 安装 NVIDIA 驱动与 CUDA 11.7
  • 查看推荐驱动:nvidia-smi(如已装驱动可跳过安装)
  • 驱动安装(示例):sudo yum install -y nvidia-driver-latest-dkms
  • 安装 CUDA 11.7 Toolkit(runfile 或网络仓均可,示例 runfile)
  • wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
  • sudo sh cuda_11.7.0_515.43.04_linux.run
  • 安装时仅勾选 CUDA Toolkit(驱动已单独安装)
  • 配置环境变量(写入 ~/.bashrc)
  • export PATH="/usr/local/cuda-11.7/bin:$PATH"
  • export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.7/lib64
  • export CUDA_HOME=/usr/local/cuda-11.7
  • 验证:nvcc --version 应显示 11.7;nvidia-smi 可见驱动与 CUDA 11.7
  • 安装 Anaconda(Python 3.9 环境)
  • wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh
  • bash Anaconda3-2024.02-1-Linux-x86_64.sh(按提示完成)
  • 建议重启 shell 或 source ~/.bashrc 后使用 conda

二 创建 Conda 环境并安装依赖

  • 创建环境
  • conda create -n geneface python=3.9
  • conda activate geneface
  • 安装 PyTorch 2.0.1 + cu117(官方推荐组合)
  • conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
  • 安装 ffmpeg(含 libx264,便于 mp4 编解码)
  • conda install -c conda-forge ffmpeg
  • 安装 PyTorch3D(源码)
  • 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
  • 安装系统音频依赖(用于音频处理/可视化等)
  • sudo yum install -y alsa-lib-devel portaudio-devel
  • 安装项目其余依赖
  • 进入项目根目录(GeneFacePlusPlus):pip install -r docs/prepare_env/requirements.txt -v
  • 构建扩展(若项目提供)
  • bash docs/prepare_env/install_ext.sh
  • 说明
  • 本教程采用 CUDA 11.7 + PyTorch 2.0.1 的组合;社区经验表明 PyTorch 2.1 + CUDA 12.x 可能导致部分子模块(如 torch-ngp)报错,建议保持一致

三 数据准备与预处理

  • 准备视频
  • 建议时长 3–5 分钟、画面清晰、尽量为 512×512、人物正面、背景简洁
  • 导出音频为 16 kHz WAV:ffmpeg -i data/raw/videos/${VIDEO_ID}.mp4 -f wav -ar 16000 data/processed/videos/${VIDEO_ID}/aud.wav
  • 提取音频特征(HuBERT、Mel、F0 等)
  • 设置镜像加速(可选):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}
  • 提取视频帧与分割
  • ffmpeg -i data/raw/videos/${VIDEO_ID}.mp4 -vf fps=25,scale=w=512:h=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
  • 提取 2D 关键点
  • python data_gen/utils/process_video/extract_lm2d.py --ds_name=nerf --vid_dir=data/raw/videos/${VIDEO_ID}.mp4
  • 拟合 3DMM
  • 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
  • 数据二值化(Binarize)
  • python data_gen/runs/binarizer_nerf.py --video_id=${VIDEO_ID}

四 训练与推理

  • 训练 Head NeRF
  • 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 NeRF(需先得到 head 权重)
  • 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/your.wav \
--out_name=geneface_demo.mp4

  • 训练时长与步数
  • 官方/社区教程常见示例为 5 万步 起步;若效果欠佳,可继续训练至 15 万步 再生成对比效果

五 常见问题与排错

  • 版本不兼容
  • 优先使用 PyTorch 2.0.1 + CUDA 11.7PyTorch 2.1 + CUDA 12.x 在社区中曾引发 torch-ngp 相关错误
  • 构建/编译失败
  • 确认已启用 devtoolset-9(gcc/g++ 版本足够新)
  • 确认 CUDA_HOME、PATH、LD_LIBRARY_PATH 指向 cuda-11.7
  • 音频/视频工具缺失
  • 确保已安装 ffmpeg(含 libx264)、alsa-lib-develportaudio-devel
  • 数据预处理报错
  • 常见如背景图缺失(bg.jpg not found):检查 extract_segment_imgs.py 是否成功生成背景;必要时清理并重跑该步骤
  • 训练中断或 OOM
  • 降低 batch size/分辨率、减少并发进程;长音频推理可分片生成后拼接
  • 预训练权重路径
  • 推理前确认 audio2motion_vaemotion2video_nerf 的权重路径与文件名正确
亿速云提供售前/售后服务

售前业务咨询

售后技术保障

400-100-2938

7*24小时售后电话

官方微信小程序