One-Click Deepfake (face swap)

  Flutter App

Roop

Take a video and replace the face in it with a face of your choice. You only need one image of the desired face. No dataset, no training.

Preview

Target Video Output Video
Target Video Output Video

Installation

Be aware, the installation needs technical skills and is not for beginners. Please do not open platform and installation-related issues on GitHub. We have a very helpful Discord community that will guide you to install roop.

Basic – It is more likely to work on your computer but will be quite slow

Acceleration – Unleash the full potential of your CPU and GPU

Usage

Start the program with arguments:

python run.py [options]

-h, --help                                                                 show this help message and exit
-s SOURCE_PATH, --source SOURCE_PATH                                       select an source image
-t TARGET_PATH, --target TARGET_PATH                                       select an target image or video
-o OUTPUT_PATH, --output OUTPUT_PATH                                       select output file or directory
--frame-processor FRAME_PROCESSOR [FRAME_PROCESSOR ...]                    frame processors (choices: face_swapper, face_enhancer, ...)
--keep-fps                                                                 keep target fps
--keep-frames                                                              keep temporary frames
--skip-audio                                                               skip target audio
--many-faces                                                               process every face
--reference-face-position REFERENCE_FACE_POSITION                          position of the reference face
--reference-frame-number REFERENCE_FRAME_NUMBER                            number of the reference frame
--similar-face-distance SIMILAR_FACE_DISTANCE                              face distance used for recognition
--temp-frame-format {jpg,png}                                              image format used for frame extraction
--temp-frame-quality [0-100]                                               image quality used for frame extraction
--output-video-encoder {libx264,libx265,libvpx-vp9,h264_nvenc,hevc_nvenc}  encoder used for the output video
--output-video-quality [0-100]                                             quality used for the output video
--max-memory MAX_MEMORY                                                    maximum amount of RAM in GB
--execution-provider {cpu} [{cpu} ...]                                     available execution provider (choices: cpu, ...)
--execution-threads EXECUTION_THREADS                                      number of execution threads
-v, --version                                                              show program's version number and exit

Headless

Using the -s/--source-t/--target and -o/--output argument will run the program in headless mode.

Disclaimer

This software is meant to be a productive contribution to the rapidly growing AI-generated media industry. It will help artists with tasks such as animating a custom character or using the character as a model for clothing etc.

The developers of this software are aware of its possible unethical applications and are committed to taking preventative measures against them. It has a built-in check which prevents the program from working on inappropriate media including but not limited to nudity, graphic content, sensitive material such as war footage, etc. We will continue to develop this project in a positive direction while adhering to law and ethics. This project may be shut down or include watermarks on the output if requested by law.

Users of this software are expected to use this software responsibly while abiding by the local law. If the face of a real person is being used, users are suggested to get consent from the concerned person and clearly mention that it is a deepfake when posting content online. Developers of this software will not be responsible for the actions of end-users.

Licenses

Our software uses a lot of third-party libraries as well as pre-trained models. The users should keep in mind that these third-party components have their own licenses and terms, therefore our license is not being applied.

Documentation

Read the documentation for a deep dive.

Download source code on GitHub