Convert a Lightroom preset to a .cube LUT
A preset and a LUT describe colour in completely different ways. Most of a preset converts cleanly. The parts that do not are worth knowing before you are confused by the result.
879 words4 min readUpdated
What a .cube file actually contains
A 3D LUT is a lookup table over colour space. Imagine a cube of RGB values sampled on a regular grid — 33 steps along each axis is the de-facto standard, giving 35,937 sample points. For every one of those points the file stores the colour it should become. Anything between grid points is trilinearly interpolated.
The .cube format itself is plain text, specified by Adobe in 2013 and originally from IRIDAS. The header is short:
TITLE "Cold Halation"
LUT_3D_SIZE 33
DOMAIN_MIN 0.0 0.0 0.0
DOMAIN_MAX 1.0 1.0 1.0
0.008000 0.010000 0.086000
0.041000 0.043000 0.118000
...Then 33³ lines of three floating-point numbers. The ordering convention matters and is easy to get backwards: red varies fastest, then green, then blue slowest. Get that wrong and your LUT will look like a channel-swapped fever dream. DOMAIN_MIN and DOMAIN_MAX are optional and default to 0 and 1; values outside the domain are allowed for HDR and log workflows, and clamping is left to the application.
How the conversion works
A LUT does not care how a colour transform was described — it only cares what the transform does. So converting a preset means evaluating it: take each of the 35,937 grid colours, push it through the preset's pipeline in the same order Lightroom applies it, and write down the result.
- Start from the grid colour, treated as a rendered RGB triple rather than raw sensor data.
- Apply the point curves — master first, then the per-channel red, green and blue curves, which is the order Lightroom stacks them.
- Apply the Color Mixer: hue rotation, saturation and luminance per band, with the bands blended by hue distance so there is no seam between orange and yellow.
- Apply global vibrance and saturation.
- Apply Color Grading — the shadow, midtone and highlight tints, weighted by the pixel's luminance and offset by the balance control.
- Write the resulting triple as the LUT entry.
That is what PresetForge does when you export .cube: the same look object that produces the .xmp is evaluated across the cube. Both exports come from one measurement, so they agree with each other.
What cannot survive the conversion
A LUT is a pure per-pixel colour function. Give it the same input colour twice and it must give the same output twice. Anything in a preset that breaks that rule cannot be baked in.
- Clarity, Texture and Dehaze. These are spatial — they compare a pixel to its neighbours. Two pixels of identical colour get different treatment depending on what surrounds them, which is precisely what a LUT cannot express.
- Sharpening and noise reduction. Spatial for the same reason.
- Vignette. Depends on where the pixel is in the frame, not what colour it is.
- Grain. Depends on a random field.
- Masks and local adjustments. Per-region by definition.
- Raw-domain white balance. Temp and Tint on a raw file operate on sensor data before demosaicing, using the camera's colour matrix. A LUT sits far downstream of that. The appearance of a warm or cool shift converts fine; the raw-linear operation does not.
- Lens and geometry corrections. Not colour at all.
Loading the .cube in each application
Adobe Premiere Pro
In the Lumetri Color panel there are two separate slots. Basic Correction → Input LUT → Browse… is for technical/conversion LUTs. Creative → Look → Browse… is for stylistic ones and comes with an Intensity slider, which is what you want for a preset-derived grade. To make a LUT appear permanently in the dropdown, drop it into …/Adobe/Common/LUTs/Creative (or …/Technical), creating the subfolder if it does not exist, then restart Premiere.
DaVinci Resolve
Open Project Settings → Color Management → Lookup Tables, click Open LUT Folder, drop the .cube in, then click Update Lists and Save. On the Color page, right-click a node and pick the LUT, or use the LUTs browser at the top left. The LUT folder is /Library/Application Support/Blackmagic Design/DaVinci Resolve/LUT/ on macOS and C:\ProgramData\Blackmagic Design\DaVinci Resolve\Support\LUT\ on Windows.
Final Cut Pro
No installation step. In the Effects browser, find Color → Custom LUT and drag it onto the clip or an adjustment layer. Then in the Video inspector, open the Custom LUT section, use the LUT dropdown → Choose Custom LUT… and point it at the file. The Mix slider controls strength.
OBS Studio
Right-click the source or scene → Filters → under Effect Filters click + → Apply LUT. Click Browse next to Path, pick the .cube, and use Amount to dial it back. OBS accepts .cube and .png LUTs.
Choosing a size
33 is the right default and what PresetForge exports. 17 is lighter and fine for gentle grades but will band on anything with a steep curve; 65 is four times the interpolation accuracy and eight times the file size, which is worth it only for aggressive film emulations with sharp local behaviour. The spec allows 2 through 256, but nothing in the wild wants more than 65.
Common questions
- Can I convert a .cube LUT back into a Lightroom preset?
- Not faithfully. A LUT is a dense sampled table with no structure; a preset is a small set of parameters. You can fit a preset that approximates a LUT, but information is lost in both directions and the fit will not be exact.
- Will my LUT look the same on log footage?
- No. A LUT derived from a photographic preset expects display-referred, already-tone-mapped input. Apply a log-to-Rec.709 conversion first, then the creative LUT on top.