* Fix video frames lower than threads

* Skip target audio (#656)

* Improve return typing

* Use face enhancer device according to execution provider

* Lock face by reference (#679)

* Lock face by position of a face reference

* Prevent exception for get_many_faces

* Finalize face reference implementation

* Fix potential exception

* Use sys.exit() over quit()

* Split frame processor error to reduce confusion

* Improve face reference by introducing more CLI args

* Prevent AttributeError if face is None

* Update dependencies

* Move reference creation to process_video

* Allow to initialize UI with source path and target path

* Allow to initialize UI with source path and target path

* Allow to initialize UI with source path and target path

* Use onnxruntime-coreml for old MacOS

* Fix typing

* Fix typing

* Fix typing

* Temp fix for enhancer

* Temp fix for enhancer

* Keyboard bindings to change reference face via Up/Down

* Fix slow preview

* ignore

* Update README and ISSUE TEMPLATES

* Right/Left to update frames by +10/-10

* Fix fps mismatch

* Add fps parameter to extract_frames()

* Minor wording cosmetics

* Improve enhancer performance by using cropped face

* Fix suggested threads and memory

* Extract frames with FPS output

* Remove default max-memory

* Remove release_resources() as it does not work

* Ignore torch import

* Add drag and drop for source and target

* Fix typing

* Bump version

* Limit Left/Right binding to videos

* Add key binding hits to preview
This commit is contained in:
Henry Ruhs
2023-07-19 13:32:58 +02:00
committed by GitHub
parent 68f534c35f
commit fe9b2bc8e5
22 changed files with 350 additions and 188 deletions

View File

@@ -7,22 +7,24 @@ You can watch some demos [here](https://drive.google.com/drive/folders/1KHv8n_rd
## 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 applicaitons and are committed to take 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 the positive direction while adhering to law and ethics. This project may be shut down or include watermarks on the output if requested by law.
The developers of this software are aware of its possible unethical applications and are committed to take 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 the 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 the local law. If 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 actions of end-users.
## How do I install it?
**Issues regarding installation will be closed from now on, we cannot handle the amount of requests.**
### Basic
- **Basic:** It is more likely to work on your computer but it will also be very slow. You can follow instructions for the basic install [here](https://github.com/s0md3v/roop/wiki/1.-Installation).
It is more likely to work on your computer but it will also be very slow. You can follow instructions for the basic install [here](https://github.com/s0md3v/roop/wiki/1.-Installation).
- **Acceleration:** If you have a good GPU and are ready for solving any software issues you may face, you can enable GPU which is wayyy faster. To do this, first follow the basic install instructions given above and then follow GPU-specific instructions [here](https://github.com/s0md3v/roop/wiki/2.-Acceleration).
### Acceleration
If you have a good GPU and are ready for solving any software issues you may face, you can enable GPU which is wayyy faster. To do this, first follow the basic install instructions given above and then follow GPU-specific instructions [here](https://github.com/s0md3v/roop/wiki/2.-Acceleration).
## How do I use it?
> Note: When you run this program for the first time, it will download some models ~300MB in size.
Executing `python run.py` command will launch this window:
![gui-demo](gui-demo.png)
Choose a face (image with desired face) and the target image/video (image/video in which you want to replace the face) and click on `Start`. Open file explorer and navigate to the directory you select your output to be in. You will find a directory named `<video_title>` where you can see the frames being swapped in realtime. Once the processing is done, it will create the output file. That's it.
@@ -36,10 +38,13 @@ options:
-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 original fps
--keep-audio keep original audio
--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
--video-encoder {libx264,libx265,libvpx-vp9} adjust output video encoder
--video-quality [0-51] adjust output video quality
--max-memory MAX_MEMORY maximum amount of RAM in GB