A newer version of the Gradio SDK is available: 6.24.0
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
CUDAExecutionProviderpreference 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=Falseto 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.