Paper | Project Page | Video
Shangchen Zhou, Kelvin C.K. Chan, Chongyi Li, Chen Change Loy
S-Lab, Nanyang Technological University
⭐ If CodeFormer is helpful to your projects, please help star this repo. Thanks! 🤗
- 2022.08.23: Some modifications on face detection and fusion for better AI-created face enhancement.
- 2022.08.07: Integrate Real-ESRGAN to support background image enhancement.
- 2022.07.29: Integrate new face detectors of
['RetinaFace'(default), 'YOLOv5']
. - 2022.07.17: Colab demo of CodeFormer is available now.
- 2022.07.16: Test code for face restoration is released. 😊
- 2022.06.21: This repo is created.
- Add checkpoint for face inpainting
- Add training code and config files
-
Add background image enhancement
- Pytorch >= 1.7.1
- CUDA >= 10.1
- Other required packages in
requirements.txt
# git clone this repository
git clone https://github.com/sczhou/CodeFormer
cd CodeFormer
# create new anaconda env
conda create -n codeformer python=3.8 -y
source activate codeformer
# install python dependencies
pip3 install -r requirements.txt
python basicsr/setup.py develop
Download the facelib pretrained models from [Google Drive | OneDrive] to the weights/facelib
folder. You can manually download the pretrained models OR download by runing the following command.
python scripts/download_pretrained_models.py facelib
Download the CodeFormer pretrained models from [Google Drive | OneDrive] to the weights/CodeFormer
folder. You can manually download the pretrained models OR download by runing the following command.
python scripts/download_pretrained_models.py CodeFormer
You can put the testing images in the inputs/TestWhole
folder. If you would like to test on cropped and aligned faces, you can put them in the inputs/cropped_faces
folder.
# For cropped and aligned faces
python inference_codeformer.py --w 0.5 --has_aligned --test_path [input folder]
# For the whole images
# If you want to enhance the background regions with Real-ESRGAN,
# you can add '--bg_upsampler realesrgan' in the following command
python inference_codeformer.py --w 0.7 --test_path [input folder]
NOTE that w is in [0, 1]. Generally, smaller w tends to produce a higher-quality result, while larger w yields a higher-fidelity result.
The results will be saved in the results
folder.
If our work is useful for your research, please consider citing:
@article{zhou2022codeformer,
author = {Zhou, Shangchen and Chan, Kelvin C.K. and Li, Chongyi and Loy, Chen Change},
title = {Towards Robust Blind Face Restoration with Codebook Lookup TransFormer},
journal = {arXiv preprint arXiv:2206.11253},
year = {2022}
}
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
This project is based on BasicSR. We also borrow some codes from Unleashing Transformers, YOLOv5-face, and FaceXLib. Thanks for their awesome works.
If you have any question, please feel free to reach me out at [email protected]
.