Multinex: Lightweight Low-Light Image Enhancement via Multi-prior Retinex (CVPR 2026)
April 25, 2026 · View on GitHub
Multinex: Lightweight Low-Light Image Enhancement via Multi-prior Retinex (CVPR 2026)
Alexandru Brateanu, Tingting Mu, Codruta O. Ancuti, Cosmin Ancuti
Consider giving our repository a :star: star :star: if you find it useful!
News
- 25.04.2026: Model weights for object detection on ExDark are now available for download. Read
Detection/README.mdfor more details. - 14.04.2026 : Pre-print, code, and paper page for Multinex (accepted at CVPR 2026) are released!
Abstract: Low-light image enhancement (LLIE) aims to restore natural visibility, color fidelity, and structural detail under severe illumination degradation. State-of-the-art (SOTA) LLIE techniques often rely on large models and multi-stage training, limiting practicality for edge deployment. Moreover, their dependence on a single color space introduces instability and visible exposure or color artifacts. To address these, we propose Multinex, an ultra-lightweight structured framework that integrates multiple fine-grained representations within a principled Retinex residual formulation. It decomposes an image into illumination and color prior stacks derived from distinct analytic representations, and learns to fuse these representations into luminance and reflectance adjustments required to correct exposure. By prioritizing enhancement over reconstruction and exploiting lightweight neural operations, Multinex significantly reduces computational cost, exemplified by its lightweight (45K parameters) and nano (0.7K parameters) versions. Extensive benchmarks show that all lightweight variants significantly outperform their corresponding lightweight SOTA models, and reach comparable performance to heavy models.
Network Architecture
Introduction
This repository contains the official implementation of Multinex for low-light image enhancement. It provides training and testing code for paired-image enhancement on standard benchmarks, together with pretrained checkpoints for direct evaluation.
Please Note: Installation and running instructions for Object Detection on ExDark are available under Detection/README.md.
Results
Quantitative results for Enhancement (LOL-v1, LOL-v2, MEF, DICM, LIME, NPE), and Detection (ExDark)
LOL Datasets (click to expand)
No-Reference Datasets (click to expand)
Object Detection on ExDark (click to expand)
1. Create Environment
We use a PyTorch 2 environment.
1.1 Create the environment
conda create -n multinex python=3.9 -y
conda activate multinex
1.2 Install PyTorch 2
Example for CUDA 11.8:
# With Pip
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# With Conda
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
Change this to accommodate your CUDA version requirements.
1.3 Install dependencies
pip install matplotlib scikit-learn scikit-image opencv-python yacs joblib natsort h5py tqdm tensorboard
pip install einops gdown addict future lmdb numpy pyyaml requests scipy yapf lpips thop timm pytorch_msssim
1.4 Install BasicSR
pip install -e .
Please Note: python setup.py develop has been deprecated. As a result, the above installation is recommended. With this in mind, using basicsr must be done as python -m basicsr.<filename> rather than python basicsr/<filename>.py.
2. Prepare Dataset
Download the LOLv1 and LOLv2 datasets:
LOLv1 - Google Drive
LOLv2 - Google Drive
Organize the datasets as follows:
Dataset structure
data/
├── LOLv1/
│ ├── Train/
│ │ ├── input/
│ │ └── target/
│ └── Test/
│ ├── input/
│ └── target/
└── LOLv2/
├── Real_captured/
│ ├── Train/
│ │ ├── Low/
│ │ └── Normal/
│ └── Test/
│ ├── Low/
│ └── Normal/
└── Synthetic/
├── Train/
│ ├── Low/
│ └── Normal/
└── Test/
├── Low/
└── Normal/
3. Testing
Model weights are available under pretrained_weights/, and are contained within the repository due to their small file sizes (280 KB for Multinex, 20 KB for Multinex-Nano).
Multinex
# LOL-v1
python Enhancement/test.py --opt Options/Multinex_LOL-v1.yaml --weights pretrained_weights/Multinex_LOLv1.pth --dataset LOL_v1
# LOL-v2-real
python Enhancement/test.py --opt Options/Multinex_LOL-v2-real.yaml --weights pretrained_weights/Multinex_LOLv2_real.pth --dataset LOL_v2_real
# LOL-v2-synthetic
python Enhancement/test.py --opt Options/Multinex_LOL-v2-syn.yaml --weights pretrained_weights/Multinex_LOLv2_syn.pth --dataset LOL_v2_synthetic
Multinex-Nano
# LOL-v1
python Enhancement/test.py --opt Options/MultinexNano_LOLv1.yaml --weights pretrained_weights/MultinexNano_LOLv1.pth --dataset LOL_v1
# LOL-v2-real
python Enhancement/test.py --opt Options/MultinexNano_LOL-v2-real.yaml --weights pretrained_weights/MultinexNano_LOLv2_real.pth --dataset LOL_v2_real
# LOL-v2-synthetic
python Enhancement/test.py --opt Options/MultinexNano_LOL-v2-synthetic.yaml --weights pretrained_weights/MultinexNano_LOLv2_syn.pth --dataset LOL_v2_synthetic
For stronger results, add --self_ensemble argument.
python Enhancement/test.py --opt Options/Multinex_LOL-v1.yaml --weights pretrained_weights/Multinex_LOLv1.pth --dataset LOL_v1 --self_ensemble
4. Training
Training is launched through the BasicSR entrypoint.
# Multinex on LOL-v1
python -m basicsr.train --opt Options/Multinex_LOL-v1.yaml
# Multinex on LOL-v2-real
python -m basicsr.train --opt Options/Multinex_LOL-v2-real.yaml
# Multinex on LOL-v2-synthetic
python -m basicsr.train --opt Options/Multinex_LOL-v2-syn.yaml
# Multinex-Nano on LOL-v1
python -m basicsr.train --opt Options/MultinexNano_LOLv1.yaml
# Multinex-Nano on LOL-v2-real
python -m basicsr.train --opt Options/MultinexNano_LOL-v2-real.yaml
# Multinex-Nano on LOL-v2-synthetic
python -m basicsr.train --opt Options/MultinexNano_LOL-v2-synthetic.yaml
Note: For best results, use val.val_freq: 5 in the yaml configs under Options/ directory.
5. Citation
Cite our work if Multinex is useful to your research.
@inproceedings{multinex2026,
title = {Multinex: Lightweight Low-light Image Enhancement via Multi-prior Retinex},
author = {Alexandru Brateanu and Tingting Mu and Codruta O. Ancuti and Cosmin Ancuti},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
year = {2026}
}