53 lines
1.7 KiB
Bash
53 lines
1.7 KiB
Bash
#!/bin/bash
|
|
# Install FaceFusion 3.x for high-quality face+hair swap.
|
|
# Clones into ~/facefusion and creates a dedicated venv at ~/facefusion-venv.
|
|
# Usage: bash tour-comfy/install_facefusion.sh
|
|
set -e
|
|
|
|
FF_DIR="${FACEFUSION_DIR:-$HOME/facefusion}"
|
|
FF_VENV="${FACEFUSION_VENV:-$HOME/facefusion-venv}"
|
|
FF_REPO="https://github.com/facefusion/facefusion"
|
|
|
|
echo "[facefusion] Installing to $FF_DIR (venv: $FF_VENV)"
|
|
|
|
# 1. Clone or update
|
|
if [ -d "$FF_DIR/.git" ]; then
|
|
echo "[facefusion] Updating existing clone ..."
|
|
git -C "$FF_DIR" pull --ff-only
|
|
else
|
|
echo "[facefusion] Cloning $FF_REPO ..."
|
|
git clone "$FF_REPO" "$FF_DIR"
|
|
fi
|
|
|
|
# 2. Create dedicated venv (avoids dependency conflicts with ComfyUI)
|
|
if [ ! -d "$FF_VENV" ]; then
|
|
echo "[facefusion] Creating venv at $FF_VENV ..."
|
|
python3 -m venv "$FF_VENV"
|
|
fi
|
|
|
|
PIP="$FF_VENV/bin/pip"
|
|
PY="$FF_VENV/bin/python"
|
|
|
|
"$PIP" install --upgrade pip wheel
|
|
|
|
# 3. Install FaceFusion requirements
|
|
cd "$FF_DIR"
|
|
"$PIP" install -r requirements.txt \
|
|
--extra-index-url https://download.pytorch.org/whl/cu124
|
|
|
|
# 4. Download base models (ghost_3_1_256 + gfpgan_1.4 for enhance)
|
|
echo "[facefusion] Downloading default models via FaceFusion model manager ..."
|
|
"$PY" facefusion.py \
|
|
--processors face_swapper hair_swapper face_enhancer \
|
|
--face-swapper-model ghost_3_1_256 \
|
|
--face-enhancer-model gfpgan_1.4 \
|
|
--execution-providers cpu \
|
|
download-models 2>/dev/null || true
|
|
|
|
echo ""
|
|
echo "[facefusion] Installation complete."
|
|
echo " Binary: $PY $FF_DIR/facefusion.py"
|
|
echo " Config: set facefusion_dir/facefusion_venv in tour-comfy/config.json"
|
|
echo ""
|
|
echo "Restart the API (start_api.sh) and the 'Hair swap' toggle will activate."
|