Tutorials and notes for using Elle Stone's patched "GIMP-CCE"

This article currently provides links to tutorials for using Elle Stone's patched version of high bit depth GIMP ("GIMP-CCE"), plus notes on using third-party plug-ins with GIMP-CCE. At some point I hope to expand the article to include notes for digital painting using GIMP-CCE.

Written June 2016. Updated August 2016.

Introduction

This article currently provides links to tutorials for using Elle Stone's patched version of high bit depth GIMP, plus notes on using third-party plug-ins with GIMP-CCE. At some point I hope to expand the article to include notes for digital painting using GIMP-CCE. Please let me know if there are other topics that you would like to see covered in this article.

Using PhotoFlow, G'MIC, and other third-party plug-ins and scripts with GIMP-CCE

Additional plug-ins and scripts supplied with the Linux GIMP-CCE AppImage

Several additional plug-ins and scripts have been packaged with Carmelo_DrRaw's GIMP-CCE AppImage. These include Photoflow, G'MIC, Resynthesizer, Liquid Rescale, and Saul Goode's luminosity masks (which I added to GIMP-CCE's "included by default" scripts).

PhotoFlow

The awesomely excellent PhotoFlow raw processor works perfectly with GIMP-CCE. PhotoFlow is a raw processor that is also a GIMP plug-in, and has the unique ability to pass layers back and forth between GIMP and PhotoFlow at any stage in your editing workflow (the layer isn't required to have derived from an interpolated raw file). Like high bit depth GIMP, PhotoFlow operates at 32-bit floating point precision.

Compilation note: When compiling PhotoFlow for use with GIMP-CCE (assuming you are building GIMP-CCE yourself instead of using a precompiled build), you do need to add the following cmake flag:

-DBABL_FLIPS_DISABLED=ON

The reason for adding the above flag is because in my patched GIMP the "R'G'B'" babl format no longer exists (in default babl/GEGL/GIMP this babl format is used for flipping the RGB channel values back and forth between linear gamma RGB and RGB encoded using the sRGB TRC).

G'MIC

The G'MIC GIMP plug-in has a lot of hard-coded sRGB parameters (just like default GIMP). These parameters aren't used in every single filter. But all the filters were written on the assumption that you are editing an image that's in the regular sRGB color space. So your best bet is to convert your image to the regular sRGB color space (try "sRGB-elle-V4-srgbtrc.icc" from my github ICC profile repository) before running the G'MIC plug-in. Also G'MIC does have clamping code, and so really is intended for use on display-referred images, where all RGB channel values are in the range 0.0f to 1.0f.

If you really do want to try the G'MIC plug-in on images that are in color spaces other than sRGB, you can do this — nobody will jump out of the woodwork and tell you that you did something wrong! However, depending on the particular filter:

  • For all non-sRGB images, the preview will be wrong.
  • For most filters, the resulting image will vary depending on which RGB working space the image is in, and very likely the best results will be obtained for sRGB images.
  • For a few filters the resulting image will be pretty much the same the same regardless of the image RGB working space.
  • In linear gamma RGB working spaces, some filters produce posterized shadows, and some produce distorted tonality.

The G'MIC GIMP plug-in operates at high bit depth precision, but I'm not sure whether the precision is 16-bit integer or 32-bit floating point.

Compilation note: If you are compiling GIMP-CCE yourself and you want to also compile the G'MIC GIMP plug-in, then after cloning G'MIC open the file "gmic_gimp.cpp" and replace all occurrences of "R'G'B'" with "RGB", and all occurrences of "Y'" with "Y".

Resynthesizer and Liquid Rescale plug-ins

In GIMP-CCE, the Resynthesizer and Liquid Rescale plug-ins are located under "Filters/Various Additional". These are still 8-bit plug-ins! So please convert your image to a perceptually uniform RGB working space before running these filters. Otherwise you might see posterized shadows (not speculation! this has been verified by testing).

Saul Goode's luminosity masks

The luminosity masks script is located under Filters/Various Additional. I'm guessing that this script operates at 8-bit integer precision, but I haven't checked to confirm. In my opinion this script produces more useable results when run on images in perceptually uniform RGB working spaces.

Python and other third-party plug-ins and scripts

Many python and other plug-ins and scripts plug-ins will not always produce the intended results (and many might not work at all) in my patched GIMP, for the following reasons:

  1. Some of these plug-ins contain hard-coded sRGB Y and XYZ values, and so only produce correct results when the image is in the sRGB color space.
  2. Some of these plug-ins use HSV or HSL, which functionalities have been partially removed from my patched GIMP. Sometimes these plug-ins will no doubt fail to function at all, and sometimes they will return wrong results.
  3. Some of these plug-ins access babl formats that have been removed from my patched GIMP, and so will fail to function at all.

Tutorials on using GIMP-CCE

I recommend reading these tutorials in the order given. Feel free to skim until you hit a section that covers unfamiliar material. It's very frustrating to try to use high bit depth GIMP (whether default or patched) without understanding the basics of dealing with unclamped floating point processing and linear gamma image editing.

  1. Much of the information in the User's Guide to [default] High Bit Depth GIMP is also relevant for using my patched version of high bit depth GIMP. In particular (and unlike many image editors with which you might be familiar), high bit depth GIMP offers unbounded floating point processing, which opens up new possibilities for editing and also present new pitfalls that you need to be aware of.
  2. Color management and other differences between using default GIMP vs Elle Stone's patched GIMP was written for people who are already familiar with using default high bit depth GIMP. But it also includes information that will be useful to anyone using GIMP-CCE, including:
    • An overview of which editing operations should be performed on linear gamma RGB and which are better performed on perceptually uniform RGB
    • Some notes on color management in GIMP-CCE
    • A brief introduction to the LCH color sliders
  3. Tone mapping and shadow recovery using GIMP's 'Colors/Exposure' shows how to use high bit depth GIMP's unbounded floating point precision to raise the shadows and midtones of an image without blowing out the highlights.

    This tutorial was written for use with default GIMP, but I use the same procedure (taking into account differences noted below) for initial tonal modifications for almost all images that I edit using GIMP-CCE (in reality the images in the "tone mapping" tutorial were also edited using GIMP-CCE, and then the procedure in the tutorial was revised for use with default GIMP).

    So here are the differences between using the tone mapping procedure in default GIMP versus GIMP-CCE:

    • In GIMP-CCE the image must be in a linear gamma RGB working space of your choosing, and you can use Levels or Exposure to raise the image tonality, whichever you prefer.
    • In default high bit depth GIMP the image must be in the regular sRGB color space, or at least in an RGB working space with the sRGB TRC. And you can only use Exposure (not Levels) to raise the tonality because in default GIMP Levels operates on RGB encoded using the sRGB TRC.
  4. A tutorial on GIMP's very awesome LCH Blend Modes gives a very brief explanation of the LCH Blend Modes and then gives two worked examples demonstrating their usefulness: (1)The LCH blend modes are used to repair a camera-saved jpeg with badly blown out highlights. (2)Then the LCH blend modes are used to colorize a black and white rendition of the repaired camera-saved jpeg.
  5. Autumn colors: An Introduction to High Bit Depth GIMP's New Editing Capabilities

    This tutorial shows how to use GIMP-CCE to edit colors and tonality separately. The tutorial is not short, and parts of the tutorial are a bit technical. If you take the time to work your way through the tutorial (the supplied worked examples are extremely easy to set up and perform the indicated edits), you will be very well equipped to take advantage of high bit depth GIMP's unclamped editing and GIMP-CCE's LCH capabilities.

  6. Photography Workflow using High Bit Depth GIMP is a short (and perhaps not very useful, suggestions for improving are welcome!) "top level view" of a free/libre color-managed workflow using the patched high bit depth GIMP.

You might also find the following articles useful:

  1. White balancing camera-saved sRGB jpegs that were shot using the wrong camera white balance gives a very important example of why the sRGB color space is not an especially good color space for image editing. The last section in the article provides links to more in-depth explanations of why the color space you choose can make a huge difference in your editing results.
  2. Building Elle Stone's patched GIMP provides information on getting and building my patched GIMP.
  3. Hard-coded sRGB parameters in default high bit depth GIMP explains why GIMP 2.9/2.10 is an sRGB-only image editor.