Easy Tone Mapping in GIMP With Reduced Fat Cheese

This beginner’s tutorial describes how to make shadows pop in GIMP without that overly cheesy “HDR” look.

  1. Open a photo in GIMP. In this example I’m using a plain ol’ JPEG.

  2. Duplicate the layer and desaturate it.

  3. Invert it.

  4. Set blending mode to “Overlay”, strength 50.

  5. Duplicate the base layer again, move it to the top and set blending mode to “Lighten only”.
    A side-effect of this lame tone mapping technique is that high radius halos mighty appear, and the sky could be darkened in a cheesy way. You would more easily notice halos in what should be an even blue sky than in grass or rocks. As we only want to make the shadows pop and we don’t want a fake “HDR look” cheesy sky, we fix it in this step. This layer’s job is to undo the effects of this whole technique in the light areas.

  6. Go back to the black-and-white layer and blur it. How much you blur it depends on how large your image is and on taste, that’s why I left this step for last. 30 works well in this example.


Desaturating in step 2 can be done in numerous ways:

  • You could just desaturate it as I did, but there already you have 4 methods to choose from (in GIMP 2.9.4).
  • You could use the Mono Mixer, enabling “Preserve luminosity” and sliding the “Red Channel Multiplier” all the way to the right.
  • You could decompose the image to RGB (or other) and use one of the resulting layers.
    Note: Decomposing to RGB and using the R channel leads to an almost identical result as you’d get using the Mono Mixer as described in the previous step - a workaround if you’re stuck with GIMP 2.8.

Compare the first and last screenshots. The end result is a photo with a little bit more pop without looking fake. Lower the blur radius and try other desaturation methods for more cheese.


Very nice tutorial @Morgan_Hardwood!

I will say, even if you have directed this tutorial to beginners, it is the nice way to show every user what can be achieved with GIMP blending modes. Description for them can be found on the GIMP help page and elsewhere but their true performance can only be shown with such examples.
I wish if we had an extra page for such tutorials.

Hi @Morgan_Hardwood, nice and simple example!

Sometimes I find useful to replace the gaussian blur with some other edge-aware blurring method (like the bilateral filter) to reduce the presence of halos…

Anyhow, just for fun I created a PhotoFlow preset for this technique. All the steps you describe are applied non-destructively, allowing for example to tweak the blur layer while looking at the final result in the preview.
If anyone is interested, the preset file is here.


Hi Carmelo, Thanks you for your preset. At soon… byebye

EDIT; I put this file .pfp in presets folder of the share>Photoflow but after how use it, please?
G’Mic filters > Tone-maping? Please?

1 Like

This technique was called contrast mask a few years back. Very effective for certain type images, especially landscapes. :slight_smile:

New filter Light & Shadows / Pop shadows :


No merci David mais c’est dans Photoflow, il y a un filtre special tone-maping et je demande à Carmelo comment utiliser son fichier preset special dans Photoflow. Merci encore David pour ta gentillesse.

Nice new preset, David. I’ve been on a fake HDR quest for a few weeks now. May check your new preset out shortly. :slight_smile:

It’s very simple:

  • select the layer above on which you want to apply the pleset
  • right-click on the layer and chose Load preset
  • navigate to the folder where you saved the simple_shadow_recovery.pfp file
  • select the .pfp file and load it by either clicking on the Open button or double-clicking on the file itself

The preset should create a new group layer containing all the layers for generating and applying the luminosity mask… just let me know if you encounter some problems with this procedure.

1 Like

@Morgan_Hardwood, thanks for the tutorial. It is very easy to understand.

@patdavid, there should probably be a tag/category for tutorials for easy access.

@David_Tschumperle, I didn’t consider imM={-2,[im,iM]} but it is a good idea.

Ha yes, thanks you so much my friend! I will try this method…HAve a good day, Carmelo.

@David_Tschumperle Ha oui j’ai compris ta remarque aujourd’hui car tu as fait la même chose que Carmelo dans G’Mic! Ok c’est noté.
A+ Patrick

Yes there should! I have tagged this topic with tutorial and we should make sure to tag the relevant posts going forward also. To see all tagged topics: