RFC: Non-Destructive Layer Effects/Adjustment Layer Groups Project

I’d rather not have different trigger modes. Sounds like a complexity nightmare.

You mean for the ux/usability or code maintenance?

If because of the latter and the devs decide like this, I agree.

If because of the usability, I don’t. There is imo enough software out there that’s so user friendly by being simple that it does not get the job done. Imo, gimp should be as complex as required for a general purpose image processing tool, and if it eases maintenance, even more complicated.

Anyway, for me, the manual trigger is the most important one, because a free running filter stack could mean a non responding ui too quickly. Everything else I would categorize as nice to have rather than mandatory.

This is what I meant by my earlier comment that both Photoshop and GIMP have all the essential tools already. I feel Photoshop try throwing in a few fancy items to justify a lifetime subscription base but all the really important stuff is already in GIMP. However, if someone is willing to add new and improved features my thanks go to them.

Some notes from someone who has been doing NDE in Photoshop since (almost) the dawn of adjustment layers. We are talking late 90ies here, machines with 2GB of RAM, files with the image layer up to or even more than 400MB - that’s beyond 100 megapixels for you young ones. These days I only do this kind of work for very select customers on a very rare basis.

So, out with the myth first:

NDE with adjustment layers is not sluggish.

It’s faster and less stress on the hardware than working with image layers. The way this was implemented in Photoshop was and still is the gold standard. I hate that software with a passion but this is where I wish that all adjustment-layer-editing application developers would have taken notes.

It. Just. Works.

At the studio I worked and later as a freelancer there always was a need to go back to previous edits, to improve, to change. We have had files with a single image layer and 50 or more adjustment layers each with a mask. We have done massive dodge & burn sessions that way. We even did beauty retouching and skin corrections that way.

The key to the power of using the adjustment layers is the mask on each layer and how you can interact with the masks. Grouping, inversion, show mask, select mask, substract/add selection from/to mask.

Even for rather complex edits all you need are a few basic tools: curves, levels, color-hue-saturation, and so on. And then to work on the masks: gradients, selection with feathers and brushes. All with opacity from 1 to 100%.

And this is where I see the biggest challenge with GIMP. All that brush resizing, brush strength setting, layer and mask actions and so - GIMP has these massive underlying problems where focus in one part of the GUI will totally block other parts of the GUI from receiving keystrokes. It’s like working with five different apps at the same time, but there is not even the equivalent of Alt-Tab to cycle through them. It’s a pain.

3 Likes

Thanks a lot for your insight! Another person in the GitLab report also stressed the importance of layer masks with an adjustment layer workflow - it’s something I’ll definitely look into.

While NDE may not be inherently sluggish, I definitely noticed some slowdown when applying layer styles in Krita. I’m hoping GEGL will have good performance, at least with only a few effects or adjustments applied. The split view feature of the current destructive filters works well on my machine so I’m optimistic, but I’ll find out when I’ve got a working prototype.

Hm, but that’s probably not what I meant … I’m not a native English speaker so maybe I struggle to get the message right. With my comment, I was only referring to possible trigger modes of a future gimp nde filter implementation.

My hack raw processor presents a tool chain (equivalent to layers), and I simply implemented an enable/disable checkbox for each tool (layer). Then, most tools have a “do-nothing” default (I can changed that in the properties), so they don’t automatically impose their processing when added to the tool chain. Food for thought…

I think “smart” is not a good idea; will just beg unproductive questions about “why won’t this work?” when the smartness kicks in…

2 Likes

When Gimp does get non-destructive editing my GEGL plugins will be usable within it.


I am very excited about this project

GEGL is faster then Krita. But it will go slow if a dozen or so filters are chained. That is why the layer should be rasterized then non-destructive filters reran and recalculated when the user does an edit.
Adobe and Pixelitor do this in their “smart objects”.

First the GNOME file picker previews get added and now maybe this? What are we going to meme on afterwards guys?

The fact that it still took twenty years

If it happens, I will be more than happy! I would suggest some basic tools like curves, hue-saturation, color temperature/ balance and exposure as the first step.

4 Likes

Thanks for the suggestion! After discussing this idea with the developers, the goal is for everything to be a layer effect (rather than a distinction between layer styles and adjustment layers).

In other words, once we can add NDE filters to layers, you’ll be able to add any of those operations and more. :slight_smile:

2 Likes

As an update, my proposed project was accepted! I’ll be working on adding non-destructive editing support to GIMP over the summer.

You can see a really early test here: GIMP WIP: Initial NDE Experiment - YouTube

10 Likes

That’s exciting!

Thank you!!

Looks like I have reasons to be excited for GIMP this time. Thank you.

I think (if I understood your video) it’s wrong,

you inverted the color of the layer, for the user it would be something like Colors > Invert

Why the color of the brush are inverted?
the brush should not be inverted this has nothing to do with the inverted color of the layer, that’s not NDE

Did I understood your video?

Hi! First off, that video is rather old - there’s been a lot of advancements since then. Here’s a better one (and even it’s out of date since I now have a basic GUI in place): (2) GIMP WIP - NDE Built in - YouTube

As for the inverted effect: Imagine you have a pane of red glass. Currently, applying a filter in GIMP is like putting that glass in front of the image and then painting on the glass. You can remove the glass, but you also lose everything you painted after applying it.

The NDE implementation is like painting on the image behind the glass. If you have the glass in front of you, your paint will appear tinted red (like my brush in the old video) - but you can remove your glass to see the original image without losing all the work you’ve done. Does that help explain a bit better?

1 Like

No not at all, it’s even more confusing…

BUT, your latest video did show what WE call NDE :sweat_smile:

IF I understood your latest video at the end we just have to click on one of the filter on the list of the layer property to re-edit the filter?

If so, that’s an absolute great job :+1: :clap: :hugs:
Thank you