• Stars
    star
    4,145
  • Rank 10,018 (Top 0.3 %)
  • Language
    Python
  • License
    Other
  • Created almost 3 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An arbitrary face-swapping framework on images and videos with one single trained model!

SimSwap: An Efficient Framework For High Fidelity Face Swapping

Proceedings of the 28th ACM International Conference on Multimedia

The official repository with Pytorch

Our method can realize arbitrary face swapping on images and videos with one single trained model.

Training and test code are now available! google colab logo

We are working with our incoming paper SimSwap++, keeping expecting!

The high resolution version of SimSwap-HQ is supported!

simswaplogo

Our paper can be downloaded from [Arxiv] [ACM DOI]

This project also received support from SocialBook.

Attention

This project is for technical and academic use only. Please do not apply it to illegal and unethical scenarios.

In the event of violation of the legal and ethical requirements of the user's country or region, this code repository is exempt from liability

Please do not ignore the content at the end of this README!

If you find this project useful, please star it. It is the greatest appreciation of our work.

Top News

2023-04-25: We fixed the "AttributeError: 'SGD' object has no attribute 'defaults' now" bug. If you have already downloaded arcface_checkpoint.tar, please download it again. Also, you also need to update the scripts in ./models/.

2022-04-21: For resource limited users, we provide the cropped VGGFace2-224 dataset [Google Driver] VGGFace2-224 (10.8G) [Baidu Driver] [Password: lrod].

2022-04-20: Training scripts are now available. We highly recommend that you guys train the simswap model with our released high quality dataset VGGFace2-HQ.

2021-11-24: We have trained a beta version of SimSwap-HQ on VGGFace2-HQ and open sourced the checkpoint of this model (if you think the Simswap 512 is cool, please star our VGGFace2-HQ repo). Please donโ€™t forget to go to Preparation and Inference for image or video face swapping to check the latest set up.

2021-11-23: The google drive link of VGGFace2-HQ is released.

2021-11-17: We released a high resolution face dataset VGGFace2-HQ and the method to generate this dataset. This dataset is for research purpose.

2021-08-30: Docker has been supported, please refer here for details.

2021-08-17: We have updated the Preparation, The main change is that the gpu version of onnx is now installed by default, Now the time to process a video is greatly reduced.

2021-07-19: Obvious border abruptness has been resolved. We add the ability to using mask and upgrade the old algorithm for better visual effect, please go to Inference for image or video face swapping for details. Please donโ€™t forget to go to Preparation to check the latest set up. (Thanks for the help from @woctezuma and @instant-high)

The first open source high resolution dataset for face swapping!!!

High Resolution Dataset VGGFace2-HQ

logo

Dependencies

  • python3.6+
  • pytorch1.5+
  • torchvision
  • opencv
  • pillow
  • numpy
  • imageio
  • moviepy
  • insightface

Training

Preparation

The training script is slightly different from the original version, e.g., we replace the patch discriminator with the projected discriminator, which saves a lot of hardware overhead and achieves slightly better results.

In order to ensure the normal training, the batch size must be greater than 1.

Friendly reminder, due to the difference in training settings, the user-trained model will have subtle differences in visual effects from the pre-trained model we provide.

For faster convergence and better results, a large batch size (more than 16) is recommended!

We recommend training more than 400K iterations (batch size is 16), 600K~800K will be better, more iterations will not be recommended.

python train.py --name simswap224_test --batchSize 8  --gpu_ids 0 --dataset /path/to/VGGFace2HQ --Gdeep False

Colab demo for training 224 model

For faster convergence and better results, a large batch size (more than 16) is recommended!

  • Train 512 models with VGGFace2-HQ 512*512 VGGFace2-HQ.
python train.py --name simswap512_test  --batchSize 16  --gpu_ids 0 --dataset /path/to/VGGFace2HQ --Gdeep True

Inference with a pretrained SimSwap model

Preparation

Inference for image or video face swapping

Colab demo

Stronger feature

Colab for switching specific faces in multi-face videos

Image face swapping demo & Docker image on Replicate

Video

Results

