Filmic color adjustment questions, proper compositor node usage

I’ve last played with Blender in 2012, and I’ve recently started getting back into it, learning about Filmic color and all the new changes. I have some questions about Filmic color mode during renders and the “correct” way to adjust the colors in the compositor.

I’ll list my three questions first, and then add some explanations:

  1. What nodes are “safe” to use with Filmic? Can the “map range” node be used with Filmic?
  2. Is it OK to use values larger than 2.0 for the color balance node?
  3. How do you color correct with Filmic, i.e. using a white, gray, and black reference object to adjust the image?

First question:
I’ve read online here and other places about Filmic, and read that many nodes in Blender aren’t correctly setup for Filmic, such as curves, anything with HSV. Nodes that are “non-linear” are not supposed to be used with Filmic. Is there a list of nodes that can be used? I’ve been playing around with compositor setups with Filmic and found that I can achieve some interesting results by using 3 “map range” nodes, one for each of the RGB channels, to try to normalize the colors.

Second Question:
According to the tutorial by Blender Guru Andrew Price, one node that can be used safely with Filmic is the Color Balance node set to ASC-CDL. I’ve noticed that the sliders in that node only go up to 2, but you can type in larger values than 2, and they seem to still give you a valid image. I played around with one image I had and got better results with it when I typed in a value larger than 2 for the Slope value, for instance. Is this OK to do?

Third Question:
I’ve seen a video on Youtube showing how to color balance by rendering a white, gray, and black plane and then grabbing color values from that in order to color balance the final render. I think that video was pre-Filmic though. The tutorial suggested using the color values of the planes and using RGB curves to adjust the color balance of the final image. I’ve played around with this and got interesting results, but my understanding is that RGB curves is not set up for Filmic and probably shouldn’t be used. Also, the RGB curves only seem to go up to 1.0, but the Filmic colors can go all the way above 16 for max white. Is there a recommended way to color balance by using colored objects/planes like that? Can you use the ASC-CDL color balance node to color balance that way? I just don’t understand how you would use the ASC-CDL node to color balance using color reference objects. It’s not as obvious to me as how you would do it using curves.

Final note: I find that I often get better results just loading my image into GIMP and using the “auto levels” feature. I tried to set up something similar using Map Range nodes in Blender. I can get close results to GIMP that way, but the Map Range results aren’t automatic and take some experimentation with to get the same result. Besides adjusting brightness and contrast, Auto Level in GIMP seems to give good color balance results as well, removing any noticeable tints from rendered images.

Blender has a “normalize” node and I thought that might do something similar to auto levels, but whenever I try using this I do not get good results. I’ve run separate R, G, and B channels through normalize and it does not produce good results. I’m thinking that the normalize node is not Filmic aware.

I just see your question here and noticed you didn’t get a reply yet. At the moment it’s a bit late here, but I would like to share my thoughts, and if need come back with more.

  1. You are asking what nodes are save to use with Filmic. Well, the question should be just “what nodes not to use in Blender (for compositing or for albedo textures)” at all. It’s not Filmic that makes some nodes break, but nodes were always broken. The reason why there are broken nodes in Blender has this history I suppose: Developers thought (years ago) that it’s a good idea to get inspiration from programs like photoshop to manipulate images and brought it to Blender. (And the reason they didn’t realise it’s a bad idea to do that, was that the default transform was not capable of showing these issues, and so the developers didn’t see it and no-one realized it.). The problem here is that many of the tools work on specific data: display referred data, which has a range of 0 to 1 (or translated: 0-255). But in Blender we are dealing with a very different range of data: 0 … 890567… and much higher, or infinite.
    Most formulas that were designed for the range 0 to 1 for the tools in photo-editora don’t work on that range (scene referred data) we use in Blender. Here some nodes that are designed for display referred data (0…1):

What is save to use is: multiplication, power, add and subtract for example. And indeed ASC/CDL. Personally I don’t see a reason why I should use map range.

  1. The slope in ASC/CDL is multiplication, and you can set it to any number higher than greater than 0, see: Power is multiplication by itself and can also be any number greater than 0.

I prefer to use the pivoted contrast by @troy_s and I made a video about it here: (Starts at 17 minutes).

  1. I remember that video you are talking about, that explains that you can enable curves in color-management, open the image editor, and then Ctrl + RightClick on a spot in the image. And that will set the Black level in the curves. To set the white level you use shift+rightClick. I have no idea at the moment if that is reliable or not. I heard that the curves there are also a bit messed up.

Auto levels in GIMP? Awh…Don’t use that. I think the link to the video which is about Compositing and Scene Referred data will answer quite some of your questions.

1 Like

Thank you. Troy also responded to me directly with the same link, showing the pivoted contrast node setup. I tried the pivoted contrast node setup today, along with adjusting lighting for a gray color object (with RGB color .18) and got good results in a test.

1 Like

Good to hear it worked out to make the pivoted contrast node
In Blender 2.92, they fixed the V in HSV. So that means you can set the V value to 0.18, and if you check the R,G and B values, you will see that they are all set to 0.18. (only Blender 2.92 latest build I think).