Updated dodge and burn plugin - non-destructive

I’ve updated my dodge and plugin to work in GIMP 3.

How it works:

The plug-in creates a single layer filled with 50% grey, set to soft light mode. It inserts that layer directly above whatever layer is currently selected. You could of course do that manually. This plug-in simply saves you some steps and makes it easier to dodge and burn in GIMP non-destructively.

I created this because the built in dodge and burn tools in GIMP were destructive when you use them on a pixel layer.

It’s supported for GIMP 3 in Linux, macOS, and Windows.

I’ll record a tutorial of course. Even so, I hope it’s self-explanatory as you use it.

It’s available in the following languages:

Dutch (Nederlands)
English (English)
French (Français)
German (Deutsch)
Italian (Italiano)
Hungarian (Magyar)
Japanese (日本語)
Polish (Polski)
Portuguese (Português)
Spanish (Español)
Ukrainian (Українська)
Chinese (Simplified) (简体中文)
Chinese (Traditional) (繁體中文)

The plugin detects the language you’re running GIMP in, and adjusts to it.

You can read more about the plugin and download it here:

https://www.chuckhenrich.com/gimp-dodge-and-burn-plug-in-simple-and-flexible/

Any and all feedback will be much appreciated!

8 Likes

Thank you so much for the update.

Since my screen time is very limited due to an eye condition, I’ll keep this brief:
The plugin works on Windows 10 for Gimp 3.0.4, but not for Gimp 3.1.4 (gimp.org, as of August 31, 2025).

It’s not even visible in the menu because:

Traceback (most recent call last):
File “C:\Users\Joanna\AppData\Roaming\GIMP\3.1\plug-ins\dodge-and-burn-soft-light-v3\dodge-and-burn-soft-light-v3.py”, line 50, in
gi.require_version(“Rsvg”, “2.0”)
File “C:\Program Files\GIMP 3.1\lib\python3.12\site-packages\gi_init_.py”, line 129, in require_version
raise ValueError('Namespace s not available' namespace)
ValueError: Namespace Rsvg not available
GIMP-OSTRZEŻENIE: gimp: gimp_wire_read(): unexpected EOF

Removing two lines:

gi.require_version(“Rsvg”, “2.0”)

from gi.repository import Rsvg

fixes the problem.

The same situation applies interactive-luminosity-masks-v3.py.

Thanks for the troubleshooting. I’m glad it’s working for you in 3.0.4. It’s way too early to be updating anything for 3.1.x because that upcoming version is very much a work in progress. For example, the Windows build is missing key libraries, which is likely the cause of what you’ve discovered.

Generally it’s only a good idea to start testing extensions/plugins/etc against a release candidate of any software. A 3.1 RC is quite a bit in the future.

I tried to run this plug-in on GIMP 3.04 + Windows 11 Japanese.
However I encountered following error messages and this plug-in was not displayed on UI.

Unable to run plug-in “dodge-and-burn-soft-light-v3.pot”
Failed to execute child process (Exec format error)

Also I tried to use it on GIMP3.04 in Kubuntu 24.02. However I encountered following messages and dialog was not displayed.

It seems that there’s a conflict with your another plugin.

Thanks for letting me know, Yasuo! I didn’t realise GIMP would treat a localisation .pot file as a plugin. I’ve updated the downloadable .zip file to move that .pot into the locale folder. It should not be marked executable.

Please download the new version and try again.

1 Like

Thank you. I confirmed it works on Windows.
However, the UI is a little confusing, as the user must select the brush tool themselves after launching the plugin. If possible, it would be easier to understand if the plugin could automatically select the brush tool.

Thanks for confirming that it’s working for you.

I’ve never heard the UI on that plugin called confusing, because there is no UI. It’s just a short message informing the user that a dodge and burn layer has been added to the image, and that they can use a brush to dodge and burn. If a user hasn’t read the article introducing and explaining it, that’s up to them.

As for automatically selecting the brush tool, I don’t think that would be helpful. Some users might like it, some might not. And the choice of which brush to use is a personal preference. I don’t want to get in the way of that.

Also, if a user doesn’t know how to use a brush, and which brush to use for a specific task … that’s not something I can help them with.

So I’m just going to leave it as is.