Blue tint with "Unbreak input profile" - Darktable for Blender PostProcessing


For the past months I’ve been going over the proper workflow to produce realistic (architecture) renders in Blender. I’ve got to the point I want a bit more control over the image so post-processing.

I’ve tried to find a suitable module to handle the high dynamic range that comes out of a render, followed this guide on the “Unbreak input profile module” but following it leaves a blueish/greenish tint to the picture.

The Problem (left is Agx, right is EXR)

Agx Punchy image straight out of Blender

My attempt in Darktable

This is the respective EXR and XMP:

Joao Baptista

Do you really need unbreak input profile?

sigmoid with the smooth preset, skew = -1.

Int 03_2024-06-22T080155.exr.xmp (4.3 KB)

Your AgX version:

Alternatively, with filmic rgb (edit: updated):

Int 03_2024-06-22T080155_02.exr.xmp (13.2 KB)

1 Like

Also wondering - EXR should be float and linear, there’s nothing to its input profile apart from defining the color primaries and white point.

I questioned that myself, but found that only with unbreak input profile did I get sane values to play with, otherwise with sigmoid only becomes too finicky to adjust. Perhaps I should just adjust for the tint, but it feels there ought to exist a better way.

You might want to look at “RGB primaries” as well, as it adopts some ideas from AgX anyway? (There are plenty of posts here and YT videos about it.)

At first I thought that since the EXR is already in Rec.2020, I wouldn’t need to convert to anything before playing with the image and and only in the last moment convert it to a monitor space, but maybe I just don’t understand it at all.

Will try and report back here, thanks.

Ah, but your EXR is not in Rec2020! Your EXR doesn’t have any color space information embedded into it, so darktable assumes linear sRGB/Rec709 input by default (as the OpenEXR spec mandates).

So you either need to fix the export to include the color space metadata, or manually choose linear Rec2020 as your input profile if you are sure the exported pixel data matches that.

I’ve updated my filmic version. sigmoid was much simpler, but I did not try to match it closely.
A more closely matched sigmoid version:

Int 03_2024-06-22T080155_03.exr.xmp (6.3 KB)

And again, your AgX:

1 Like

@kofa No need for extreme acrobatics. Just change the input profile to linear Rec2020 first…

The EXR file is broken (no color space info), and that should be reported to whatever app exported it.

Hmm, with linear Rec2020 and sigmoid defaults:

With embedded profile and sigmoid defaults:

The Rec2020 interpretation looks way more saturated (which is understandable).

Well, unfortunately only the OP (i.e. the app that exported) knows what is the color space of the EXR, there is no way to ascertain it.

@kofa, @kmilos, Sorry, I’ve read the Blender documentation wrong:

Blender Manual:
The reference linear color space used is the linear color space with Rec. 709 chromaticities and D65 white point.

Now onto the edits, thank you! In the afternoon I will have a play with them and try to use it in other renders as well.

My main grip with sigmoid was that it always felt that it was all or nothing, but I assume now that it might just be my inexperience with DT.

Thank you for patience and insights.

edit: fixed quoted link

Which is why one can get away with not explicitly putting these in the EXR files…

Updated the category and tags of this thread for discoverability.

1 Like

I mainly use Sigmoid for every day images, but I felt filmic could handle the high dynamic range easier to keep the highlights in this image.

Int 03_2024-06-22T080155.exr.xmp (6.7 KB)

So I’m guessing it’s the standard but it still should explicitly say that in the file? Perhaps I should open an issue about it, just not sure what exactly to report on it.

Nah, I don’t think it’s worth it - nothing is really broken it would seem… A real issue would be if the output color space is set to something other than linear Rec709, and the EXR file doesn’t contain that info.

After having played with the images, it seems that maybe I approaching it the wrong way?

was doing: At every step the image should not be broken

  1. unbreak input profile
  2. other modules after it (default order)

but should I have been doing:

  1. add sigmoid
  2. other modules before it (default order)

or just add have the sigmoid the first thing and put the other modules after?

I’m going back to reading the manual, are there any enlightening threads or articles regarding darktable that you reccommend reading? This one seems to have helped quite a lot!

So rule of thumb, if an EXR has no color space information, it’s probably Rec709? Might come in handy knowing it.