It is currently Tue Jul 21, 2026 8:51 am


All times are UTC - 5 hours [ DST ]



Post new topic Reply to topic  [ 8 posts ] 
Author Message
 Post subject: Call GMIC from GEGL non-destructively (Linux Only) by Activey
PostPosted: Tue Dec 23, 2025 1:47 am  (#1) 
Offline
GimpChat Member
User avatar

Joined: Oct 31, 2020
Posts: 2013
I did not make these GEGL plugins I just conviently curated and compiled it all in one place. Credit goes to Activey/Flatscrew for making a tool to call GMIC from GEGL

https://github.com/flatscrew/gmic-gegl-plugin

Attachment:
gmic_gegl_fun.png
gmic_gegl_fun.png [ 1.47 MiB | Viewed 1483 times ]


Attachment:
GMIC_GEGL_COLLECTION.tar.gz [3.11 MiB]
Downloaded 56 times


Ok here are the deets

tldr, unzip and find GMICLinuxBinaries and outside of that folder put the .so files in /.local/share/gegl-0.4/plug-ins
also remember port:crop and lb:fixer are meant to solve glitches it has.

But for a more clear view -

1) This ships with binaries and code
2) 60+ new GMIC plugins that run through GEGL non-destructive
3) You need GMIC located in /usr/bin/gmic (won't work anywhere else TMK)
4) These binaries are already compiles for Linux. I don't know how to compile on Windows but I know it needs meson
5)On GIMP 3+ You will see the submenus "G'MIC" where 60 new plugins are, and "G'MIC GEGL" where four of my hybrid GMIC plugins are. Four of these plugins are hybrid GMIC GEGL plugins that I made, you will see my plugins in a seperate submenu
6)Of course they co exist with my native plugins
7) I compiled them a special way so they work non-destructive in GIMP 3. TO compile everything manually run

meson setup  build -Dwith_generator=true  -Dwith_aux=false
ninja -C build
./compile.sh

This will create a folder named GMICLinuxBinaries with 70+ plugins
to clean the build folder to recompile fresh run ./clean.sh

If you leave out -Dwith_aux=false the plugins won't be able to apply non-destructively. They will always merge. so make sure not to remove the -Dwith_aux=false flag. I added.

8) Glitch fixing plugins I made for it, it also ships with three special plugins of mine to solve known bugs
lb:fixer
port:crop
port:gegl

9) The reason I say I curated the plugins is because I slightly modified the settings on the anisotropic filters (which I am obsessed with) to make them better. I also modified the frame plugin so it applies normal in default.

If the GMIC plugin chains with filters like gegl:dropshadow it will have a bug called "transparent image relocation"
this can be solved by running port:crop if it is not a layer group.
But if the GMIC filter is applying on a layer group, the port:crop won't work. On layer groups run port:gegl and type in crop width=1920 height=1080 or whatever the canvas size is.
crop width=1200 height=900
for example. The title in GIMP in default tells the canvas size.

If you notice glitching after a GMIC filter or any plugin of mine run "Repair pipeline lb:fixer"

Location to put binaries

Windows

C:\Users\(USERNAME)\AppData\Local\gegl-0.4\plug-ins

Linux

~/.local/share/gegl-0.4/plug-ins

Linux (Flatpak includes Chromebook)

~/.var/app/org.gimp.GIMP/data/gegl-0.4/plug-ins

From personal experience I can't get this working in Flatpak GIMP. I knew about this for three weeks about kept it lowkey. Keep up to date with FlatScrew's Github as its his job to maintain it not mine. Peace out GimpChat and enjoy the 70 new plugins :gimp

Merry Christmas and Happy Holidays to you all.


Last edited by contrast_ on Tue Dec 23, 2025 1:48 am, edited 1 time in total.

Share on Facebook Share on Twitter Share on Orkut Share on Digg Share on MySpace Share on Delicious Share on Technorati
Top
 Post subject: Re: Call GMIC from GEGL non-destructively (Linux Only) by Activey
