Un-grey-out the opacity slider on masks

Currently, the opacity slider is greyed out when a mask is selected (except for the colorize mask).

I would suggest enabling it for as many mask types as possible:

  • For transparency masks, it could be a multiplier (from 0 to 1) of the grey-scale values. We could also have a checkbox to turn the multiplication into an addition (still from 0 to 1, clamping at 1), thus inverting the effect of the slider in an intuitive way.
  • for filter masks, it would behave the same way it does on filter layers
  • for transform masks, it could be a multiplier of the transformation

What do you think ?

2 Likes

That could be a useful extra facility for adjustments.
I’m not sure what you mean with a transform mask though. What aspect of the transform would a ‘multiplier’ operate on? The scaling? The rotation? All of them?

As someone that absolutely love doing non-destructive editing on Krita, here are my thoughts on those.

On Transparency Mask: I actually use several transparency mask, one to filter out the other as a way to preserve existing information. I almost never actually need to modify the darkness or lightness in that manner, but it can be added for users to avoid having to go into color adjustment curve to do that job. It’s not something that I would absolutely need, but it’s a nice addon nonetheless.

On Filter Mask: Yes, that would add another dimension to non-destructive editing. This one I see a higher functional application than what you suggested on the Transparency Mask.

On Transform Mask: There are so many different ways to interpolate between the original image and the end transformed image. Actually, because of that alone, I don’t think this is worth looking at. Not to mention the huge amount of code required to do this. This can be skipped.

1 Like

For transparency:

Firstly, using a slider would be a one-click and interactive solution whereas adding another mask and changing its darkness takes several clicks and is not interactive.
Secondly, there is no way to add opacity non-destructively. The “invert” checkbox would make that possible.

For transform:

Although I understand that this one may require more work than the others, I think it would be very useful and I would definitely use it myself if it existed.

The way I see it, it could use a simple linear interpolation. If you’ve ever used shapekeys in Blender, it would behave the exact same way but in 2D.

2 key applications for it that pop to my mind are animation and fine-tuning for the liquify transform:

  • Opacity is already keyframeable for layers. If it existed for a transform mask, you could use it in a similar way you use shapekeys in Blender. If you’ve ever used them, you know how powerful such a feature would be.
  • if you use the liquify tool and then think you’ve gone too far, you could dim the effect on the entire image, rather than painting with the erase brush. Not to mention than the liquify tool currently works by discrete steps and I would argue that these steps are not small. I’ve personally found this problematic on some projects. Of course the tool itself can be improved to be more precise but still, a slider for the whole image seems useful to me.

This is already being developed (although on hold), there is a task here: ⚓ T11476 Animated Transform Mask - and yes, in there every parameter of the transform mask - but only in the Free Transform, Perspective could/will be done too, it might be harder with Liquify - is just interpolated.

1 Like

For adding transparency mask, I would do this though it takes some steps.

  1. Group the target layer
  2. Create new Group Layer above target layer
  3. Insert Content
  4. Group is set to Destination In Mode

doesn’t seem to do what I meant. Can you provide a kra file?

Well, it’s a workaround. I can’t provide kra here, but it’s possible to add kra support to this forum. However, it’s a massive format.

If I wanted to do something akin to adding transparency mask, I’d just do that.

2 Likes

Oh I see. Yeah that does the trick. Thanks for the tip.
I corrected my previous post.

You could do it with the Cage and Warp transform because they consist of a set of points that have an original ‘untransformed’ location and a final ‘transformed’ location. So, a straight line interpolation shouldn’t be difficult, in theory anyway.
A Liquify transform is much less structured and can be almost ramdom so that seems much more difficult to interpolate with a percentage slider.

My guess is that the liquify data is - once applied - nothing but a remapping of each pixel. So a linear interpolation should be possible, though obviously much heavier. But if I can move a 6 million vertices shapekey on a 3D model at about 1frame/sec (on a rather beefy computer), I assume removing a dimension could make it faster. Of course I’m comparing fundamentally different software algorithms and render engines so this is about as hypothetical as it gets.

I was really disappointed to realize you can’t animate mesh/liquefy transform masks because opacity isn’t implemented. It’s weird that it seems to be something you should be able to do seamlessly and yet it just isn’t possible. Even with simple linear interpolation an artist could combine multiple transform masks to create complex transitions, e.g. animating a frown to a smile. But if you can’t, you can’t.

1 Like