Giter Site home page Giter Site logo

nacei / codeformer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sczhou/codeformer

0.0 0.0 0.0 12.63 MB

[NeurIPS 2022] Towards Robust Blind Face Restoration with Codebook Lookup Transformer

License: Other

C++ 7.41% Python 81.55% Cuda 11.04%

codeformer's Introduction

Towards Robust Blind Face Restoration with Codebook Lookup Transformer (NeurIPS 2022)

Paper | Project Page | Video

google colab logo Hugging Face Replicate visitors

Shangchen Zhou, Kelvin C.K. Chan, Chongyi Li, Chen Change Loy

S-Lab, Nanyang Technological University

โญ If CodeFormer is helpful to your images or projects, please help star this repo. Thanks! ๐Ÿค—

[News]: ๐Ÿณ We regret to inform you that the release of our code will be postponed from its earlier plan. Nevertheless, we assure you that it will be made available by the end of this April. Thank you for your understanding and patience. Our apologies for any inconvenience this may cause.

Update

  • 2023.02.10: Include dlib as a new face detector option, it produces more accurate face identity.
  • 2022.10.05: Support video input --input_path [YOUR_VIDOE.mp4]. Try it to enhance your videos! ๐ŸŽฌ
  • 2022.09.14: Integrated to ๐Ÿค— Hugging Face. Try out online demo! Hugging Face
  • 2022.09.09: Integrated to ๐Ÿš€ Replicate. Try out online demo! Replicate
  • 2022.09.04: Add face upsampling --face_upsample for high-resolution AI-created face enhancement.
  • 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: Add Colab demo of CodeFormer. google colab logo
  • 2022.07.16: Release inference code for face restoration. ๐Ÿ˜Š
  • 2022.06.21: This repo is created.

TODO

  • Add checkpoint for face inpainting
  • Add checkpoint for face colorization
  • Add training code and config files
  • Add background image enhancement

๐Ÿผ Try Enhancing Old Photos / Fixing AI-arts

Face Restoration

Face Color Enhancement and Restoration

Face Inpainting

Dependencies and Installation

  • 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
conda activate codeformer

# install python dependencies
pip3 install -r requirements.txt
python basicsr/setup.py develop
conda install -c conda-forge dlib (only for dlib face detector)

Quick Inference

Download Pre-trained Models:

Download the facelib and dlib pretrained models from [Google Drive | OneDrive] to the weights/facelib folder. You can manually download the pretrained models OR download by running the following command.

python scripts/download_pretrained_models.py facelib
python scripts/download_pretrained_models.py dlib (only for dlib face detector)

Download the CodeFormer pretrained models from [Google Drive | OneDrive] to the weights/CodeFormer folder. You can manually download the pretrained models OR download by running the following command.

python scripts/download_pretrained_models.py CodeFormer

Prepare Testing Data:

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.

Testing on Face Restoration:

[Note] If you want to compare CodeFormer in your paper, please run the following command indicating --has_aligned (for cropped and aligned face), as the command for the whole image will involve a process of face-background fusion that may damage hair texture on the boundary, which leads to unfair comparison.

๐Ÿง‘๐Ÿป Face Restoration (cropped and aligned face)

# For cropped and aligned faces
python inference_codeformer.py -w 0.5 --has_aligned --input_path [image folder]|[image path]

๐Ÿ–ผ๏ธ Whole Image Enhancement

# For whole image
# Add '--bg_upsampler realesrgan' to enhance the background regions with Real-ESRGAN
# Add '--face_upsample' to further upsample restorated face with Real-ESRGAN
python inference_codeformer.py -w 0.7 --input_path [image folder]|[image path]

๐ŸŽฌ Video Enhancement

# For Windows/Mac users, please install ffmpeg first
conda install -c conda-forge ffmpeg
# For video clips
# video path should end with '.mp4'|'.mov'|'.avi'
python inference_codeformer.py --bg_upsampler realesrgan --face_upsample -w 1.0 --input_path [video path]

Fidelity weight w lays 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.

Citation

If our work is useful for your research, please consider citing:

@inproceedings{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},
    booktitle = {NeurIPS},
    year = {2022}
}

License

This project is licensed under NTU S-Lab License 1.0. Redistribution and use should follow this license.

Acknowledgement

This project is based on BasicSR. Some codes are brought from Unleashing Transformers, YOLOv5-face, and FaceXLib. We also adopt Real-ESRGAN to support background image enhancement. Thanks for their awesome works.

Contact

If you have any questions, please feel free to reach me out at [email protected].

codeformer's People

Contributors

chenxwh avatar sczhou avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.