在 CentOS 上安装 GeneFace++ 的可行方案
一 前置条件与环境规划
- 硬件与驱动:准备支持 CUDA 的 NVIDIA GPU,安装与之匹配的 NVIDIA 驱动;GeneFace++ 社区实践以 CUDA 11.7 为主,且不建议使用 CUDA 12+。如需确认驱动与 CUDA 的适配,可先查看 nvidia-smi 输出与 CUDA 兼容性矩阵。
- 软件栈:建议使用 CentOS 7/8 搭配 Anaconda/Miniconda 管理 Python 环境;Python 版本推荐 3.9。
- 基础工具:安装 git、wget、gcc/g++、make、cmake 等编译工具,后续用于 PyTorch3D、MMCV 等源码构建。
- 说明:GeneFace++ 官方/社区教程以 Ubuntu 为主,CentOS 下以相同软件版本与环境变量思路进行等价部署,遇到构建失败多为依赖或驱动版本不匹配所致。
二 安装步骤
1) 安装驱动与 CUDA 11.7
- 驱动:通过 ELRepo 或 NVIDIA 官方 runfile 安装与 CUDA 11.7 匹配的驱动(确保 nvidia-smi 可见且版本满足要求)。
- CUDA Toolkit:安装 CUDA 11.7 Toolkit(仅 Toolkit,不覆盖驱动),并将路径加入环境变量:
- 建议路径:/usr/local/cuda-11.7
- 在 ~/.bashrc 或 /etc/profile.d/cuda.sh 中添加:
- export PATH=/usr/local/cuda-11.7/bin:$PATH
- export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH
- 可选:export CUDA_HOME=/usr/local/cuda-11.7
- 验证:执行
nvcc --version 应显示 11.7;nvidia-smi 显示的 CUDA 版本可不同(为驱动支持的最高 CUDA),以 nvcc 为准。
2) 创建 Conda 环境并安装基础依赖
- 创建环境:
- conda create -n geneface python=3.9
- conda activate geneface
- FFmpeg:
- conda install -c conda-forge ffmpeg(建议包含 libx264 编解码器,便于 mp4 导出)
3) 安装 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
- 注意:社区经验表明 torch 2.1 + CUDA 12.1 可能导致下游组件(如 torch-ngp)报错,优先使用 2.0.1 + cu117。
4) 安装 PyTorch3D(源码)
5) 安装 MMCV 2.1(通过 MIM)
- pip install cython
- pip install openmim==0.3.9
- mim install mmcv==2.1.0
- 若网络不稳,可使用国内镜像源加速安装。
6) 安装系统音频依赖与项目其余 Python 依赖
- 系统依赖(CentOS 7/8 常见包名):
- yum install -y alsa-lib-devel portaudio-devel
- 项目依赖:
- 进入项目根目录,执行:pip install -r docs/prepare_env/requirements.txt
- 若 requirements.txt 中涉及 torch-ngp 等组件,请保持 CUDA 11.7 + torch 2.0.1 的组合以避免兼容性问题。
三 运行验证与常见问题
- 验证步骤
- 运行官方提供的 Demo(项目 README / docs 中有说明),检查是否能正常加载模型、合成视频与音频对齐。
- 若 Demo 依赖预训练模型或 3DMM 资源(如 BFM2009),按项目文档下载并放置到指定目录后再运行。
- 常见问题与处理
- 版本不兼容:出现与 torch-ngp 相关的报错时,优先回退到 torch 2.0.1 + CUDA 11.7;避免使用 CUDA 12+。
- 构建失败:PyTorch3D/MMCV 编译慢或超时,优先使用镜像源、升级 gcc/cmake、确保 CUDA 路径正确。
- 音频/视频设备:如无音频输入设备,可先以文件方式运行 Demo;确保 ffmpeg 包含 libx264 以支持 H.264 编码。
- 显存不足:减小 batch size 或分辨率,关闭不必要的后台进程,优先在 V100/A100/3090 等显存充足的卡上运行。
四 补充建议
- 容器化部署:为规避 CentOS 与驱动/编译链差异,可考虑在 Ubuntu 20.04/22.04 + CUDA 11.7 的 Docker 镜像中构建与运行,再挂载数据卷与模型目录。
- 国内加速:pip/conda 安装时优先使用 清华 TUNA 等镜像源;长时间构建建议配置代理或离线缓存。
- 文档参考:优先查阅项目目录 docs/prepare_env/install_guide-zh.md 与社区实战文章,获取最新依赖与踩坑记录。