在 CentOS 上安装 GeneFace++ 的可行方案
一 前置条件与系统准备
上述准备可参考在 CentOS 上部署 C/C++ 应用与框架的通用做法,以及 GeneFace++ 官方给出的环境组合(Python 3.9 + PyTorch 2.0.1 + CUDA 11.7 + ffmpeg)。
二 安装步骤
sudo yum groupinstall -y "Development Tools"
sudo yum install -y cmake git ffmpeg ffmpeg-devel
sudo yum install -y centos-release-scl-rh centos-release-scl
sudo yum install -y devtoolset-7
echo "source /opt/rh/devtoolset-7/enable" >> ~/.bashrc && source ~/.bashrc
conda create -n geneface python=3.9 -y
conda activate geneface
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
pip install "git+https://github.com/facebookresearch/pytorch3d.git@stable"
pip install cython openmim==0.3.9
mim install mmcv==2.1.0
git clone https://github.com/yerfor/GeneFacePlusPlus.git
cd GeneFacePlusPlus
pip install -r docs/prepare_env/requirements.txt -v
bash docs/prepare_env/install_ext.sh
以上版本与命令组合已在同类 Linux 环境中验证可用;如遇网络问题,可使用国内镜像源加速安装。
三 运行与验证
ffmpeg -i data/raw/videos/${VIDEO_ID}.mp4 -vf fps=25,scale=w=512:h=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
export HF_ENDPOINT=https://hf-mirror.com # 可选:使用镜像加速 HuggingFace 模型下载
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=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
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}
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
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
上述流程与命令与官方教程一致,适用于在 CentOS 完成端到端的数据准备、训练与推理。
四 常见问题与处理
以上问题在同类环境中较为常见,按对应措施处理即可恢复流程。