ddrm  by bahjat-kawar

Research paper for diffusion-based image restoration

created 3 years ago
642 stars

Top 52.8% on sourcepulse

GitHubView on GitHub
1 Expert Loves This Project
Project Summary

Denoising Diffusion Restoration Models (DDRM) provides official code for a NeurIPS 2022 paper, enabling the use of pre-trained Denoising Diffusion Probabilistic Models (DDPMs) to solve general linear inverse problems. It offers efficient restoration without problem-specific supervised training, targeting researchers and practitioners in image processing and generative modeling.

How It Works

DDRM leverages pre-trained DDPMs by reformulating inverse problems as a sequence of denoising steps. It adapts the diffusion process to incorporate conditioning information from the degraded input, effectively guiding the generative model towards a solution that satisfies the inverse problem constraints. This approach avoids the need for fine-tuning or training new models for each specific degradation type.

Quick Start & Requirements

  • Install via conda/mamba using the provided environment.yml.
  • Requires PyTorch 1.8 or 1.10.
  • Pretrained models from openai/guided-diffusion, pesser/pytorch_diffusion, and ermongroup/SDEdit are utilized.
  • ImageNet validation set (1,000 images) is used for comparisons.
  • Official project website: https://bahjat-kawar.github.io/ddrm-project/

Highlighted Details

  • Solves general linear inverse problems (e.g., super-resolution, deblurring, inpainting) using pre-trained diffusion models.
  • Achieves state-of-the-art results on various restoration tasks without problem-specific supervised training.
  • Offers flexibility in controlling restoration quality via hyperparameters like eta and timesteps.
  • Supports multiple degradation types including super-resolution (sr2, sr4, sr8, sr16), deblurring (deblur_uni, deblur_gauss, deblur_aniso), and inpainting (inp).

Maintenance & Community

  • Authors are from Technion and Stanford University.
  • The implementation is inspired by hojonathanho/diffusion, pesser/pytorch_diffusion, and ermongroup/ddim.
  • A list of datasets for demonstration is available at https://github.com/jiamings/ddrm-exp-datasets.

Licensing & Compatibility

  • The repository does not explicitly state a license. The underlying models it references may have different licenses.

Limitations & Caveats

The README does not specify licensing, which could impact commercial use or integration into closed-source projects. Some pre-trained models, particularly the CelebA model, may not produce high-quality unconditional samples.

Health Check
Last commit

2 years ago

Responsiveness

1 day

Pull Requests (30d)
0
Issues (30d)
0
Star History
15 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.