faceswap-pro-docker / Dockerfile
vadim71's picture
Update Dockerfile
56cf22e verified
FROM python:3.10-slim
ENV DEBIAN_FRONTEND=noninteractive \
PIP_NO_CACHE_DIR=1 \
PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
HF_HUB_DISABLE_TELEMETRY=1 \
HF_HUB_ENABLE_HF_TRANSFER=0
WORKDIR /app
# + build tools because insightface may compile on this platform
RUN apt-get update && apt-get install -y --no-install-recommends \
git ffmpeg \
libgl1 libsm6 libxext6 \
build-essential \
gcc g++ \
cmake \
pkg-config \
python3-dev \
&& rm -rf /var/lib/apt/lists/*
COPY requirements-full.txt /app/requirements-full.txt
# Important: upgrade build tooling first
RUN pip install --upgrade pip setuptools wheel
RUN pip install -r /app/requirements-full.txt
COPY . /app
# Download InsightFace buffalo_l ONNX files from HF DATASET (files in dataset root)
RUN python - << 'PY'
import os, shutil
from huggingface_hub import snapshot_download
repo_id = "vadim71/faceswap-models"
print("[INFO] Downloading InsightFace buffalo_l files from dataset:", repo_id)
local_dir = "/tmp/buffalo_l_download"
needed = ["1k3d68.onnx","2d106det.onnx","det_10g.onnx","genderage.onnx","w600k_r50.onnx"]
snapshot_download(
repo_id=repo_id,
repo_type="dataset",
allow_patterns=needed,
local_dir=local_dir,
local_dir_use_symlinks=False,
)
dst = "/root/.insightface/models/buffalo_l"
os.makedirs(dst, exist_ok=True)
for f in needed:
p = os.path.join(local_dir, f)
if not os.path.exists(p):
raise RuntimeError(f"Missing in dataset root: {f}")
shutil.copy2(p, os.path.join(dst, f))
print("[OK] buffalo_l copied to", dst)
PY
# Hard checks
RUN test -f /app/inswapper_128.onnx && \
test -f /app/GFPGANv1.3.pth && \
test -f /root/.insightface/models/buffalo_l/w600k_r50.onnx && \
test -f /root/.insightface/models/buffalo_l/det_10g.onnx
EXPOSE 7860
CMD ["python", "app.py"]