| <div align="center"> | |
| <img src="assets/logo.png" alt="logo" width="200" height="auto" /> | |
| <h1>Video Face Swap (VFS)</h1> | |
| <p> | |
| Swap any face in a video with a few clicks!! | |
| </p> | |
| <!-- Badges --> | |
| <p> | |
| <a href="https://github.com/karanjakhar/Video-Face-Swap/graphs/contributors"> | |
| <img src="https://img.shields.io/github/contributors/karanjakhar/Video-Face-Swap" alt="contributors" /> | |
| </a> | |
| <a href=""> | |
| <img src="https://img.shields.io/github/last-commit/karanjakhar/Video-Face-Swap" alt="last update" /> | |
| </a> | |
| <a href="https://github.com/karanjakhar/Video-Face-Swap/network/members"> | |
| <img src="https://img.shields.io/github/forks/karanjakhar/Video-Face-Swap" alt="forks" /> | |
| </a> | |
| <a href="https://github.com/karanjakhar/Video-Face-Swap/stargazers"> | |
| <img src="https://img.shields.io/github/stars/karanjakhar/Video-Face-Swap" alt="stars" /> | |
| </a> | |
| <a href="https://github.com/karanjakhar/Video-Face-Swap/issues/"> | |
| <img src="https://img.shields.io/github/issues/karanjakhar/Video-Face-Swap" alt="open issues" /> | |
| </a> | |
| <a href="https://github.com/karanjakhar/Video-Face-Swap/blob/master/LICENSE"> | |
| <img src="https://img.shields.io/github/license/karanjakhar/Video-Face-Swap.svg" alt="license" /> | |
| </a> | |
| </p> | |
| <h4> | |
| <a href="https://github.com/karanjakhar/Video-Face-Swap/">View Demo</a> | |
| <span> 路 </span> | |
| <a href="https://github.com/karanjakhar/Video-Face-Swap">Documentation</a> | |
| <span> 路 </span> | |
| <a href="https://github.com/karanjakhar/Video-Face-Swap/issues/">Report Bug</a> | |
| <span> 路 </span> | |
| <a href="https://github.com/karanjakhar/Video-Face-Swap/issues/">Request Feature</a> | |
| </h4> | |
| </div> | |
| <br /> | |
| <!-- Table of Contents --> | |
| # :notebook_with_decorative_cover: Table of Contents | |
| - [:notebook\_with\_decorative\_cover: Table of Contents](#notebook_with_decorative_cover-table-of-contents) | |
| - [:star2: About the Project](#star2-about-the-project) | |
| - [:camera: Screenshots](#camera-screenshots) | |
| - [:space\_invader: Tech Stack](#space_invader-tech-stack) | |
| - [:toolbox: Getting Started](#toolbox-getting-started) | |
| - [:bangbang: Prerequisites](#bangbang-prerequisites) | |
| - [:running: Run Locally](#running-run-locally) | |
| - [:eyes: Usage](#eyes-usage) | |
| - [:wave: Contributing](#wave-contributing) | |
| - [:scroll: Code of Conduct](#scroll-code-of-conduct) | |
| - [:warning: License](#warning-license) | |
| - [:handshake: Contact](#handshake-contact) | |
| - [:gem: Acknowledgements](#gem-acknowledgements) | |
| <!-- About the Project --> | |
| ## :star2: About the Project | |
| It detects faces and then group them together so you can upload a new face for a group and it will be swapped in the whole video. | |
| <!-- Screenshots --> | |
| ### :camera: Screenshots | |
| <div align="center"> | |
| <img src="assets/screenshot_home_page.png" /> | |
| </div> | |
|  | |
| <!-- TechStack --> | |
| ### :space_invader: Tech Stack | |
| <ul> | |
| <li><a href="https://reactjs.org/">React.js</a></li> | |
| <li><a href="https://tailwindcss.com/">TailwindCSS</a></li> | |
| <li><a href="https://fastapi.tiangolo.com/">FastAPI</a></li> | |
| </ul> | |
| <!-- Getting Started --> | |
| ## :toolbox: Getting Started | |
| <!-- Prerequisites --> | |
| ### :bangbang: Prerequisites | |
| <ul> | |
| <li><a href="https://www.python.org/downloads/">Python3</a></li> | |
| <li><a href="https://nodejs.org/en/download/package-manager">npm</a></li> | |
| </ul> | |
| <!-- Run Locally --> | |
| ### :running: Run Locally | |
| Clone the project | |
| ```bash | |
| git clone https://github.com/karanjakhar/Video-Face-Swap.git | |
| ``` | |
| Go to the project directory | |
| ```bash | |
| cd Video-Face-Swap | |
| ``` | |
| Install dependencies | |
| ```bash | |
| cd Video-Face-Swap/frontend | |
| npm install | |
| cd Video-Face-Swap/backend | |
| pip install -r requirements.txt | |
| ``` | |
| Run Backend and Frontend | |
| ```bash | |
| cd Video-Face-Swap/frontend | |
| npm start | |
| cd Video-Face-Swap/backend | |
| python3 main.py | |
| ``` | |
| Model Weights | |
| ``` | |
| Download model weight files from release and place them in weights/ folder. | |
| ``` | |
| <!-- Usage --> | |
| ## :eyes: Usage | |
| Project is in two part frontend (ReactJS) and backend (Python, FastAPI). | |
| To run it locally you need to run both. | |
| <!-- Contributing --> | |
| ## :wave: Contributing | |
| <a href="https://github.com/karanjakhar/Video-Face-Swap/graphs/contributors"> | |
| <img src="https://contrib.rocks/image?repo=karanjakhar/Video-Face-Swap" /> | |
| </a> | |
| Contributions are always welcome! | |
| See `contributing.md` for ways to get started. | |
| <!-- Code of Conduct --> | |
| ### :scroll: Code of Conduct | |
| Please read the [Code of Conduct](https://github.com/karanjakhar/Video-Face-Swap/blob/master/CODE_OF_CONDUCT.md) | |
| <!-- License --> | |
| ## :warning: License | |
| Distributed under Apache2.0. See LICENSE for more information. | |
| <!-- Contact --> | |
| ## :handshake: Contact | |
| Karan Jakhar - [@karan-jakhar](https://www.linkedin.com/in/karan-jakhar/) - karanjakhar49@gmail.com | |
| Project Link: [https://github.com/karanjakhar/Video-Face-Swap](https://github.com/karanjakhar/Video-Face-Swap) | |
| <!-- Acknowledgments --> | |
| ## :gem: Acknowledgements | |
| - [InsightFace](https://github.com/deepinsight/insightface) | |
| - [FaceFusion](https://github.com/facefusion/facefusion) | |
| - [Readme Template](https://github.com/Louis3797/awesome-readme-template) |