What is the " 'aux' pad" ?

In GIMP Python programing, I tried to apply gegl:multiply filter to a layer non-destructively, but it failed and following message was displayed.

“drawable_append_filter_private_invoker: effects with an ‘aux’ pad cannot be applied non-destructively.”

I’ve tried looking into " ‘aux’ pad" but I don’t quite understand it. Is there anyone who can explain this concept plainly to me?

In Gegl filters an aux pad is a parameter layer/drawable (like for instance a bump or a displace map).

1 Like

Thank you.

To understand Aux pads you need to understand what a composer is in GEGL. In GEGL an aux pad is this below

id=1 multiply aux=[ ref=1 ]

An aux determines how many individual inputs a GEGL composer has. In this case with gegl:multiply and other blend modes, an aux only has one input, but examples of two inputs are like in the case of distortion composers.

displace aux=[ id=0 ] aux2=[ ref=1 ]

Displace, the distortion composer has two aux pads for outputs to go in them. Some odd gegl nodes hidden from GIMP that I don’t use have many more auxs.

What are GEGL composers?

Four types of GEGL Composer filters exist

  1. Blend mode composers (multiply, screen, gamma, hard-light, gimp:layer-mode)

  2. Crop composers (gegl:crop, gimp:compose-crop)
    gegl:crop aux=[ ref=1]

  3. Distortion composers (gegl:displace, gegl:bump-map, gegl:oilify)

  4. Image list composers
    (gegl:pack) alone

There might be a few more obscure ones, but the point is all composers have at least one aux pad.

Also,

The reason you get that error is because GIMP does not allow gegl:multiply to be shown in the GUI. The best you can do is run hue-chroma or saturation filters that do nothing at 0.0 and set their blend mode to multiply. That way you can automate a multiple blend.

If you want to learn GEGL I’m the guy who will gladly help you, I have four years of experience and am obsessed with it. Take care Yasuo

1 Like

Thank you for your detailed explanation. It is very helpful.