Official SRFlow training code: Super-Resolution using Normalizing Flow in PyTorch
News: Unified Image Super-Resolution and Rescaling [code]
git clone https://github.com/andreas128/SRFlow.git && cd SRFlow && ./setup.sh
This oneliner will:
requirements.txt
If you want to install it manually, read the setup.sh
file. (Links to data/models, pip packages)
./run_jupyter.sh
This notebook lets you:
source myenv/bin/activate # Use the env you created using setup.sh
cd code
CUDA_VISIBLE_DEVICES=-1 python test.py ./confs/SRFlow_DF2K_4X.yml # Diverse Images 4X (Dataset Included)
CUDA_VISIBLE_DEVICES=-1 python test.py ./confs/SRFlow_DF2K_8X.yml # Diverse Images 8X (Dataset Included)
CUDA_VISIBLE_DEVICES=-1 python test.py ./confs/SRFlow_CelebA_8X.yml # Faces 8X
For testing, we apply SRFlow to the full images on CPU.
The following commands train the Super-Resolution network using Normalizing Flow in PyTorch:
source myenv/bin/activate # Use the env you created using setup.sh
cd code
python train.py -opt ./confs/SRFlow_DF2K_4X.yml # Diverse Images 4X (Dataset Included)
python train.py -opt ./confs/SRFlow_DF2K_8X.yml # Diverse Images 8X (Dataset Included)
python train.py -opt ./confs/SRFlow_CelebA_8X.yml # Faces 8X
1. Get HD-CelebA-Cropper
git clone https://github.com/LynnHo/HD-CelebA-Cropper
2. Download the dataset
img_celeba.7z
and annotations.zip
as desribed in the Readme.
3. Run the crop align
python3 align.py --img_dir ./data/data --crop_size_h 640 --crop_size_w 640 --order 3 --face_factor 0.6 --n_worker 8
4. Downsample for GT
Use the matlablike kernel to downscale to 160x160 for the GT images.
5. Downsample for LR
Downscale the GT using the Matlab kernel to the LR size (40x40 or 20x20)
6. Train/Validation
For training and validation, we use the corresponding sets defined by CelebA (Train: 000001-162770, Validation: 162771-182637)
7. Pack to pickle for training
cd code && python prepare_data.py /path/to/img_dir
The following command creates the pickel files that you can use in the yaml config file:
cd code
python prepare_data.py /path/to/img_dir
The precomputed DF2K dataset gets downloaded using setup.sh
. You can reproduce it or prepare your own dataset.
Get a quick introduction to Normalizing Flow in our [Blog].
If you found a bug or improved the code, please do the following:
@inproceedings{lugmayr2020srflow,
title={SRFlow: Learning the Super-Resolution Space with Normalizing Flow},
author={Lugmayr, Andreas and Danelljan, Martin and Van Gool, Luc and Timofte, Radu},
booktitle={ECCV},
year={2020}
}