Ubuntu部署GeneFace++配置指南
一 环境要求与版本选择
- 操作系统与硬件
- 推荐:Ubuntu 22.04/20.04
- GPU:NVIDIA显卡(如 V100/A100/RTX 3090 等),显存建议≥8GB
- 存储:至少20GB可用空间(数据与权重较大)
- CUDA与驱动
- 推荐:CUDA 11.7(项目已在 V100/A100 上验证;不建议 CUDA 12+)
- 驱动:确保 nvidia-smi 可见且版本匹配
- Python与深度学习栈
- Python:3.9
- PyTorch:优先 2.0.1 + cu117(已验证稳定;torch 2.1 + cu121 在部分扩展如 torch-ngp 会报错)
- 其他:ffmpeg(含 libx264)、PyTorch3D、MMCV 2.1.0、系统依赖 libasound2-dev、portaudio19-dev
- 说明
- 社区亦有 CUDA 11.3 + PyTorch 1.11 的配置记录,但更推荐 CUDA 11.7 + PyTorch 2.0.1 的组合以获得更好的兼容性与速度。
二 本机部署步骤
- 1)安装 CUDA 11.7 并配置环境变量
- 下载并安装 CUDA 11.7(示例为 Ubuntu 22.04):
- wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
- sudo dpkg -i cuda-keyring*.deb
- sudo apt-get update
- sudo apt-get -y install cuda=11.7.1-1
- 配置环境变量(~/.bashrc 或当前 shell):
- export CUDA_PATH_11=/usr/local/cuda-11.7
- export PATH=${CUDA_PATH_11}/bin${PATH:+:${PATH}}
- export LD_LIBRARY_PATH=${CUDA_PATH_11}/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
- 验证:nvcc --version 应显示 11.7
- 2)创建 Conda 环境并安装依赖
- conda create -n geneface python=3.9 -y
- 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 -y
- 安装 ffmpeg(含 x264):conda install conda-forge::ffmpeg -y
- 安装 PyTorch3D(源码):pip install "git+https://github.com/facebookresearch/pytorch3d.git@stable"
- 安装 MMCV 2.1.0(mim):
- pip install cython -i https://mirrors.aliyun.com/pypi/simple
- pip install openmim==0.3.9 -i https://mirrors.aliyun.com/pypi/simple
- mim install mmcv==2.1.0
- 系统依赖:sudo apt-get install libasound2-dev portaudio19-dev -y
- 项目依赖:pip install -r docs/prepare_env/requirements.txt -i https://mirrors.aliyun.com/pypi/simple
- 3)构建自定义 CUDA 扩展
- bash docs/prepare_env/install_ext.sh
- 4)准备 3DMM 模型与权重(用于人脸重建)
- 将 BFM2009 的 01_MorphableModel.mat、Exp_Pca.bin、BFM_model_front.mat 放到 deep_3drecon/BFM/
- 将 facerecon 预训练权重 epoch_20.pth 放到 deep_3drecon/checkpoints/facerecon/
- 生成跟踪文件:
- cd data_util/face_tracking
- python convert_BFM.py
- 5)环境验证
- 测试 3D 重建:
- export PYTHONPATH=./
- CUDA_VISIBLE_DEVICES=0 python deep_3drecon/test.py
- 生成 GeneFace 所需重建器配置:
- python deep_3drecon/generate_reconstructor_opt_for_geneface.py
三 Docker部署简要
- 运行容器并映射端口(示例):
- sudo docker run -p 8000:8000 -it --name ubuntu_conda117 --privileged=true ubuntu:latest /bin/bash
- 拷贝本机 CUDA 11.7 到容器并配置环境变量(同上)
- 拷贝项目代码到容器(或直接在容器内 git clone)
- 在容器内执行“二、2)安装依赖”与“二、3)构建扩展”的步骤
- 注意:首次建议在本机跑通流程,再迁移到容器以减少依赖冲突与路径问题。
四 数据预处理与训练推理
- 数据预处理
- 按 docs/process_data/guide-zh.md 准备个性化视频,生成二进制 .npy 数据文件(首次建议逐步执行,后续可用同目录 bash run.sh ${VIDEO_ID} 一键化)
- 训练与推理
- 训练:按 docs/train_and_infer/guide-zh.md 执行;训练时长取决于数据与步数(示例平台默认 50000 步,通常需≥2小时)
- 推理(命令行):
- python inference/genefacepp.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/MacronSpeech.wav \
--out_name may_demo.mp4
- WebUI(Gradio):
- export PYTHONPATH=./
- python inference/app_genefacepp.py
- 访问控制台输出的 https://0.0.0.0:8080 地址(部分平台需实名认证后使用 API 地址访问)。
五 常见问题与排查
- 版本不兼容
- 出现如 torch-ngp 报错时,优先回退到 PyTorch 2.0.1 + cu117;避免 torch 2.1 + cu121 组合
- 依赖安装失败
- 使用国内镜像源(如 -i https://mirrors.aliyun.com/pypi/simple),分步安装(先 cython、mim,再 mmcv)
- 3DMM/重建报错
- 核对 BFM 相关模型文件与路径是否正确;确认已执行 convert_BFM.py 生成 3DMM_info.npy
- 推理找不到权重
- 检查 --a2m_ckpt / --head_ckpt / --torso_ckpt 路径是否为目录或具体 .ckpt 文件,且相对/绝对路径无误
- CUDA 不可用
- 确认 nvcc --version 与 nvidia-smi 输出匹配 CUDA 11.7,并检查 LD_LIBRARY_PATH 包含 /usr/local/cuda-11.7/lib64。