mirror of
https://github.com/TencentARC/GFPGAN.git
synced 2025-05-27 20:50:09 -07:00
93 lines
4.5 KiB
Markdown
93 lines
4.5 KiB
Markdown
# GFPGAN (CVPR 2021)
|
|
|
|
[**Paper**](https://arxiv.org/abs/2101.04061) **|** [**Project Page**](https://xinntao.github.io/projects/gfpgan)    [English](README.md) **|** [简体中文](README_CN.md)
|
|
|
|
GFPGAN is a blind face restoration algorithm towards real-world face images.
|
|
|
|
<a href="https://colab.research.google.com/drive/1sVsoBd9AjckIXThgtZhGrHRfFI6UUYOo"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="google colab logo"></a>
|
|
[Colab Demo](https://colab.research.google.com/drive/1sVsoBd9AjckIXThgtZhGrHRfFI6UUYOo)
|
|
|
|
### :book: GFP-GAN: Towards Real-World Blind Face Restoration with Generative Facial Prior
|
|
> [[Paper](https://arxiv.org/abs/2101.04061)]   [[Project Page](https://xinntao.github.io/projects/gfpgan)]   [Demo] <br>
|
|
> [Xintao Wang](https://xinntao.github.io/), [Yu Li](https://yu-li.github.io/), [Honglun Zhang](https://scholar.google.com/citations?hl=en&user=KjQLROoAAAAJ), [Ying Shan](https://scholar.google.com/citations?user=4oXBp9UAAAAJ&hl=en) <br>
|
|
> Applied Research Center (ARC), Tencent PCG
|
|
|
|
#### Abstract
|
|
|
|
Blind face restoration usually relies on facial priors, such as facial geometry prior or reference prior, to restore realistic and faithful details. However, very low-quality inputs cannot offer accurate geometric prior while high-quality references are inaccessible, limiting the applicability in real-world scenarios. In this work, we propose GFP-GAN that leverages **rich and diverse priors encapsulated in a pretrained face GAN** for blind face restoration. This Generative Facial Prior (GFP) is incorporated into the face restoration process via novel channel-split spatial feature transform layers, which allow our method to achieve a good balance of realness and fidelity. Thanks to the powerful generative facial prior and delicate designs, our GFP-GAN could jointly restore facial details and enhance colors with just a single forward pass, while GAN inversion methods require expensive image-specific optimization at inference. Extensive experiments show that our method achieves superior performance to prior art on both synthetic and real-world datasets.
|
|
|
|
#### BibTeX
|
|
|
|
@InProceedings{wang2021gfpgan,
|
|
author = {Xintao Wang and Yu Li and Honglun Zhang and Ying Shan},
|
|
title = {Towards Real-World Blind Face Restoration with Generative Facial Prior},
|
|
booktitle={The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
|
|
year = {2021}
|
|
}
|
|
|
|
<p align="center">
|
|
<img src="https://xinntao.github.io/projects/GFPGAN_src/gfpgan_teaser.jpg">
|
|
</p>
|
|
|
|
---
|
|
|
|
## :wrench: Dependencies and Installation
|
|
|
|
- Python >= 3.7 (Recommend to use [Anaconda](https://www.anaconda.com/download/#linux) or [Miniconda](https://docs.conda.io/en/latest/miniconda.html))
|
|
- [PyTorch >= 1.7](https://pytorch.org/)
|
|
- NVIDIA GPU + [CUDA](https://developer.nvidia.com/cuda-downloads)
|
|
|
|
### Installation
|
|
|
|
1. Clone repo
|
|
|
|
```bash
|
|
git clone https://github.com/xinntao/GFPGAN.git
|
|
cd GFPGAN
|
|
```
|
|
|
|
1. Install dependent packages
|
|
|
|
```bash
|
|
# Install basicsr - https://github.com/xinntao/BasicSR
|
|
# We use BasicSR for both training and inference
|
|
# Set BASICSR_EXT=True to compile the cuda extensions in the BasicSR - It may take several minutes to compile, please be patient
|
|
BASICSR_EXT=True pip install basicsr
|
|
|
|
# Install facexlib - https://github.com/xinntao/facexlib
|
|
# We use face detection and face restoration helper in the facexlib package
|
|
pip install facexlib
|
|
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
## :zap: Quick Inference
|
|
|
|
Download pre-trained models: [GFPGANv1.pth](https://github.com/TencentARC/GFPGAN/releases/download/v0.1.0/GFPGANv1.pth)
|
|
|
|
```bash
|
|
wget https://github.com/TencentARC/GFPGAN/releases/download/v0.1.0/GFPGANv1.pth -P experiments/pretrained_models
|
|
```
|
|
|
|
```bash
|
|
python inference_gfpgan_full.py --model_path experiments/pretrained_models/GFPGANv1.pth --test_path inputs/whole_imgs
|
|
|
|
# for aligned images
|
|
python inference_gfpgan_full.py --model_path experiments/pretrained_models/GFPGANv1.pth --test_path inputs/cropped_faces --aligned
|
|
```
|
|
|
|
## :computer: Training
|
|
|
|
We provide complete training codes for GFPGAN. <br>
|
|
You could improve it according to your own needs.
|
|
|
|
> python -m torch.distributed.launch --nproc_per_node=4 --master_port=22021 train.py -opt train_gfpgan_v1.yml --launcher pytorch
|
|
|
|
## :scroll: License and Acknowledgement
|
|
|
|
GFPGAN is realeased under Apache License Version 2.0.
|
|
|
|
## :e-mail: Contact
|
|
|
|
If you have any question, please email `xintao.wang@outlook.com` or `xintaowang@tencent.com`.
|