Release of G'MIC 2.5

This is the changelog for the release of the 2.5 version of the G’MIC software.
It lists all new features and changes done since the latest major version 2.4.

What is G’MIC?

G’MIC (GREYC’s Magic for Image Computing) is a full-featured open-source framework for image processing. It provides several different user interfaces to convert/manipulate/filter/visualize generic image datasets, ranging from 1D scalar signals to 3D+t sequences of multi-spectral volumetric images, thus including 2D color images.


What’s new in version 2.5?

New features:


  • New command fontchart generates the set of characters that can be written by command text (and derivatives).

  • New command ilaplacian inverts a Laplacian image, using a simple Poisson solver in the Fourier space.

  • New command warp_patch computes a warped image using patch overlaps.

  • New command noise_perlin renders Perlin Noise on images.

  • Command compress_clut and decompress_clut have been rewritten from scratch, and work now with better speed and value precision.

  • A step in a selection now can get an additional % , as in blur[0--1:50%] (which selects 2 images for the blur command).

Qt plug-in:

  • New filter Artistic / Stylize implements an exemplar-based style transfer algorithm, to stylize images from user-defined styles.
    stylization_car_full_5 stylization_car_full_3 stylization_car_full_2

  • New filter Degradations / Noise [Perlin] :

  • G’MIC-Qt has more flexibility for generating dynamic interfaces, i.e. GUI where changes in a parameter can change other parameters as well (make them visible or invisible).



  • Allow characters with ascii code >=128 to be used in math expressions.
  • Improved bash completion script for CLI tool gmic (on Linux).
  • Optimization of command extract_region (x2 faster).
  • Optimization of matrix product, when matrices are 1x1, 2x2, 3x3 and 4x4.
  • Empty vectors in math parser are now allowed, and considered as the constant value 0.
  • Command eval with selection now behaves like fill without actually setting the image values.
  • Command matchpatch is a new and faster implementation of a patch-matching algorithm, and replaces the previous patchmatch command (still available though).
  • Random number generator used by G’MIC now support multi-threading. Each command/filter using random numbers should be faster now (command matchpatch is especially concerned).
  • New substituting expressions {*,u,v}, {*,d,e}, {*,w,h} available (stand respectively for {*,u},{*,v} , {*,d},{*,e} and {*,w},{*,h}).
  • Function polygon() and ellipse() in math evaluator now support drawing of outlined segments with custom line pattern.
  • Most of the CLUTs available in G’MIC have been re-compressed with the new CLUT compression algorithm (more precision, less storage needed). New CLUTs have been added, for a total of 552 CLUTs available to date.
  • All OpenCV-based functions in G’MIC have been rewritten to use the C++ API of OpenCV, rather than the old C API. Thanks to Antonio Albiol for his contribution on this!
  • Functions fsize(), isfile(), isdir(), date() now takes a real string as arguments to check file properties.
  • Access to sub-vector of a vector now allows to specify a step argument, which makes it more versatile.

Qt plug-in:

  • Management of Fave filters now handles the case when case change happens in a filter name.
  • Make dark theme default for GIMP 2.10 and Krita.

Bug fix:


  • Fixed bug in command text : some accented characters were not displayed correctly (small glitch at the bottom) for larger font sizes.
  • Make sure the display window stays on screen when visualizing a large collection of images at the same time.

Qt plug-in:

  • Solve bug related to layer names when they contain parentheses.


  • 2018/12/03 : Release of minor version 2.4.2.
1 Like

Already knew you were going to release 2.4.2. today; got the head’s up from Doron at GIMPChat. Looking forward to the Style Transfer soon. Thanks a heap, David. G’MIC’s the gift that keeps on giving. :slight_smile:

1 Like

We already have lots of good sharpening type filters in G’MIC, but here’s another anyway :slight_smile:

Testing → Garagecoder → Deblur Texture

Been sitting in my local file for months, so may as well add it. In testing for now, probably needs some work.


I rarely use the GUI so I don’t remember: I was wondering if the search field looked at the names of the filters only and not the descriptions. If that is the case, it would be helpful in terms of discovery to search the descriptions also. E.g., the one liner of @garagecoder’s Deblur Texture seen above.

  • 2019/01/07 : Release of minor version 2.4.4.

One step closer to the time to submit new filters.

  • 2019/01/11 : Release of minor version 2.4.5 (last one for a while :wink: ).

@David_Tschumperle, @garagecoder

I have a problem with filters made by garagecoder. (for example “Deblur Texture”, “Tone Enhance”)
windows 64 GIMP 2.8, GMIC 2.4.5, GMIC 2.4.2

Those filters don’t work anymore with lab-l, ycbcr-y, ycbcr-cbcr. With those channels I have a “Preview time out” or a “Preview error”:

So I did instal an old GMIC (2.4.2) . Before refresh, this filters worked as expected. After refresh this filters didn’t work with those channels anymore

On Gimpchat more people have this problem:
17 jan 2019 h 18.00 what happen? [SOLVED] • GIMP Chat,
also with linux and GIMP 2.10

is solved, thanks

There is a bug report about that - Anything with ac commands or mix_rgb does not work · Issue #103 · dtschump/gmic · GitHub

Let’s hope this gets solved.

Solved !


Refreshed and can corrobate that claim. Thanks!

Stylize filter still doesn’t work as in G’MIC does nothing to the visible image, but I do believe that has to do with Windows Krita. At least the error doesn’t show up anymore nor Krita exits.

Is it possible to output multiple plots?

Do you mean “display multiple plots in interactive windows” (case 1), or “save rendering of plots” (case 2), or something else ?

  • case 1 :
$  gmic sp lena,128 s y k[0,10,20,30] d parallel plot[0],plot[1],plot[2],plot[3]
  • case 2 :
$ gmic sp lena,128 s y k[0,10,20,30] dg ,

Case 1 with the flexibility of case 2:

  • Provide command that is more convenient to use than parallel plot[0],..,plot[-1]
  • Make plots easier to compare; e.g.,
    • display in a montage
    • append plots in z-axis to be flipped through, although scroll button is taken


I’m trying to use the GMIC CLI for a batch job (just trying something out) but cannot seem to get the syntax correct, I’m pasting into cmd:
gmic v -99 filename.png fx_equation_parametric "sin(t)*(exp(cos(t))-5*cos(4*t)-sin(t/12)^5)","cos(t)*(exp(cos(t))-2*cos(4*t)-sin(t/12)^5)",-928,532,588,0.55,2,64,0,0,128,0,0,1,1,1 -o out_.png
…but I get errors - I have tried putting the \ symbol before quotes and brackets as I successfully did with the fx_conformal_maps command in the CLI, but that’s not working here… is it possible to get around this somehow? Thanks

Sorry if it was the wrong place to post, anyway I figured it out, I had to add square brackets i.e.:

gmic v -99 filename.png fx_equation_parametric ["sin(t)*(exp(cos(t))-5*cos(4*t)-sin(t/12)^5)","cos(t)*(exp(cos(t))-2*cos(4*t)-sin(t/12)^5)"],-928,532,588,0.55,2,64,0,0,128,0,0,1,1,1 -o out_.png

Many thanks!

This would require someone write another interactive plotter :slight_smile:
What I do usually to compare plots together, is either :

  • Append all curves along ‘c’, because a multi-channel plot shows all curves on the same graph.
  • Or use -dg , then append the results along ‘z’ so I can display them as a volumetric image (and use the mouse wheel to switch between planes).

I will do this for the time being. The issue that I have with dg is that it isn’t interactive and the details aren’t smooth in any of the zoom levels.