TopGit
GitHub Repo Review

FaceSwap: Deepfake Face-Swapping Software

deepfakes/faceswap
FTopGit review image for deepfakes/faceswap
Review by Topgit.dev for deepfakes/faceswap, with GitHub repository stats and README context.
Quick verdict

FaceSwap is a free, open-source Python tool that swaps faces in photos and video by training a deep-learning autoencoder model on two sets of face images. Reach for it if you want to learn how face-swapping models actually work and don't mind building a training dataset and waiting out GPU training time. Skip it if you want a fast, no-training, one-click swap. That's not how this tool works.

Stars
β˜… 56.7k
Forks
β‘‚ 13.5k
Contributors
πŸ‘₯ 98
Language
Python
License
GPL-3.0
Topic
AI Tools
Updated
Jul 2026
Homepage

Understanding FaceSwap

FaceSwap is the deepfakes/faceswap project on GitHub: a Python program that detects faces in your photos or video frames, trains a neural network to map one face onto another, then renders the result back into new images or footage. Run it via `python faceswap.py extract`, `train`, and `convert`, or through the bundled GUI, on Windows, Linux, or MacOS. The README calls for a modern CUDA GPU, with AMD cards partly covered through ROCm on Linux.

Key Features and Workflow

  • βœ“Three-stage CLI pipeline: `extract` pulls faces out of source photos or video frames, `train` fits a model on two matched face sets, and `convert` renders the swap back onto the target media.
  • βœ“Ships its own GUI via `python faceswap.py gui`, so you're not stuck memorizing CLI flags β€” though every script also exposes a `-h`/`--help` reference.
  • βœ“Multiple swappable model architectures are included, such as Villain, DFaker, DFL-H128, and Phaze-A, credited in the README to the specific contributors who built or ported each one.
  • βœ“A companion `tools.py effmpeg` command pulls frames out of video and reassembles them afterward, or you can lean on ffmpeg directly for the same job.
  • βœ“GPU-first design: the README calls for a modern CUDA GPU for real training speed, with AMD GPUs supported through ROCm specifically on Linux.
  • βœ“Reusing a previously trained model to warm-start a new one trains noticeably faster than starting from scratch, per the README's own tip.
How this repository's GitHub stars have grown over time. Source: star-history.com.View the star history β†—

Ethical Use Cases and Learning

  • β€’Hands-on deep learning education: working through the extract/train/convert pipeline is a concrete way to learn how autoencoder-based generative models behave, without a research-lab background.
  • β€’VFX and film-style face work: the README lists movies as one of the intended uses, alongside the Hollywood VFX artists it says are among its contributors.
  • β€’Social or political commentary and satire: the project's own ethical statement names this explicitly as a use case the developers intend to support.

Setting Up FaceSwap

The README defers full installation steps to a separate INSTALL.md file rather than documenting them inline, so exact install commands aren't clearly documented in the main README. What is documented: FaceSwap is a Python program that runs on Windows, Linux, and MacOS, and the README says a modern GPU with CUDA support is needed for real training speed. Many AMD GPUs are supported too, through ROCm, but only on Linux. Beyond cloning the repo and following INSTALL.md, no further setup detail is given here.

Running FaceSwap: CLI and GUI Options

Usage follows three ordered steps run from your setup folder: `python faceswap.py extract` pulls faces out of the photos in your `src` folder into an `extract` folder, `python faceswap.py train` fits a model against two folders of extracted faces and writes it into a `models` folder, and `python faceswap.py convert` applies that trained model to the `original` folder and writes results into `modified`. Prefer a GUI to typing flags? Run `python faceswap.py gui` instead. For video, `python tools.py effmpeg -h` handles the photo-to-video round trip, or you can hand that job to ffmpeg yourself. Every script accepts `-h`/`--help` for its full argument list, and USAGE.md is where the project points you for a deeper walkthrough.

Strengths

  • βœ“The extract/train/convert split maps directly onto how the underlying model works, so you learn the mechanics instead of clicking one button.
  • βœ“A GUI ships alongside the CLI, so you're not locked into memorizing flags just to get started.
  • βœ“Multiple model architectures live in the same codebase β€” Villain, DFaker, DFL-H128, Phaze-A, and more β€” so you can trade training time against swap quality.
  • βœ“The project states its own ethical boundaries directly in the README instead of staying silent, which sets clear expectations before you start.
  • βœ“Reusing an existing trained model to warm-start a new one, per the README's own tip, cuts down on redundant training time.

