New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

colorbalance: add film-emulation presets #1982

merged 2 commits into from Jan 8, 2019


None yet
2 participants
Copy link

aurelienpierre commented Jan 8, 2019

add presets to reproduce color film look:

  • generic film
  • Kodachrome
  • Kodak Portra NC
  • Kodak Ektar

These presets need a neutral white balance and filmic to work as planned. They have been adjusted visually from the look and RGB response curves of the emulations and are not completely accurate. They are in beta state and need more testing from people used to work with film.

The most accurate should be the Kodachrome, then the Portra. The generic film is an intended to get very neutral whites.

About film emulations

The most accurate film emulations would use the color checker module and LUTs. However, good LUTs are incredibly difficult to produce, because the film masters should be neutralized and cleaned from any flaws of the scanner, and should be applied on properly linearized and calibrated digital RAWs. Moreover, completely reproducing the film look is often not desirable since we want to preserve the linearity of the RAW RGB signal for the most part of the processing, while keeping the film color feeling. Since no color science is able to predict accurately color shifts at given luminance (Lab, CIECAM02, etc.), it is not trivial to linearize the film tone-curve and extract only the color shifts to keep working on linear luminance, until the final filmic tone-curve application. Finally, LUT can produce local contrast losses, depending on their resolution, and could give different results on different cameras.

Also, there is not one film look for each emulsion, but a lot of looks depending on the processing and the storage of the chemicals. So much for reproductibility… The gamut mapping is a real concern too, since some emulations have a very large gamut (Kodachrome is very weird on that part), and clever decisions would have to be made to address that part.

To sum up, a true film emulation would be independant from the color-response of the digital camera, its dynamic range, and leave the tone-curve interpretation to the retoucher, who would choose it depending of the input dynamic range. And that set of specifications is nearly impossible, so it all sums up to experienced people matching colors on screens.

So, using general color transfer functions, while being inaccurate, is relatively universal and makes no assumption on the camera color response. These presets add just a bit of contrast, using the fulcrum algorithm, to reproduce the toe from the filmic tone-curve (the filmic modules adds a toe too, which works great for B&W films emulations, but lacks a bit of density in blacks for color films).


shoot minh-ly-0009-_dsc0009
shoot minh-ly-0009-_dsc0009_02
shoot minh-ly-0009-_dsc0009_03
shoot minh-ly-0009-_dsc0009_05

Picture by Nicolas Tissot:

@TurboGit TurboGit self-requested a review Jan 8, 2019

@TurboGit TurboGit self-assigned this Jan 8, 2019

@TurboGit TurboGit added the enhancement label Jan 8, 2019

@TurboGit TurboGit added this to the 2.8 milestone Jan 8, 2019


This comment has been minimized.

Copy link

TurboGit commented Jan 8, 2019

Thanks! Looks good.

@TurboGit TurboGit merged commit 25dd4cd into darktable-org:master Jan 8, 2019

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment