FaceSwapAllfaster / README.md
dosesnrolls1's picture
Upload 6 files
88a25be verified
|
Raw
History Blame Contribute Delete
1.69 kB
---
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
```bash
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.