Profiled noise reduction in Paint by Zaweba
Measure your camera's noise and remove it cleanly with Profiled Noise Reduction in Paint by Zaweba, or use Non-Local Means and Wavelet Denoise.

Grainy speckle creeps into photos taken in low light or at high ISO, and it is called noise. Reducing it is a balancing act: too little and the speckle stays, too much and skin, fur and foliage turn into a smooth smear. Paint by Zaweba offers three approaches, and the most careful of them measures the noise in your picture before removing it.
Profiled Noise Reduction
Most noise filters treat noise as the same everywhere. In real photos it isn't. It is usually stronger in the shadows than in the highlights, and it differs from one colour channel to another. Profiled Noise Reduction takes that into account.
First it measures a noise profile, separately for each colour, from flat areas of the picture where there should be no detail, such as a plain wall, a clear sky or a smooth background. You can measure with a button or let it find the flat areas automatically.
Next it uses that profile to even out the noise with a generalised Anscombe transform. The transform reshapes the values so that the noise becomes the same strength across the brightness range. Once the noise is even, it can be removed with one consistent setting rather than one that is too strong in the highlights and too weak in the shadows.
Finally it applies wavelet shrinkage. The picture is split into detail at different scales, and at each scale small values, which are mostly noise, are reduced while large values, which are mostly real edges and texture, are kept.
The result is cleaner than a one-size filter, with more of the real detail intact.
Presets by camera and ISO
Noise depends on the camera and the ISO setting. Profiled Noise Reduction keeps the profile in presets, so once you have measured a camera at a given ISO, you can reuse that profile on every photo you take with the same settings. Build up a set for the ISOs you use most and noise reduction becomes a quick, consistent step.
Non-Local Means and Wavelet Denoise
Two other methods are provided too.
Non-Local Means looks across the picture for patches that look alike and averages them. Because repeated texture, such as brickwork or fabric, has many similar patches, it can remove noise while keeping a lot of fine pattern. It is slower on large images but can give very clean results.
Wavelet Denoise uses the same wavelet idea as the profiled method but without the measured profile. It is quick and easy to set by eye, and a good choice when there is no flat area to measure.
Getting a natural result
Measure from truly flat areas. If the area has texture, the profile will treat that texture as noise and remove it. Zoom to 100 percent to judge. Noise reduction looks different at screen size; only full size shows what is happening to fine detail. Leave a little grain. A trace of noise looks photographic; a perfectly smooth picture often looks artificial.
Where it fits
If you shoot RAW, the RAW Developer has its own noise reduction in its detail section, which is the first place to deal with noise. Use the filters here for JPEGs, for images that need more than the RAW stage gave, or for a particular layer. Image Stacking, under File > Automate, is another way to cut noise: averaging several shots of the same scene reduces it naturally.
Run noise reduction before sharpening. Sharpening first makes noise stronger and harder to remove.
Everything runs on your own computer in Paint by Zaweba, with no uploads and no account.