Technical Requirements and Ethical Guidelines

  • β–³A GPU is effectively mandatory. The README calls for a modern CUDA GPU for real training speed, and while AMD cards work through ROCm, that path is Linux-only, so Windows AMD users are left without a fast path.
  • β–³Training a usable model takes real time and a dataset of matched faces you have to assemble yourself β€” there's no pretrained one-click model bundled in the repo.
  • β–³Install steps live entirely in a separate INSTALL.md rather than the main README, so first-time setup friction is hard to judge before you commit to cloning the repo.
  • β–³The technology is a genuine misuse risk, not just a technical caveat: the same extract/train/convert pipeline that teaches you autoencoders can just as easily produce non-consensual or deceptive content, which is why the maintainers publish an explicit ethical-use manifesto and say they won't tolerate the software being used for unethical purposes.
  • β–³Support is community-run through Discord and a separate forum, not this repo's issue tracker. The README says general support questions posted here get deleted without a response.

Exploring Other Face Swapping Software

DeepFaceLab β€” another open-source, GPU-trained face-swap pipeline with its own extract/train/merge workflow and a denser set of model options if you're willing to learn a more involved tool.roop β€” a lighter face-swap tool that works from a single source image instead of requiring you to train a model first, trading away the training control FaceSwap gives you.FaceFusion β€” a more packaged face-swap interface aimed at people who want less command-line work than FaceSwap's setup involves.SimSwap β€” a research-oriented face-swap implementation worth comparing if you want to see a different underlying model architecture than FaceSwap's autoencoder approach.

Frequently Asked Questions

Is FaceSwap free to use for commercial projects?

FaceSwap is released under the GPL-3.0 license, which is free and open source, but GPL-3.0 carries copyleft obligations: any derivative software you distribute must also be released under GPL-3.0, so check that fits your commercial plans first.

What are the hardware requirements for running FaceSwap?

FaceSwap runs on Windows, Linux, and MacOS, but the README says a modern GPU with CUDA support is needed for real training speed. Many AMD GPUs work too, through ROCm, though that path is only available on Linux.

What are the ethical guidelines for using FaceSwap?

FaceSwap's maintainers publish a manifesto stating the software isn't meant for creating inappropriate content, changing faces without someone's consent or knowledge, or any illicit or unethical purpose. They describe it instead as built for AI experimentation, commentary, films, and other legitimate face-swapping uses.

Can FaceSwap be used to swap faces in videos?

FaceSwap can swap faces in video: it includes a `tools.py effmpeg` command that converts video into individual frames and reassembles them afterward, or you can use ffmpeg directly, then run the extract, train, and convert pipeline against the extracted frames.

What programming language is FaceSwap written in?

FaceSwap is written in Python, per its GitHub repository language stats, with the whole workflow driven through Python scripts like faceswap.py and tools.py rather than a compiled binary.

Where can I get support for FaceSwap?

FaceSwap support runs through its own Discord server and the FaceSwap Forum at faceswap.dev/forum. The README explicitly asks users not to post general support questions in the GitHub repo, since those are liable to be deleted without a response.

The problem it solves

Before FaceSwap consolidated the code, working deepfake techniques were scattered across academic papers and hard-to-run research code, understandable mainly to people who already had a strong AI theory background. FaceSwap packages that pipeline into three runnable commands anyone with a GPU can execute: extract, train, convert. That's what actually made hands-on deepfake experimentation possible outside research labs.

Who should try it β€” and who should skip

Try FaceSwap if you're a developer or ML hobbyist who wants to actually train a face-swap model yourself and doesn't mind assembling a dataset, waiting through GPU training, and reading INSTALL.md and USAGE.md instead of a quick-start page. Skip it if you want a plug-and-play app, don't have access to a CUDA-capable GPU or a Linux box for the ROCm path, or you expect first-party support inside the GitHub repo instead of Discord or the forum.

Related repositories

Source & attribution

Facts sourced from the deepfakes/faceswap GitHub repository and its README (github.com/deepfakes/faceswap).

GitHub data Β· last synced Aug 6, 2026Reviewed by Henry
← Back to TopGit