darktable 3.0 masking inconsistencies & bugs

I have heard several people over the past few weeks referring to people they know who had trouble with masks in darktable 3.0 (opacities, inconsistent states, and such).

We plan to publish a version 3.0.1 as a first bugfix version in 2 to 4 weeks from now, we really need a consistent way to reproduce those bugs to understand and fix them. Words overheard through the bush don’t get bugs fixed.

Please share this to your friends and get them to report those bugs.

For non-English speakers, I can interact with people in German (in fact I’m willing to practice German again, half the darktable team is from Germany and we only ever speak English) and in French as well, so don’t let language issues prevent you from reporting. Post in whatever language you are comfortable, we will find people to translate.


I’ve just been looking at this very subject (see https://github.com/darktable-org/darktable/issues/4217 and Strange behavior of drawn mask). There does seem to be an issue around the opacity setting in the darktablerc file being set to 0. It happened to me on upgrade from 2.6 to 3.0 but hasn’t happened since

A quick fix might be to stop drawn shapes defaulting to the opacity set in darktablerc. I’m struggling to think of a use case for retaining the last used opacity, though I can see the use in retaining mask shape.

Also I have an ongoing issue with gradient masks (on current darktable master) that I haven’t reported yet - because, while annoying, I can work around it. When I raise the mouse button to place a gradient mask its angle often changes from where I set it. I end up having to make a lot of micro-adjustments because I have to compensate for some additional rotation that the application automatically adds.

I have been discussing this with @Pascal_Obry on the github issue. I think the first of my issues was caused by the fact that I didn’t know how darktable works: i.e. that ctrl-scrolling before placing a shape sets the default opacity for subsequent shapes. I suspect users are accidentally ctrl-scrolling, perhaps meaning to shift-scroll, and not realising (because there’s no visual indication except for the top bar - which many people hide).

Given the sudden appearance of the issue, I suspect something about the upgrade to darktable 3 reset this default to zero and nobody knew it was doing this or how to set it back.

This issue is by all means related to the opacity setting of the mask. In my case it is exactly as @elstoc describes. I did not know about that feature till the move to 3.0. (By the way I used intensively the rc2 in december, where I did not stumble over the opacity setting.)

The issue still happens here and then, but then I crtl-scroll the mask. I like the idea having a default value for new sessions instead of using the opacity value from darktablerc.
I’m afraid that I can’t add anything to this subject what’s beyond the github thread mentioned by @elstoc

I’m not sure wether the problem I see has to do with the mask topic but here’s what I observe:

When using the retouch module with wavelet decompose I try to soften selectively with the blur tool using the brush tool (kind of a mask?). No matter what opacity I choose (CTRL+scrolling) there is no effect of blur at some times - no effect at all.
At another time I start darktable it works perfectly. No idea why.
At another time blurring with opacity 100% only has a minimal effect, as if it would be set to ~20% - no idea why.

I use darktable on Windows 10 as well as on Ubuntu Linux. It is the same problem on both platforms. I compiled darktable 3 on my own and changed to a prepackaged version - same problem.

Thought it has to do with upgrading from 2.6 and keeping darktablerc - I deleted darktablerc (hint from a pixls discussion thread) and let darktable 3 create a new config file, but that didn’t change the behaviour. I duplicated the image and discarded history - still the same problem.

p.s. the problem seems to have to do with the brush tool. I tried to blur, “heal” and “clone”, all of them work with a circle, ellipse and drawn path - but none works with the brush tool. Opacity value is set to 100 % but the effect is zero or minimal.


I found a similar behaviour as Roland_Rainder described. The brush tool of the retouch module seemed to not work anymore, some hours after I moved from 2.6 to 3.0. The info line above the image showed an opacity of 100%. I fiddled with size, blur and opacity but found no way to get the tool work. Meanwhile the tool looked somewhat weird. I couldn’t find a way to get the tool work and endet up with looking into the darktablerc file. I was very surprised to see the following lines :


The size of the brush was extremely small, no blur, and opacity very small. As mentioned above, I am absolutely certain that the opacity was shown as 100% in the info line. And the value shown changed, when I CTRL-scrolled the mouse wheel. I manually changed the settings by editing darktablerc to


and everything worked perfectly as expected. I moved to dt 3.1 some hours later, since then the issue could not be observed anymore. No idea what happend. I kept my old darktablerc when moving from 2.6 to 3.0 and edited it never before.

Ok sorry - a bit of an aside but I’m not sure I ever completely understood all the terminology here.

I get opacity, but never quite got my head around how that differs from hardness and density.

Can anyone enlighten me?

The opacity is a physical property of a material. It describes the degree of blocking light while transmitting a material. For the brush tool the this means :

opacity of 100% -> the bush paints with full “intensity” on your picture
opacity of 0% -> the brush is completely transparent, you can paint but you will see nothing

The hardness describes the blur of the tool. For the brush tool this means :

hardness = 1 -> no blur, the brush is completely intransparent over its whole area
hardness < 1 -> the brush is blurred, intransparent in the middle, more and more transparent towards the edge.

And obviously the developers decided that the parameter for the opacity of the brush should be named brush_density in the config file darktablerc. This is a bit confusing because the term “density” is not physically meaningfull at this point. The optical density is the refractive index of a material and has nothing to do with the opacity.


Ah understood. Thanks @pehar. I wondered why I couldn’t find any reference to density in the manual.

I had a similar problem with the retouch and the spot removal tool. Complete removal of spots was not possible with either of them.
Thanks a lot for your tip! Setting brush_density made it better. In addition I also had to set “plugins/darkroom/masks/opacity=1.0”, mine was set to 0.75.


A also first ran into this using the brush tool in retouch in version 2.6. It did nothing, even though the mask would appear, the opacity was zero, but this was “hidden”

Now in version 3.0 I have observed the same problem others reported where ALL drawn masks default to opacity=0, but this does not appear anywhere obvious in the GUI, and in fact the “mask opacity” slider doesn’t do anything, only ctrl-scroll works. I also found that this does NOT reset to the last used value, it stays at 0. I finally found the darktablerc setting to reset the default,

It should reset to the last used value, but only if you ctrl-scroll before you place the shape. Worked for me anyway.

1 Like



Here’s an example of what I am having happen:




The mask is drawn to exclude the sky from the parametric selection. I expect it to completely exclude the sky, but there is a low opacity selection. As far as I can tell from my settings, that just shouldn’t be. Something else I have noticed in mask manager: the percentage to the right of the path name. What does that mean? Is it related to the low opacity selection in the sky?

P.S. darktable-3.0.0-win64.exe

That figure is the opacity of the drawn shape, and is why you’re getting the issues. Select that mask in the mask manager, hover over the drawn mask with your mouse, hold ctrl and scroll up until this number changes to 100%. If you want to change it permanently (so that an opacity of 100% applies to all new shapes by default), draw another shape and ctrl-scroll-up before you place it.



That took care of it. Thanks.

The following workflow throws an exception:

  • darkroom (any picture, any history)
  • open/activate tone equalizer
  • set zoom to 100%
  • choose “drawn & parametric mask”
  • choose any drawn mask (ellipse, circle, curve,…)
  • set “feathering radius” to, say 0,2

OS: Win 10, dt 3.0.0

Backtrace : darktable_bt_1UHVF0.txt (9.7 KB)

Ok, so I guess the summary is:

  • some transient and unintuitive opacities issues while migrating from 2.6 that can be solved with settings,
  • crashes with tone equalizer being used with masked (although why on Earth would you use masks on top of a module that is already masked internally, but… that’s on me for enabling masks).
  • crashes, slow-downs and weird opacity issues too with retouch (which is super weird because nothing has changed in this module since 2.4).

Did I miss something ?

1 Like