Skip to content

Measured, not guessed

Turn any photo into a Lightroom preset.

Give it the original and the edited version of the same photo and PresetForge reads the edit straight off the pixels — per-channel tone curves, colour mixer, grading, grain, vignette. Not a model guessing at slider values. Arithmetic, in a couple of seconds.

5 presets a month free · exact before/after included · no card

Harbour, blue hour, with the Cold Halation preset applied
Harbour, blue hour, before the edit
OriginalPreset applied

Pick a look

Shadows pushed blue, highlights pulled warm. The split is entirely in the channel curves — the white balance slider never moves.

Toe
+16
blacks lifted off zero
Shoulder
−13
highlights rolled
Midtone slope
1.16
contrast added
Split
214° → 38°
4 of 8 bands touched

Exported as a .xmp Lightroom reads without a conversion step — two clicks to install.

Derived preset

Cold Halation

.xmp · .cube · .json

Point curve

  • RGB
  • R
  • G
  • B
fit
97%
residual
1.8/255
anchors
18

Measured from the curve

Exposure
+0.06
Contrast
+16
Highlights
+11
Shadows
-7
Whites
-10
Blacks
+13
Texture
+8
Clarity
+6
Dehaze
+4
Vibrance
+16
Saturation
-4

Colour mixer · saturation

  • RED
  • ORA
  • YEL
  • GRE
  • AQU
  • BLU
  • PUR
  • MAG
Shadow tint214°sat 24
Highlight tint38°sat 18
Grain14size 24

The measurement

Four passes over the pixels, and no opinions.

The engine never asks what the photograph is of. It only asks what happened between the two files, which is a question with an answer.

  1. 01

    Align and bin

    Both frames are resampled to a common analysis size and every pixel is binned by its input value, separately in red, green and blue. A 20-megapixel pair gives roughly 80,000 samples per bin — enough that a single noisy pixel changes nothing.

  2. 02

    Take the median, fit the curve

    For each bin, the median output value. Medians rather than means, because a median ignores the handful of pixels where a local adjustment or a healing brush broke the correspondence. A monotone cubic is then fitted through the result so the curve can never invert local contrast.

  3. 03

    Separate what the curves did not explain

    Apply the curves back to the original and look at what is left. Whatever remains is not tonal — it is per-hue. That residue is decomposed into the eight colour-mixer bands, the shadow/midtone/highlight grade, the grain field and the vignette falloff.

  4. 04

    Report the error

    The derived preset is applied to the original and compared to the target. The mean absolute residual per channel goes on the result, so you can see how much of the look was reproducible and how much of it was masks and brushes that a global preset cannot express.

Three exports, one measurement

The same look, written three ways.

Generated from one source object, so the preset and the LUT cannot disagree with each other six months from now.

.xmp

A preset Lightroom cannot tell it did not write.

Bare x:xmpmeta document, no byte-order mark, no xpacket wrapper, correct Supports* flags, colour grading written with the legacy SplitToning attribute names Adobe actually uses, bipolar sliders written with explicit signs. It imports as an ordinary preset with no conversion step.

Lightroom Classic · Lightroom desktop · Lightroom mobile · Camera Raw · Bridge
On every plan, including free.

.cube

The grade, carried into video.

A 33×33×33 3D LUT, produced by evaluating the same look across 35,937 grid colours. The tonal and colour character travels; the spatial parts — grain, vignette, clarity — cannot, and we say so rather than pretending otherwise.

Premiere · Resolve · Final Cut · OBS · camera monitors

.json

The numbers themselves.

Every curve anchor, every band offset, the confidence and the residual. Not a format any application imports — it exists so the measurement is inspectable and so you can diff two looks against each other.

For scripting and for arguing with the result

What one image can tell you

A single photo cannot tell you whether it was warm light or a warm grade.

Nothing can separate the edit from the scene without a reference frame. Not us, not a model, not a person. So single-image mode does the only honest thing available: it reads the photograph's tonal and colour statistics and produces a preset that pushes a neutral image toward them. That is a strong first draft and a poor final answer, and we would rather say so than sell it as extraction.

Before/after mode is different in kind, not degree. With both states of the same frame the transform is observable, and the result comes with an error figure you can check. It is the reason the product exists — which is why it is free, rather than the thing you have to pay to find out about.

The full method, step by step

Pricing

The measurement is free. The full grade is not.

You can see the exact curves without paying anything. Pro adds the colour panel, the finer curves, the LUT and batches.

  • Free

    $0forever

    5 presets a month

    • Single-image extraction — included
    • Exact before/after extraction — included
    • Tone curves up to 8 anchors — included
    • Colour Mix (HSL) — not included
    • Colour Grading — not included
    • Grain — not included
    • Batch apply — not included
    • Export .xmp — included
    Start free
  • Pro

    Most complete

    $12per month

    Unlimited presets

    • Single-image extraction — included
    • Exact before/after extraction — included
    • Tone curves up to 16 anchors — included
    • Colour Mix (HSL) — included
    • Colour Grading — included
    • Grain — included
    • Batch apply, up to 50 photos — included
    • Export .xmp · .cube · .json — included
    Go Pro
  • Lifetime

    $79paid once

    Unlimited presets

    • Single-image extraction — included
    • Exact before/after extraction — included
    • Tone curves up to 16 anchors — included
    • Colour Mix (HSL) — included
    • Colour Grading — included
    • Grain — included
    • Batch apply, up to 50 photos — included
    • Export .xmp · .cube · .json — included
    Buy once

Full comparison and what each limit means →

Bring back a look you already made.

Upload the original and the edited version of the same photo. The measurement takes a few seconds, and exact before/after mode is on the free plan.