Skip to content
No description, website, or topics provided.
Python Shell
Branch: master
Clone or download

Noise Flow - A normalizing flows model for image noise modeling and synthesis

This repository provides the codes for training and testing the Noise Flow model used for image noise modeling and synthesis as described in the paper:

Noise Flow: Noise Modeling with Conditional Normalizing Flows

It also provides code for training and testing a CNN-based image denoiser (DnCNN) using Noise Flow as a noise generator, with comparison to other noise generation methods (i.e., AWGN and signal-dependent noise).

Required libraries

Python (works with 3.6)

TensorFlow (works with 1.12.0)

TensorFlow Probability (tested with 0.5.0)

Despite not tested, the code may work with library versions other than the specified.

Required dataset

Smartphone Image Denoising Dataset (SIDD)

It is recommended to use the medium-size SIDD for training Noise Flow:


The code checks for and downloads SIDD_Medium_Raw if it does not exist.


Start by running

It contains a set of examples for training different models (as described in the paper) and optionally perform testing and sampling concurrently.

Important parameters

--sidd_path: path to the SIDD dataset

--arch: the architecture of the noise flow model

--cam: (optional) to use/sample data from a specific camera

--iso: (optional) to use/sample data from a specific ISO level

Refer to or for details on the rest of parameters.

Sampling only

To use the Noise Flow trained model for generating noise samples:

Start by running

Application to image denoising with DnCNN

Start by running which contains examples for training DnCNN with synthetic noise from a Gaussian, signal-dependent, or Noise Flow model. Also, it contains an example for training with real noise from the SIDD.


Abdelrahman Abdelhamed, Marcus A. Brubaker, and Michael S. Brown. Noise Flow: Noise Modeling with Conditional Normalizing Flows. In ICCV, 2019.



If you use Noise Flow in your research, we kindly ask that you cite the paper as follows:

  title={{Noise Flow: Noise Modeling with Conditional Normalizing Flows}},
  author={Abdelhamed, Abdelrahman and Brubaker, Marcus A and Brown, Michael S},
  booktitle={International Conference on Computer Vision (ICCV)},


This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License. The terms and conditions can be found in the LICENSE file.


Abdelrahman Abdelhamed (

You can’t perform that action at this time.