Skip to content

About

P-PatchDiff: Progressive patch diffusion models for low-light image enhancement (IJCV 2026)

Resources

Stars

6 stars

Watchers

0 watching

Forks

Latest commit

 

History

14 Commits

Folders and files

Repository files navigation

P-PatchDiff: Progressive Patch Diffusion Models for Low-Light Image Enhancement

Ruoyu Guo · Haonan Zhong · Maurice Pagnucco · Yang Song

School of Computer Science and Engineering,
University of New South Wales, Sydney, Australia

International Journal of Computer Vision (IJCV), 2026

IJCV arXiv Weights

Update

  • 09/2026 Add instructions for inference.
  • 05/2026 We release the code and checkpoint.

Setup

Our code should be compatible with most Python>=3.8 and PyTorch>=1.11 versions.

git clone https://github.com/RuoyuGuo/P-PatchDiff
cd P-PatchDiff
conda create -n PyDiff python=3.8 
conda activate PyDiff
conda install pytorch==1.11.0 torchvision torchaudio cudatoolkit=11.3 -c pytorch 
cd BasicSR-light
pip install -r requirements.txt
BASICSR_EXT=True sudo $(which python) setup.py develop
cd ../PPatchDiff
pip install -r requirements.txt
BASICSR_EXT=True sudo $(which python) setup.py develop

Datasets

Please download LOL-v1, LOL-v2, LOL-v2-Syn, LSRW, and UHDLOL

LOL-v2 and LOL-v2-Syn are packed together, so you only need to download either of them once.

Checkpoints

Please download our pretrained ckpt from Google Drive.

Structure

Please organise your directory structure like this:

P-PatchDiff/
├── BasicSR-light
├── PPatchDiff
├── ckpt
│   ├── lolv1_pgc.pth
│   ├── lolv2_pgc2.pth
│   └── lolsyn_pgc2.pth
├── dataset
│   ├── LOLv1
│   │   ├── eval15
│   │   └── our485
│   ├── LOLv2
│   │   ├── Real_captured
│   │   └── Synthetic
│   ├── LSRW
│   │   └── Eval
│   └── UHDLOL
│       ├── testing_set
│       └── train_set
└── README.md

Training

In /PPatchDiff/options/, we provide a set of yaml files to manage our training configs.

Please double-check gt_root and input_root in each config and ensure they can successfully reach the data.

  • Training on the LOL-v1 training set
CUDA_VISIBLE_DEVICES=0 python -m torch.distributed.launch --nproc_per_node=1 --master_port=22666 pydiff/train.py -opt options/train_lolv1_pgc.yaml --launcher pytorch

Testing

Note

For testing:

Please set the train dataset paths to the same paths as the val dataset

Please also set the batch_size_per_gpu to 1.

datasets:
  train:
    gt_root: /path/to/test/high
    input_root: /path/to/test/low
    batch_size_per_gpu: 1

  val:
    gt_root: /path/to/test/high
    input_root: /path/to/test/low
  • Evaluating on the LOL-v1 testing set
CUDA_VISIBLE_DEVICES=0 python pydiff/train.py -opt options/infer_lolv1_pgc.yaml

Progressive strategy

You can use the progressive_list and stride_list parameters in the config files to adjust patch size and stride size at each step.

Citation

@article{PPatchDiff,
  title={P-PatchDiff: Progressive patch diffusion models for low-light image enhancement},
  author={Guo, Ruoyu and Zhong, Haonan and Pagnucco, Maurice and Song, Yang},
  journal={International Journal of Computer Vision},
  volume={134},
  number={9},
  pages={404},
  year={2026},
  publisher={Springer}
}

Acknowledge

PyDiff, WeatherDiff

About

P-PatchDiff: Progressive patch diffusion models for low-light image enhancement (IJCV 2026)

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages