Darktable Raster masks explained

Aurelien, is there a release note or thread on the raster mask option. I tried to invoke it but clearly I am doing something wrong…

https://github.com/darktable-org/darktable/blob/master/doc/usermanual/darkroom/concepts/raster_masks.xml

The idea is simple: When you create any kind of mask in a module, be it parametric, drawn or a combination thereof, you can use the same mask in later modules.

2 Likes

Thanks very much ….I did understand the concept just not the implementation I think I have it now…wasn’t sure how the tool worked…I thought you had to create a raster mask after creating your mask
by clicking raster but that is not the correct sequence of how to use it…thanks for your comments

It’s worth mentioning that it’s not copying but sharing. If original mask changes then the raster will change accordingly.

It seems a bit buggy still to me. Although it is offered as an option in most modules not all modules show all the masks. The exposure mask was available in most modules but i added a couple of more parametric masks in other modules and they were not available in the dropdown for the raster mask…only exposure but then I went to the channel mixer and all the masks that i had added were available in the drop down. This might just be the windows build that I have or it may be early days for the raster masks…I may try again in a systematic way to recreate this so I can post it but that is what I found in attempting to use it. One other point is that you would have to go back to the original module that you masked to display the mask as that option disappears when you select raster in a module…again maybe I missed something but that is how is is working for me…

As I said, you can only use a mask in modules coming at a later point in the pipe. In case you don’t know, the processing order is bottom to top in the list of modules. So everything you do in levels won’t shop up in, say, exposure, but in lowpass. That is an integral restriction of the design and how darktable works and can’t be changed easily. If it’s possible for you make sure to create the mask in a module that is coming early and reuse it later on.

Thanks I read your earlier post as later meaning as in later in your workflow not the pipeline. Thanks that likely explains what I was observing. I guess the best way to determine the order is to select the active modules and see what order they are in , in that list. It would still be nice to be able to display the mask in the module that you are using to confirm that you are masking what you believe you are from the rastered one chosen…I know you could go and check the module you have selected but that might be cumbersome. Thanks for taking the time to clarify.

So enabling every module and then going to the active modules tab…this should reflect the Pixelpipe…List in file is top to bottom so in order of last to first in the order of modules processed…I think this should be accurate…DT Pixelpipe.pdf (52.0 KB)

No need to enable them, the order is the same as in the other tabs. And when you click on the currently active tabs you will see all modules, independent of tab.

@houz Just getting back to these raster masks…I just haven’t got my head around it from a pixelpipe perspective…So if you apply 3 modules to an image as an example and do a raster in the first one then the 3rd one and you delete or inactivate the second module then is the raster mask in module 3 still including what you intended…potentially I would think not…I may be missing something for sure…could figure out a way to check as I couldn’t see the display mask option when raster was selected only a drop down of what raster mask to apply…

If I understand you correctly, when ‘you will see all modules’, they are listed in the proper order that DT applies the modules in the PixelStack? raw black/white point being the first module that DT applies and watermark being the last module that will be applied to my image?

RE “you can only use a mask in modules coming at a later point in the pipe”

I must be missing something. Using the mouse and keyboard the editor COULD have made that mask in an earlier-in-the-pipeline module.

So if a mask is made in step E there has to be programmatic way to store that mask in a temporary buffer and then attach it to an earlier-in-the-pipeline module–as if it was manually made earlier.

All of that might represent a fair amount of coding. But it must be possible. Or am I’m missing something?

Perhaps as Dylan said “Something is happening here but I don’t know what it is”

@pittendrigh, this might help… Ensuring raster masks are less dependent on the source · Issue #6116 · darktable-org/darktable · GitHub

Sandy I don’t think it’s a valid mask any more as at step e a-d have been applied before the mask is created and will reflect its composition if now transferred earlier it won’t capture the intended area anymore