I’ve been using @patdavid’s film emulation pack for a while, and as a darktable user I’ve always found the round-trip between darktable, GIMP and G’MIC to be rather lengthy (compared to Rawtherapee and others developers that fully integrate the process into the pipeline). So with the recent discussion of LUTs and despite the introduction of the “color checker lut” module in darktable, I still decided to implement a Hald CLUT module. This way I can see the final effect in live action.
Looking promising! I really miss film emulation in darktable, I even started to create my own set of tone curves to match pat’s definitions on some of my favorite films. So I’m very curious to see where these LUT updates on darktable can go.
I don’t have that much spare time, but if I can find some i’ll clone it that and give it a go.
This is really cool! Yes, film emulation is one if the main missing things from DT, so I’m really glad to see you proceed with this. I will test as soon as I can - in the middle if a move tight now, but should be set up again soon (internet is being installed in my new place today! I can be civilised again!)… I will indeed let you know if I find a way to break it!
@PkmX I don’t know about the current speed of your implementation but as you use almost the same code we used before our speedups I would suggest you may take a look here in case you want to use a vectorized version without reinventing the wheel
I just ran a test export on a 24MP image and it took about 0.3 seconds on a i7-2600 (4 cores with 8 threads):
[dev_pixelpipe] took 0.302 secs (1.707 CPU) processed `hald clut' on CPU, blended on CPU [export]
As a point of reference, both profiled denoise and equalizer take ~6 secs on CPU and ~1.5 secs on GTX 960, so it is not too bad currently. In darkroom it is pretty much instant.
Interesting and possibly quite handy although putting it after color output module does mean you are limited there since a CLUT will also have a color space[1] so I think for most of Pat David’s CLUTs output must be set to prohoto (since IIRC rawtherapee uses prophoto primaries internally).
For darktable it would be neater if we could have CLUTs in LAB color space (or convert it to LAB[2] on load) in that case the module can be put before color output and be much more generic (theoretically)
footnotes
[1] Actually might have 2 color space, one input and one output (for example sRGB to ProphotoRGB (inverse) transform might be expressed as a CLUT) this property is actually used in openColorIO (there colorspace are defined in terms of transforms to and from a reference space and most of those transforms are described as CLUTs)
[2] Since we are talking about look CLUTs both the input and output need to be converted of course
@dutch_wolf Currently, the module just assumes that the input is in the same color space of the CLUT (and bad things will happen if it is not) since it doesn’t perform any conversion. I put the module very late in the pipeline as it was closest to what I have been doing (exporting from darktable and then grading it in G’MIC), and it would be the easiest way to implement (as someone who is still getting around darktable’s codebase). During testing I did found a few cases of out-of-gamut lookup, so I guess I will try to convert both to Lab* and see how it goes.
Rawpedia says that those are in sRGB, are they not?
@PkmX if the docs say they are in sRGB then I assumed wrong (assumptions are the mother of all ***** ups ) anyway as @heckflosse says CLUTs (including HaldCLUTs) can be in any color space so best to future proof that anyway
Hello, excuse me for my English, I made a translation online. I compiled with the branch HaldCLUT I find very good. I had the opportunity to use the profiles with RawTherapee. Est’il possible that it is integrated into a future version of darktable. I compile the GitHub version and it is not there? Good week, cordially.
P.S. sorry for the message yesterday suppimer. I thought it was in French.
AFAIK this is not an official update so is not available via the official github the designers are working on another CLUT module that should be able to import these HaldCLUTs but which is also easier to edit from within Darktable and can be saved inside the xmp sidecars. See more here: colour manipulation with the colour checker lut module | darktable (I made a video about how to import C’Mig provided CLUTs but that is I think already outdated)