CentOS云服务器部署 GeneFace++ 教程
一 环境准备
- 实例与驱动
- 建议使用带 NVIDIA GPU 的实例(如 A10/V100 等),安装与驱动匹配的 CUDA 11.7 与 cuDNN,并确认 nvidia-smi 正常显示 GPU 与驱动版本。
- 系统建议 CentOS 7/8(x86_64),已安装 EPEL 与基础编译工具(如 gcc、make、cmake)。
- 基础工具
- 安装 Miniconda/Anaconda(Python 3.9 环境),后续所有依赖均在该环境中安装,避免与系统 Python 冲突。
- 安装 FFmpeg(含 libx264 编码器),用于音视频编解码与图像转视频。
- 安装音频依赖(后续 pip 安装会用到):PortAudio 开发库与 ALSA 库,用于音频采集/播放与依赖编译。
二 安装步骤
- 创建并激活 Conda 环境
- conda create -n geneface python=3.9
- conda activate geneface
- 安装 FFmpeg(含 libx264)
- conda install -c conda-forge ffmpeg
- 安装 PyTorch 2.0.1 + CUDA 11.7(避免 2.1+ 以免与部分扩展不兼容)
- conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
- 安装 PyTorch3D(从源码)
- 安装 MMCV 2.1(通过 OpenMIM)
- pip install cython
- pip install openmim==0.3.9
- mim install mmcv==2.1.0
- 安装系统音频依赖(CentOS)
- sudo yum install -y portaudio19-devel alsa-lib-devel
- 安装项目 Python 依赖
- pip install -r docs/prepare_env/requirements.txt -v
- 构建扩展(包含 torch-ngp 等)
- bash docs/prepare_env/install_ext.sh
- 验证关键包版本
- python -c "import torch; print('torch:', torch.__version__, 'cuda:', torch.version.cuda)"
- python -c "import pytorch3d; print('pytorch3d imported')"
- python -c "import mmcv; print('mmcv:', mmcv.__version__)"
三 数据与模型准备
- 3DMM 模型 BFM2009
- 下载并解压后将 8 个文件放置到 /deep_3drecon/BFM/,目录结构示例:
- 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.txt
- 示例数据与推理素材
- 下载预处理数据 trainval_dataset.npy(示例人物 May),放置到 data/binary/videos/May/trainval_dataset.npy。
- 准备驱动音频(英文示例:data/raw/val_wavs/MacronSpeech.wav),或替换为你的 .wav 文件。
四 推理与 WebUI
- 命令行推理(生成视频)
- 在项目根目录执行(注意设置 PYTHONPATH):
- export PYTHONPATH=./
- python inference/genefacepp_infer.py \
--a2m_ckpt=checkpoints/audio2motion_vae \
--head_ckpt= \
--torso_ckpt=checkpoints/motion2video_nerf/may_torso \
--drv_aud=data/raw/val_wavs/MacronSpeech.wav \
--out_name=may_demo.mp4
- Gradio WebUI(局域网访问)
- 启动服务:
- export PYTHONPATH=./
- python inference/app_genefacepp.py \
--a2m_ckpt=checkpoints/audio2motion_vae \
--head_ckpt= \
--torso_ckpt=checkpoints/motion2video_nerf/may_torso
- 服务器无公网 IP 时,可在代码中将 server_name="0.0.0.0",并在云厂商安全组放行 7860 端口,使用浏览器访问 http://服务器IP:7860。
- 国内网络优化
- 在推理脚本开头加入(加速从 Hugging Face 下载预训练权重):
- import os; os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
- os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"
五 常见问题与排障
- 版本兼容
- 已验证 PyTorch 2.0.1 + CUDA 11.7 稳定;PyTorch 2.1 + CUDA 12.1 在部分环境会导致 torch-ngp 相关错误,建议回退到 2.0.1。
- 构建扩展失败
- 多数为网络超时或依赖缺失:重试安装、配置镜像源;确保已安装 gcc/g++/cmake,并满足 PyTorch、CUDA 与 驱动 版本匹配。
- 音频依赖报错
- 若出现与 portaudio 相关的编译错误,确认已安装 portaudio19-devel 与 alsa-lib-devel,再重新 pip 安装依赖。
- FFmpeg 编解码问题
- 推理/数据预处理需要 libx264 编码器,使用 conda-forge 的 FFmpeg 可避免缺失编解码器的问题。
- 权限与路径
- 若从云盘或外部存储下载模型数据,注意目录权限(建议 chmod -R 755 项目目录),并确保 PYTHONPATH=./ 指向项目根目录。