forked from neuralchen/SimSwap
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' of https://github.com/neuralchen/SimSwap into main
- Loading branch information
Showing
4 changed files
with
119 additions
and
40 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
|
||
# Preparation | ||
|
||
### Installation | ||
**We highly recommand that you use Anaconda for Installation** | ||
``` | ||
conda create -n simswap python=3.6 | ||
conda activate simswap | ||
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=10.2 -c pytorch | ||
(option): pip install --ignore-installed imageio | ||
pip install insightface==0.2.1 onnxruntime moviepy | ||
``` | ||
- We use the face detection and alignment methods from **[insightface](https://github.com/deepinsight/insightface)** for image preprocessing. Please download the relative files and unzip them to ./insightface_func/models from [this link](https://onedrive.live.com/?authkey=%21ADJ0aAOSsc90neY&cid=4A83B6B633B029CC&id=4A83B6B633B029CC%215837&parId=4A83B6B633B029CC%215834&action=locate). | ||
- The pytorch and cuda versions above are most recommanded. They may vary. | ||
- Using insightface with different versions is not recommanded. Please use this specific version. | ||
- These settings are tested valid on both Windows and Ununtu. | ||
|
||
### Pretrained model | ||
There are two archive files in the drive: **checkpoints.zip** and **arcface_checkpoint.tar** | ||
|
||
- **Copy the arcface_checkpoint.tar into ./arcface_model** | ||
- **Unzip checkpoints.zip, place it in the root dir ./** | ||
|
||
[[Google Drive]](https://drive.google.com/drive/folders/1jV6_0FIMPC53FZ2HzZNJZGMe55bbu17R?usp=sharing) | ||
[[Baidu Drive]](https://pan.baidu.com/s/1wFV11RVZMHqd-ky4YpLdcA) Password: ```jd2v``` | ||
|
||
### Note | ||
We expect users to have GPU with at least 8G memory. For those who do not, we will provide Colab Notebook implementation in the future. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
|
||
# Usage | ||
|
||
### Simple face swapping for already face-aligned images | ||
``` | ||
python test_one_image.py --isTrain false --name people --Arc_path arcface_model/arcface_checkpoint.tar --pic_a_path crop_224/6.jpg --pic_b_path crop_224/ds.jpg --output_path output/ | ||
``` | ||
|
||
### Face swapping for video | ||
- Swap only one face within the video(the one with highest confidence by face detection). | ||
``` | ||
python test_video_swapsingle.py --isTrain false --name people --Arc_path arcface_model/arcface_checkpoint.tar --pic_a_path ./demo_file/Iron_man.jpg --video_path ./demo_file/mutil_people_1080p.mp4 --output_path ./output/mutil_test_swapsingle.mp4 --temp_path ./temp_results | ||
``` | ||
|
||
- Swap all faces within the video. | ||
``` | ||
python test_video_swapmutil.py --isTrain false --name people --Arc_path arcface_model/arcface_checkpoint.tar --pic_a_path ./demo_file/Iron_man.jpg --video_path ./demo_file/mutil_people_1080p.mp4 --output_path ./output/mutil_test_swapmutil.mp4 --temp_path ./temp_results | ||
``` | ||
|
||
|
||
|
||
|
||
### Face swapping for Arbitrary images | ||
- Swap only one face within one image(the one with highest confidence by face detection). The result would be saved to ./output/result_whole_swapsingle.jpg | ||
``` | ||
python test_wholeimage_swapsingle.py --isTrain false --name people --Arc_path arcface_model/arcface_checkpoint.tar --pic_a_path ./demo_file/Iron_man.jpg --pic_b_path ./demo_file/mutil_people.jpg --output_path ./output/ | ||
``` | ||
|
||
- Swap all faces within one image. The result would be saved to ./output/result_whole_swapmutil.jpg | ||
``` | ||
python test_wholeimage_swapmutil.py --isTrain false --name people --Arc_path arcface_model/arcface_checkpoint.tar --pic_a_path ./demo_file/Iron_man.jpg --pic_b_path ./demo_file/mutil_people.jpg --output_path ./output/ | ||
``` | ||
Difference between single face swapping and all face swapping are shown below. | ||
<img src="../img/multi_face_comparison.png"/> | ||
|
||
### Parameters | ||
| Parameters | Function | | ||
| :---- | :---- | | ||
| --name | The SimSwap training logs name | | ||
| --pic_a_path | Path of image with the target face | | ||
| --pic_b_path | Path of image with the source face to swap | | ||
| --video_path | Path of video with the source face to swap | | ||
| --temp_path | Path to store intermediate files | | ||
| --output_path | Path of directory to store the face swapping result | | ||
|
||
### Note | ||
We expect users to have GPU with at least 8G memory. For those who do not, we will provide Colab Notebook implementation in the future. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.