Unsupervised GAN learns to brighten photos without before/after pairs
A GAN that enhances low-light images using only unpaired data, sidestepping the usual need for perfectly matched training examples.

What it does
EnlightenGAN takes dark or low-light photographs and brightens them using a generative adversarial network. The twist: it trains on unpaired images—separate collections of normal and low-light photos with no one-to-one correspondence. This matters because paired datasets (same scene, different exposures) are tedious to collect.
The interesting bit
The project leans on self-regularization and attention mechanisms to keep the GAN from hallucinating details that weren’t there. The README is sparse on architecture specifics, but the paper (IEEE TIP 2021) and supplementary materials fill in the gaps for the curious.
Key highlights
- Unsupervised training: no paired low/normal-light images required
- Pretrained model available via Google Drive for immediate testing
- Includes evaluation datasets: LIME, MEF, NPE, VV, DICP
- Community fork for faster inference:
arsenyinfo/EnlightenGAN-inference - BaiduYun mirror available (linked via issue #28)
Caveats
- Training demands at least 3× GTX 1080 Ti GPUs or batch size tweaks
- Python 3.5 requirement suggests the codebase has aged; compatibility with newer PyTorch versions is unclear
- Test setup is awkward: requires a dummy image in
testBjust to make the script run - Visdom server required for training visualization—an extra moving part
Verdict
Worth a look for computer vision researchers or anyone building low-light pipelines who lacks paired training data. Skip it if you need a polished, production-ready tool; the setup friction and hardware demands are real.