FaceSwapAllfaster / README.md
dosesnrolls1's picture
Upload 6 files
88a25be verified
|
Raw
History Blame Contribute Delete
1.69 kB

A newer version of the Gradio SDK is available: 6.24.0

Upgrade
metadata
title: FaceSwap GPU
emoji: 🎬
colorFrom: indigo
colorTo: purple
sdk: gradio
sdk_version: 5.29.0
app_file: app.py
pinned: false
license: unknown
short_description: GPU-accelerated all-in-one face swapping (photo + video)

FaceSwap GPU – Rented-GPU Ready

All-in-one face swapping suite optimised for CUDA GPUs (RunPod, Vast.ai, Lambda, local RTX, HF GPU Spaces, etc.).

What changed vs the original

  • Explicit CUDAExecutionProvider preference via onnxruntime
  • Robust Gradio video path handling (fixes all video tabs)
  • Cleaned frame extraction + resume logic
  • Better error reporting in the Log box
  • Workdir isolation under workdir/
  • opencv-python-headless (safer on servers)
  • Proper demo.queue() for concurrent jobs
  • ssr_mode=False to avoid Gradio SSR 405 errors
  • ffmpeg system package declared

Requirements on the rented machine

  • NVIDIA GPU + drivers
  • CUDA-compatible onnxruntime-gpu (already in requirements)
  • ~4–8 GB VRAM recommended for 1080p video
  • ffmpeg installed (packages.txt)

Local / rented GPU launch

pip install -r requirements.txt
python app.py --share          # creates a public link
# or
python app.py --server-port 7860

First run downloads buffalo_l + inswapper_128.onnx (~300 MB).

Tips for long videos

  • Keep “Delete extracted frames” checked to save disk.
  • Processing is frame-by-frame; a 1-minute 30 fps clip ≈ 1800 swaps.
  • On a modern GPU expect 5–15 fps effective (depends on resolution & number of faces).
  • Resume is automatic: if the process is killed, re-run and already-swapped frames are skipped.

Face indices

Faces are sorted left-to-right. Index 1 = leftmost face.