NDE and Layer Groups

When you apply filters non-destructively to a Layer Group, I believed it meant that each layer inside the group would be affected by the filters separately, as if each one had its own duplicated stack of filter effects. Apply this set of adjustments to all these layers.

But is that really how it works?

I’m asking because I see very different results when I apply the same filters directly to each layer, and then remove the filters from the group. This might be a mistake in my code, or maybe I don’t understand how non-destructive editing of Layer Groups works.

From a test, it looks like the NDE are applied to the groups result, not to each part. Which scuppers any chance of “baking” the NDE into each layer?

For example, If I wanted to adjust the hue of 5 layers at once, there is nothing that can do that in an NDE way. I would have to adjust one layer, and then manually apply that same adjustment to the other four? There is no linking, yet, of NDE.

For me the expected behavior is that the NDE filters are applied to the group. This is coherent with other things, such as the opacity and the blend modes. For instance: put several layers side by side in a group, decrease the group opacity: all layers become transparent. Move a layer out of the group, it becomes fully opaque again.

For your use case, the behavior I would expect is to select all the layers involved and start a color tool, which would add an NDE step to each layer. Unfortunately this is not supported (yet?)

Looking back, I understand why both methods are useful. Changing the group outputs is fast and works well, perhaps this is the current method. Using effects on each layer separately is slower, but would be ideal for certain situations, like connecting NDE or flattening NDE without flattening the group. A suggestion would be to have an option when applying NDE to a group.

It’s not about being fast or about flattening groups, nor are these different “methods” for the same thing at all. These are just very different actions: applying a same filter to every layer in a group is not the same render at all than applying this filter to the group’s projection.

This can be made very visible with some examples. For instance, make 2 colored rectangles (in 2 layers), intersecting over one another. Now apply a drop-shadow on each layers vs. apply a drop-shadow over the group. You will immediately see the difference (the shadow over the group will operate on the union shape; and in particular you won’t have a full shadow around each individual rectangles, i.e. you won’t have the top-rectangle shadow over the below rectangle).

These are just very different conceptually and deciding when you want to do one vs. the other will be chosen not based on your workflow, but based on what you are trying to produce (a typical example which could lead your choice for some effects could be: does your group represent a single entity — e.g. a single character whose drawing is simply broken into smaller parts — or does it gather several individual entities?).

Anyway you can do both in GIMP, though indeed we don’t have the ability yet to apply filters on several layers at once, and even less the ability to have “linked” filters (when changing settings on one, it applies to other), though these are definitely stuff we are talking about since forever (pretty sure we have bug reports about these features but it’s so hard to search on Gitlab…).