PostPosted: Tue Dec 23, 2025 1:48 am  (#2) 
Offline
GimpChat Member
User avatar

Joined: Oct 31, 2020
Posts: 2013
It does work on Windows but we are going to need ActiveY's help because I don't know how to get it compiled there.


Top
 Post subject: Re: Call GMIC from GEGL non-destructively (Linux Only) by Activey
PostPosted: Tue Dec 23, 2025 6:49 pm  (#3) 
Offline
GimpChat Member

Joined: Jun 15, 2025
Posts: 21
This is absolutely amazing! I was not aware of this development by Activey/Flatscrew. And thanks, @contrast_ for packaging this!


Top
 Post subject: Re: Call GMIC from GEGL non-destructively (Linux Only) by Activey
PostPosted: Wed Dec 24, 2025 4:44 pm  (#4) 
Offline
Global Moderator
User avatar

Joined: May 16, 2010
Posts: 16125
Too bad it isn't available for Windows yet. Possibly could be built with Cygwin.
https://cygwin.com/cygwin/packages/summ ... devel.html

_________________
Image


Top
 Post subject: Re: Call GMIC from GEGL non-destructively (Linux Only) by Activey
PostPosted: Wed Dec 24, 2025 10:22 pm  (#5) 
Offline
Global Moderator
User avatar

Joined: May 16, 2010
Posts: 16125
I am having a hard time installing "template-glib-1.0' into the Cygwin directory. If i can fix this i believe i can compile for windows.
I have succeeded in compiling template-glib, but i am getting these errors on compiling the GEGL dll files.


$ ninja -C build
ninja: Entering directory `build'
[1/24] Compiling Vala source ../stdlib_loa...ter.vala ../normalizator.vala ../main.vala
FAILED: [code=1] gmic-parser.exe.p/stdlib_loader.c gmic-parser.exe.p/gmic_filter.c gmic-parser.exe.p/normalizator.c gmic-parser.exe.p/main.c
valac -C --debug --pkg template-glib-1.0 --pkg gee-0.8 --pkg gobject-2.0 --pkg glib-2.0 --color=always --directory gmic-parser.exe.p --basedir ../ ../stdlib_loader.vala ../gmic_filter.vala ../normalizator.vala ../main.vala
error: Package `template-glib-1.0' not found in specified Vala API directories or GObject-Introspection GIR directories
Compilation failed: 1 error(s), 0 warning(s)
[2/24] Compiling Vala source ../normalizator.vala ../test_normalizator.vala
FAILED: [code=1] test-normalize.exe.p/normalizator.c test-normalize.exe.p/test_normalizator.c
valac -C --debug --pkg template-glib-1.0 --pkg gee-0.8 --pkg gobject-2.0 --pkg glib-2.0 --color=always --directory test-normalize.exe.p --basedir ../ ../normalizator.vala ../test_normalizator.vala
error: Package `template-glib-1.0' not found in specified Vala API directories or GObject-Introspection GIR directories
Compilation failed: 1 error(s), 0 warning(s)
[3/24] Compiling Vala source ../normalizat...blacklist.vala ../generator/generator.vala
FAILED: [code=1] generator/gmic-gegl-generator.exe.p/normalizator.c generator/gmic-gegl-generator.exe.p/stdlib_loader.c generator/gmic-gegl-generator.exe.p/gmic_filter.c generator/gmic-gegl-generator.exe.p/operations_meson_build_generator.c generator/gmic-gegl-generator.exe.p/operation_generator.c generator/gmic-gegl-generator.exe.p/blacklist.c generator/gmic-gegl-generator.exe.p/generator.c
valac -C --debug --pkg template-glib-1.0 --pkg gee-0.8 --pkg gobject-2.0 --pkg glib-2.0 --color=always --directory generator/gmic-gegl-generator.exe.p --basedir ../generator ../normalizator.vala ../stdlib_loader.vala ../gmic_filter.vala ../generator/operations_meson_build_generator.vala ../generator/operation_generator.vala ../generator/blacklist.vala ../generator/generator.vala
error: Package `template-glib-1.0' not found in specified Vala API directories or GObject-Introspection GIR directories
Compilation failed: 1 error(s), 0 warning(s)
ninja: build stopped: subcommand failed.


_________________
Image


Top
 Post subject: Re: Call GMIC from GEGL non-destructively (Linux Only) by Activey
PostPosted: Thu Dec 25, 2025 10:22 am  (#6) 
Offline
Global Moderator
User avatar

Joined: May 16, 2010
Posts: 16125
i tried this as well, but get the same error.


$ ninja -C build install
ninja: Entering directory `build'
[0/1] Installing files.
Installing src/tmpl-enums.h to /usr/local/include/template-glib-1.0
Installing src/cygtemplate_glib-1.0-0.dll to /usr/local/bin
Installing src/libtemplate_glib-1.0.dll.a to /usr/local/lib
Installing po/ar/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/ar/LC_MESSAGES
Installing po/bg/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/bg/LC_MESSAGES
Installing po/ca/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/ca/LC_MESSAGES
Installing po/cs/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/cs/LC_MESSAGES
Installing po/da/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/da/LC_MESSAGES
Installing po/de/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/de/LC_MESSAGES
Installing po/el/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/el/LC_MESSAGES
Installing po/en_GB/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/en_GB/LC_MESSAGES
Installing po/es/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/es/LC_MESSAGES
Installing po/eu/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/eu/LC_MESSAGES
Installing po/fr/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/fr/LC_MESSAGES
Installing po/fur/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/fur/LC_MESSAGES
Installing po/hi/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/hi/LC_MESSAGES
Installing po/hr/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/hr/LC_MESSAGES
Installing po/hu/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/hu/LC_MESSAGES
Installing po/id/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/id/LC_MESSAGES
Installing po/it/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/it/LC_MESSAGES
Installing po/ka/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/ka/LC_MESSAGES
Installing po/kab/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/kab/LC_MESSAGES
Installing po/lt/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/lt/LC_MESSAGES
Installing po/nl/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/nl/LC_MESSAGES
Installing po/pl/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/pl/LC_MESSAGES
Installing po/pt/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/pt/LC_MESSAGES
Installing po/pt_BR/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/pt_BR/LC_MESSAGES
Installing po/ro/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/ro/LC_MESSAGES
Installing po/ru/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/ru/LC_MESSAGES
Installing po/sl/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/sl/LC_MESSAGES
Installing po/sr/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/sr/LC_MESSAGES
Installing po/sv/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/sv/LC_MESSAGES
Installing po/tr/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/tr/LC_MESSAGES
Installing po/uk/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/uk/LC_MESSAGES
Installing po/zh_CN/LC_MESSAGES/template-glib.mo to /usr/local/share/locale/zh_CN/LC_MESSAGES
Installing /cygdrive/c/Users/bkdad/OneDrive/Desktop/template-glib-main/src/tmpl-error.h to /usr/local/include/template-glib-1.0
Installing /cygdrive/c/Users/bkdad/OneDrive/Desktop/template-glib-main/src/tmpl-expr-types.h to /usr/local/include/template-glib-1.0
Installing /cygdrive/c/Users/bkdad/OneDrive/Desktop/template-glib-main/src/tmpl-expr.h to /usr/local/include/template-glib-1.0
Installing /cygdrive/c/Users/bkdad/OneDrive/Desktop/template-glib-main/src/tmpl-glib.h to /usr/local/include/template-glib-1.0
Installing /cygdrive/c/Users/bkdad/OneDrive/Desktop/template-glib-main/src/tmpl-scope.h to /usr/local/include/template-glib-1.0
Installing /cygdrive/c/Users/bkdad/OneDrive/Desktop/template-glib-main/src/tmpl-symbol.h to /usr/local/include/template-glib-1.0
Installing /cygdrive/c/Users/bkdad/OneDrive/Desktop/template-glib-main/src/tmpl-template-locator.h to /usr/local/include/template-glib-1.0
Installing /cygdrive/c/Users/bkdad/OneDrive/Desktop/template-glib-main/src/tmpl-template.h to /usr/local/include/template-glib-1.0
Installing /cygdrive/c/Users/bkdad/OneDrive/Desktop/template-glib-main/src/tmpl-version-macros.h to /usr/local/include/template-glib-1.0
Installing /cygdrive/c/Users/bkdad/OneDrive/Desktop/template-glib-main/build/src/tmpl-version.h to /usr/local/include/template-glib-1.0
Installing /cygdrive/c/Users/bkdad/OneDrive/Desktop/template-glib-main/build/src/tmpl-debug.h to /usr/local/include/template-glib-1.0
Installing /cygdrive/c/Users/bkdad/OneDrive/Desktop/template-glib-main/build/meson-private/template-glib-1.0.pc to /usr/local/lib/pkgconfig



_________________
Image


Top
 Post subject: Re: Call GMIC from GEGL non-destructively (Linux Only) by Activey
PostPosted: Sat Dec 27, 2025 1:14 pm  (#7) 
Offline
GimpChat Member

Joined: Jun 22, 2019
Posts: 18
Great! :)

G'mic non-destructive as a GEGL plugin! Many thanks @_contrast, for your curative effort and bring to attention! This seems to be an initial introduction and not everything works as expected. Quirks and glitches, as expected! That's really exciting and Windows support will hopefully follow soon!

This we hopefully continue!

_________________
Gimp 3.0.8
Gimp 2.10.38 AppImage
OS: Linux Mint 21.3 Virginia based on Ubuntu 22.04


Top
 Post subject: Re: Call GMIC from GEGL non-destructively (Linux Only) by Activey
PostPosted: Sun Dec 28, 2025 10:52 am  (#8) 
Offline
GimpChat Member
User avatar

Joined: Oct 31, 2020
Posts: 2013
c-t-s wrote:
Great! :)

G'mic non-destructive as a GEGL plugin! Many thanks @_contrast, for your curative effort and bring to attention! This seems to be an initial introduction and not everything works as expected. Quirks and glitches, as expected! That's really exciting and Windows support will hopefully follow soon!

This we hopefully continue!



The glitches go away if you use crop correctly. For example apply port gegl graph on a layer group and make "width" and "height" the size of the canvas, so if the canvas is 1920x1080 `port:crop width=1920 height=1080`or if it isn't a layer group you can just apply port:crop

Image


Top
Post new topic Reply to topic  [ 8 posts ] 

All times are UTC - 5 hours [ DST ]



* Login  



Powered by phpBB3 © phpBB Group