.idea | ||
assets | ||
data | ||
face_detect | ||
face_feature | ||
face_lib/face_swap | ||
face_restore | ||
model_lib | ||
options | ||
.gitignore | ||
app.py | ||
color_transfer.py | ||
HifiFaceAPI_parallel_base.py | ||
HifiFaceAPI_parallel_trt_roi_realtime_api.py | ||
HifiFaceAPI_parallel_trt_roi_realtime_sr_api.py | ||
inference_cam.py | ||
inference.py | ||
LICENSE | ||
README.md | ||
requirements.txt |
ReHiFace-S 🤖🤖🤖
🚀 Introduction
ReHiFace-S, short for “Real Time High-Fidelity Faceswap”, is a real-time high-fidelity faceswap algorithm created by Silicon-based Intelligence. By open-sourcing the capabilities of digital human generation, developers can easily generate large-scale digital humans who they want, enabling real-time faceswap capability.
💪 Project features
- Real-time on NVIDIA GTX 1080Ti
- Zero-shot inference
- High Fidelity faceswap
- Support ONNX and live camera mode
- Support super resulution and color transfer
- Better Xseg model for face segment
🔥 Examples
We show some faceswap examples.
🔧 Getting Started
Clone the code and prepare the environment
- Python >= 3.9 (Recommend to use Anaconda or Miniconda)
- PyTorch >= 1.13
- CUDA 11.7
- Linux Ubuntu20.04
conda create --name faceswap python=3.9
conda activate faceswap
pip install -r requirements.txt
😊 Pretrained models
Download all pretrained weights from Google Drive or Baidu Yun. We have packed all weights in one directory 😊. Download and place them in ./pretrain_models
folder ensuring the directory structure is as follows:
pretrain_models
├── 9O_865k.onnx
├── CurricularFace.tjm
├── gfpganv14_fp32_bs1_scale.onnx
├── pfpld_robust_sim_bs1_8003.onnx
├── scrfd_500m_bnkps_shape640x640.onnx
├── xseg_230611_16_17.onnx
💻 How to Test
CUDA_VISIBLE_DEICES='0' python inference.py
Or, you can change the input by specifying the --src_img_path
and --video_path
arguments:
CUDA_VISIBLE_DEICES='0' python inference.py --src_img_path --video_path
Live Cam faceswap
You should at least run by NVIDIA GTX 1080Ti.
Notice: The time taken to render to a video and warm up the models are not included.
Not support Super Resolution.
CUDA_VISIBLE_DEICES='0' python inference_cam.py
Notice: Support change source face during live with 'data/image_feature_dict.pkl' !
🤗 Gradio interface
We also provide a Gradio interface for a better experience, just run by:
python app.py
✨ Acknowledgments
- Thanks to Hififace for base faceswap framework.
- Thanks to CurricularFace for pretrained face feature model.
- Thanks to Xseg for base face segment framework.
- Thanks to GFPGAN for face super resolution.
- Thanks to LivePortrait and duix.ai for README template.
🌟 Citation
If you find ReHiFace-S useful for your research, welcome to 🌟 this repo.