CentOS 容器化部署 GeneFace++ 指南
一 环境规划与准备
二 构建镜像 Dockerfile
# 阶段一:CPU 版本
FROM ubuntu:22.04 AS geneface-cpu
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential cmake git wget ca-certificates \
python3 python3-dev python3-pip ffmpeg libsm6 libxext6 && \
rm -rf /var/lib/apt/lists/*
RUN ln -s /usr/bin/python3 /usr/bin/python
# 建议先 conda 安装以锁定版本
RUN wget -O /tmp/miniconda.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \
&& bash /tmp/miniconda.sh -b -p /opt/conda \
&& rm /tmp/miniconda.sh
ENV PATH=/opt/conda/bin:$PATH
RUN conda create -n geneface python=3.9 -y && \
conda install -n geneface -c conda-forge ffmpeg -y
WORKDIR /opt/GeneFacePlusPlus
# 可选:提前克隆(也可在运行时挂载代码)
# RUN git clone https://github.com/yerfor/GeneFacePlusPlus.git .
# 阶段二:GPU 版本(CUDA 11.7)
FROM nvidia/cuda:11.7.1-devel-ubuntu20.04 AS geneface-gpu
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential cmake git wget ca-certificates \
python3 python3-dev python3-pip ffmpeg libsm6 libxext6 && \
rm -rf /var/lib/apt/lists/*
RUN ln -s /usr/bin/python3 /usr/bin/python
RUN wget -O /tmp/miniconda.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh \
&& bash /tmp/miniconda.sh -b -p /opt/conda \
&& rm /tmp/miniconda.sh
ENV PATH=/opt/conda/bin:$PATH
RUN conda create -n geneface python=3.9 -y && \
conda install -n geneface -c conda-forge ffmpeg -y
WORKDIR /opt/GeneFacePlusPlus
# 可选:提前克隆
# RUN git clone https://github.com/yerfor/GeneFacePlusPlus.git .三 运行容器与数据准备
docker run --gpus all -it --rm \
--name geneface-pp \
-p 8000:8000 \
-v /host/data:/data \
-v /host/GeneFacePlusPlus:/opt/GeneFacePlusPlus \
geneface-plusplus:gpu bashconda activate geneface
cd /opt/GeneFacePlusPlus
pip install -r requirements.txt
# 如项目文档另有说明,优先遵循其版本建议(例如部分教程推荐 torch==2.0.1+cu117)四 推理验证与常见问题
conda activate geneface
cd /opt/GeneFacePlusPlus
export PYTHONPATH=$(pwd):$PYTHONPATH
python inference/genefacepp_infer.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/example.wav \
--out_name /data/output/demo_output.mp4