ACR Calibrator L

Adapted from Thomas Fors' ACR Calibrator beta 3.8 [(c) 2005-2006 Thomas Fors]
With fragments from ACR Calibrator Rags v3.8 [(c) 2005 Rags Gardner]
Original license applies as listed in the source code.

ACR Calibrator L is a script for Adobe Photoshop that can be used to calibrate a camera's color response in an Adobe Camera Raw / Lightroom workflow. It performs the calibration based on the standardized colors of the GretagMacBeth ColorChecker target. It is based on Thomas Fors' ACR Calibrator script, which was the first automatic implementation of a calibration procedure suggested by Bruce FraserACR Calibrator L adds a number of enhancements, the most important of which is that it performs a single 6-dimensional optimization on the calibration sliders, using all patches, instead of alternating the calibration of red, green and blue. In some cases, this improves the stability of the algorithm.

Note: Version 3.1 is the final release of ACR Calibrator L. Adobe's DNG profile infrastructure (for ACR 4.5 and newer)provides a better way to deal with profiles going forward. A DNG profile can be created from a ColorChecker image using Adobe's DNG Profile Editor. Note that the profiles that are created in this way using the most recent version of the Profile Editor are compatible with a scene-referred workflow. Also, ACR Calibrator L will most probably work with newer ACR versions (tested up to ACR 5.1), but will present an error message stating it hasn't been tested.


Current version: 3.1 (final release - 2 November 2008)
For changes compared to previous versions, see the changelog.

Usage instructions

For detailed usage instructions of Thomas Fors' original script (and updated
versions thereof), including instructions on how to photograph the ColorChecker target, visit

To install the script, copy it to the Photoshop scripts directory and restart Photoshop. For use, open a well exposed image of a GretagMacBeth ColorChecker and draw a 4-point pen path in the center of the following patches: (1) dark brown (dark skin), (2) white, (3) black and (4) turquoise. Then, execute the script from the file->scripts menu. Upon starting, the script will present a popup screen with a number of options that are explained below.


The ACR Calibrator L options panel

Reset all calibration sliders on start (default: enabled)

When enabled, all sliders on the calibration tab and the saturation and vibrance sliders are initialized to zero before starting the calibration procedure. This can be disabled, for example, to calibrate using a non-zero saturation setting or to iteratively improve on a previous calibration.

Target illuminant (default: D50)

Specifies the (approximate) spectral distribution of the light source that was used when photographing the ColorChecker. The options are D50D65 and illuminant A (tungsten).

Calibration method (default: scene-referred)

Specify which calibration method is used for the tonal response. There are three options:

  • use XMP data Uses the tone curve and brightnessshadows and <emcontrast settings from the initial ACR conversion of the ColorChecker image (before starting the script). Use this option to calibrate to a particular (or ACR standard) tone curve.
  • scene-referred Uses presets for a scene-referred image (linear response; no tonal mapping), as described in the essay The scene-referred workflow - a proposal. This setting is recommended for maximum preservation of color information. However, in most cases it will be necessary to separately apply a tone curve to the image. To apply a tone curve that does not lead to saturation and/or hue side-effects, take a look at the Toneability plug-in (Photoshop Windows 32-bit only).
  • fit curve Uses the ColorChecker grey patches to optimize the brightnessshadows and contrast sliders (the selected tone curve is not modified). This method is used in Thomas Fors' original ACR Calibrator Script. I do not recommended this option, because too many variables (3 sliders plus exposure) are adjusted based on too few measurements, sometimes leading to large tonal errors. It is included for comparison reasons only.

Calibrate shadow tint (default: disabled)

Specifies whether the shadow tint slider should be calibrated. Because this optimization is only based on the reading of a single patch, I advise against selecting this option, except in cases where the illuminant exactly matches one of the presets, or when the shadows are very noisy, leading to a visible magenta color cast (compact cameras or at extremely high ISO values).

Error calculation method

The script uses the DeltaE2000 (CIEDE2000) method for computing errors in the color patches. Some options are available for fine-tuning this method. First, Ignore brightness differences linearly scales the patch readings to match the luminance of the reference readings before calculating the color error. This is particularly useful when a non-linear tone curve is used in the grey scale calibration (any method other than scene referred).

The constants kLkC and kH define the (inverse) weights of luminance (L), chroma (C) and hue (H) in the DeltaE2000 calculation. Larger numbers lead to a lower weight. The CIEDE2000 default is (1,1,1), but the script uses a default setting of (2.5, 1.5, 1) to emphasize hue accuracy and deemphasize luminosity accuracy.

Patch weights

This script, unlike the original ACR Calibrator script, uses all patches for calibration. The numbers in this pane can be used to define the linear weights for the individual colour patches. Only the relative
magnitude of the numbers is important; the total does not have to add up to a specific number. Setting all weights equal is the most 'democratic', and minimizes the total color error. However,
for practical purposes it might be better to give a higher weight (say, 3 times as high) to 'memory
colours' such as skin tones, foliage and sky. Perhaps, a lower weight should be given to colors that are highly metameric and thus difficult to get 'right'.

Calibration passes (default: 1)

Specifies the number of calibration passes to perform. One is usually enough, but
some users have reported modest improvements when using multiple passes.


3.1 (final):
  • Updated for compatibility with ACR 4.5 and 4.6.
  • Updated for compatibility with ACR 4.4 and 4.4.1.
  • Added an option for multiple calibration passes.
  • The script is now aware of the new parameters introduced in ACR 4 and ACR 4.1 (parametric curves, highlight recovery, clarity, vibrance and fill light) and can reset them when needed.
  • Updated for compatibility with ACR 4.3 and 4.3.1.
  • Slightly updated nomenclature.
  • Added illuminant A (tungsten). Removed illuminant C (daylight, similar to D65).
  • Recalculated RGB target values for all illuminants from spectral data from Bruce Lindbloom (
  • Updated for compatibility with the release of ACR 4.1 and 4.2.
  • Updated for compatibility with the release of ACR 3.7, ACR 4.0(beta) and ACR 4.0(release).
  • Updated for compatibility with the release of ACR 3.5 and ACR 3.6.
  • Allows the user to continue with calibration, even for unsupported versions.
  • Updated for compatibility with the release of ACR 3.4.
  • Updated for compatibility with the final release of ACR 3.3.
  • Fixed a bug in the DeltaE2000 calculation that caused the result to be undefined when either the test or target patch was perfectly neutral. Thanks to Rags Gardner for pointing this out to me.
  • Updated for compatibility with ACR 3.3 beta.
  • Implemented a graphical user interface for the options. (based on Rags Gardner's script)
  • Added a new method for calculating color differences between patches and their reference values that
    ignores differences in brightness (uniform scaling of R, G and B).
  • Added ColorChecker data for D65 and C illuminants. (from Rags Gardner's script)
  • Default curve settings other than the 'linear presets' can be selected.
  • It is possible to re-enable the fitting of the Shadow Tint parameter.
  • The default setting has been changed to also vary the tonal sliders brightness, contrast and shadow. This makes the script a drop-in replacement for Thomas Fors' original script.
  • The above options have been made easily accessible using true/false switches in the beginning of the script.
versionless (1.0):
  • Original release