Results1

Results2

High-quality videos can be found in the link below:

[Mama(video) 1080p]

[Google Drive link for video 1]

[Google Drive link for video 2]

[Google Drive link for video 3]

[Baidu Drive link for video] Password: b26n

[Online Video]

User case

If you have some interesting results after using our project and are willing to share, you can contact us by email or share directly on the issue. Later, we may make a separate section to show these results, which should be cool.

At the same time, if you have suggestions for our project, please feel free to ask questions in the issue, or contact us directly via email: email1, email2, email3. (All three can be contacted, just choose any one)

License

For academic and non-commercial use only.The whole project is under the CC-BY-NC 4.0 license. See LICENSE for additional details.

To cite our paper

@inproceedings{DBLP:conf/mm/ChenCNG20,
  author    = {Renwang Chen and
               Xuanhong Chen and
               Bingbing Ni and
               Yanhao Ge},
  title     = {SimSwap: An Efficient Framework For High Fidelity Face Swapping},
  booktitle = {{MM} '20: The 28th {ACM} International Conference on Multimedia},
  year      = {2020}
}

Please visit our another ACMMM2020 high-quality style transfer project

logo

title

Please visit our AAAI2021 sketch based rendering project

logo title

Please visit our high resolution face dataset VGGFace2-HQ

logo

Learn about our other projects

[VGGFace2-HQ];

[RainNet];

[Sketch Generation];

[CooGAN];

[Knowledge Style Transfer];

[SimSwap];

[ASMA-GAN];

[SNGAN-Projection-pytorch]

[Pretrained_VGG19].

Acknowledgements

More Repositories

1

ASMAGAN

The official code of Anisotropic Stroke Control for Multiple Artists Style Transfer (ACMMM2020)
Python
165
star
2

SimSwapPlus

A high resolution and faster face editing framework (TPAMI)
117
star
3

awesome_style_transfer

The style transfer paper collection in International CV conference
69
star
4

RainNet

[NeurIPS 2022]RainNet: A Large-Scale Imagery Dataset and Benchmark for Spatial Precipitation Downscaling
Python
44
star
5

EQSR

An Arbitrary-Scale Image Super-Resolution Framework (CVPR2023)
Python
35
star
6

CooGAN

The official tensorflow implementation of "CooGAN: A Memory-Efficient Framework for High-Resolution Facial Attribute Editing" (Accepted in ECCV2020)
Python
24
star
7

Bivolution

Accepted by AAAI2022
21
star
8

SNGAN_Projection

An unofficial PyTorch implementation of SNGAN (ICLR 2018) and cGANs with projection discriminator (ICLR 2018)
Python
17
star
9

Pretrained_VGG19

The pretrained VGG19 mode and scripts for perceptual loss
Python
17
star
10

YoutubeDataCollector

Python
7
star
11

NeuralRenderingTutorial

6
star
12

Video_Edit_Tools

A python tool set for images to video, gif and so on
Python
6
star
13

awesome-deepfake-detection

6
star
14

Pytorch-Project-Template

A project code generator for pytorch deep learning program
Python
4
star
15

Imagenet_validation_preprocess

The preprocess shell script for Imagenet validation set
Shell
2
star
16

Training_logs

2
star
17

SummerProjects

2
star
18

neuralchen

Personal Website
2
star
19

deep-photo-enhancer

pytorch implementation of deep photo enhancer
2
star
20

StyleTransfer

Python
2
star
21

SadTalker-Trainer

Reproduction of traning scripts of SadTalker
2
star
22

KNN_CUDA_GPU_Specify

A modification version of KNN_CUDA to support GPU specify
Cuda
1
star
23

ConditionalGAN_Develop

A new approach to inject the conditional information
Python
1
star
24

Multi-Domain-Translation

Python
1
star
25

test

a test project
Java
1
star
26

Style_Transformer

Python
1
star
27

Super-Resolution

1
star
28

oil_painting_stroke_repos

1
star
29

TraningReporter

A training log reporter, which supports distribution system
Python
1
star
30

SuperResolution_Log

1
star