Discontinuous hue ranges

So from what I understand you can reuse the masks or shapes in other modules in the pipeline to apply different kind of adjustments to the same area. From what I understand if the mask you are referencing is later changed it will be updated for all the modules that use it as well.

I am sort of asking if the opposite is possible as well? Where you have a type of adjustment you want apply but the hue range you want to apply it to is discontinuous (this is just an example you may as well use a luminance range or a saturation range). Is there an option for the diplicated module to synchronize the values from the original?

Hope this makes a bit more sense?

I am relatively new to darktable and this is a question that popped into my head after reading the manual and watching Aurelien’s and Boris’ videos!!

Thinking off the top of my head each parametric mask will use the input values from the module before so for example what is selected by one range might not be the same. One thing that you can do is something like this use a no op module early in the pipe like exposure and use multiple instances where you define a parametric mask in each as needed then you could use these via the raster mask in later modules and the defined pixels won’t change as noted above… this may or may not work for you

1 Like

Is there a way to link the two module so that the duplicated module would be synchornized to the original and that any changes made to the one will be applied to the other as well?

No. But it’s not a bad idea.

I was trying to think of a use case for this…I sure there is I just don’t see it in front of me… I guess i could see it might be interesting if you were able to specify the input for a given module so that you were not tied to a linear order of module processing…you can of course re-order them but they are still processed in a serial manner … so either allowing modules to be grouped or to specify its input…not sure how complicated that would be to track…perhaps some of this is evolving in the VKDT project???

Keep in mind that the suggestion here is for use with (parametric) masks. So basically, each instance of the module affects a different region of the image (and thus will ‘see’ its part of the image as if any preceding instance of the module wasn’t there). Things could get messy if for any reason the masks in the different module instances overlap…

But, how often do you need the exact same correction on two disparate (color) selections?

Well I am not sure I agree esp as I understand it but I could be wrong…The next module even a duplicate will define its range of pixels for its parametric mask based on the input if receives from previous one so if you are selecting red and you alter it and the in next module your mask selects cyan. The range of the cyan may not be the same if the change you made on the red affects what is now considered cyan coming as input to the next module…where as if you were able to specify the input for each module then the parametric masks you could select red and then cyan as it was defined at some particular step in the pipeline… I am not sure how you would use that to edit but I am sure there is a use case…I think to do this now you need to define raster masks to make the selection static…

Thats one use case for colorzones - you can have several peaks in your curve.
So not really something weird…

Hmm… I see what you mean. What if the parametric masks adopt an interface similar to the drawn masks. Instead of drawn mask it would write parametric mask and then next to it would be a list that would say 2 masks used. You would then proceed and press the button to show a list of the available masks. You would reuse the exact same interface for all of the masks you would just need to load their respective setting

image

This way we can define rules so if there is any overlap between the two areas we can just treat them as one whole or play with boolean operations if we need something more exotic

How does that sound?

I think you might be able to do that…but within one module. The drawn masks can be reused in every module. If all your parametric masks use the reference input data to the module and then you define how they interact I guess that could work again I am no expert. To use the parametric mask in other modules you need to make it a raster mask or it loses it meaning in another module …one thing that donned on me recently was I thought that the inclusive and exclusive settings only related to how the drawn and parametric masks interacted with one another but it also impacts the parametric mask itself it you use more than one channel. I am not sure I can wrap my head around it but you may want or need inclusive or exclusive to create your mask but this might be in some way conflicting…having said that in ART and likely RT although I am more familiar with ART in the local adjustment tool you can seem to add multiple masks of any type…I will have to go back and see how that works and how it is processed…

But isn’t “color zones” a specific module with a specific function?
As I understood @giannissc’s question, he wanted such a selection option for any operation (like local contrast?).

@priort : if the output of the first instance would incorrectly push part of the colours into the range of the second mask, can’t you just inverse the order of those two modules (keeping in mind that we are talking about two instances of the same module).

And I haven’t seen anyone attack the question I posed (about how often you want the exact same correction in the situation at hand). I think it is a point to take into consideration before complicating an already rather complex part of the interface.

But isn’t “color zones” a specific module with a specific function?
As I understood @giannissc’s question, he wanted such a selection option for any operation (like local contrast?).

Yeah that’s exactly right!

And I haven’t seen anyone attack the question I posed (about how often you want the exact same correction in the situation at hand). I think it is a point to take into consideration before complicating an already rather complex part of the interface.

Here is were my inexpirience with editing and darktable comes in. I don’t yet have enough milage with it to draw from my personal experiences with it to say for sure. I was hoping that someone mroe experienced than me would jump in and explain if that is a legitimate usecase or not. I was sort of thinking of a simple scenario where you are at the beach or in a field where the sand of the grass is brownish, the sky is above it and there are some other elements in the scene but you want to apply similar processing to the sky and the grass which are disconitnues hues in the range slider

To be honest this is what I had in mind…

Does this look like something that might be useful for darktable? Focusing on @rvietor question does that seem to be a legitimate workflow? @anon41087856

I think this sort of handles the synchronized & duplicated modules idea as well!

you also need to indicate how these masks should be handled: and, or, xor… to allow more then just one usecase.
and don’t forget: there‘s also an output based masking that need to be taken into account too

Would the combine masks option handle that?

and don’t forget: there‘s also an output based masking that need to be taken into account too

What do you mean by that?

See darktable 3.6 user manual - overview last bullet point in blending options

I saw it before but I never understood what it meant or in which situations is might be useful.

Can you explain a bit more?

I still think this is not straitforward because for a drawn mask … eg adding 1 and 2 means the same as 2 and 1 they are static so that math give you the same mask…but because the order could matter in a parametric mask 1 and 2 is not the same as 2 and 1 potentially as they are not static and what 2 is with the same slider settings could be different if it comes first or second in that operation…if you could parallel process ie use the same input data for 1 and 2 then you could do predictable math on them. But trying to keep track of this on top of how multiple mask channels interact within one parametric mask and what mode ie inclusive or exclusive would make it hard I think to control what you were getting as a result…

Thanks for the link! I think that makes more sense but just to make sure.

With the input mask you get approximately the area you want (here with hues) but there will be some spots that you can’t avoid. You apply the transformation (again in the video a hue rotation) and then when you blend with the image before the module was applied you only blend the hue specificied in the output range slider (in the video only the areas with the blue hues). Am I getting it right?

So in this case would it make sense for the output sliders to exist as a global option for all the mask within the module or could they be applied for each mask differently?

sQsA Darktable - short question _ short answer - darktable - discuss.pixls.us.pdf (2.7 MB)

I always kept this one to use as an example of the output masks…