Lift Gamma Gain
The Resolve primary corrector, all 16 wheels in one node
- image
- image
If you've ever watched a colorist work in DaVinci Resolve, the first thing they touch is the primary corrector: lift, gamma, gain, offset - four controls, each with a master and R/G/B. That's the whole foundation of professional color grading, and it's exactly what Lift Gamma Gain brings to ComfyUI: sixteen precision sliders plus a strength blend, doing what Resolve's wheels do.
It's the heaviest-hitting grading node in ComfyUI-Darkroom, and it's the one to reach for when a look is starting from zero - before presets, before film stocks, you balance the image with this. Everything else (HSL, warper, film stock) is decoration on top of a solid primary grade.
How it works
Each control does a different job and they're applied in order:
- Lift - offsets the shadows. Lift red positive warms the blacks; negative cools them.
- Gamma - changes midtone brightness/color without moving the extremes. Gamma > 1 brightens mids.
- Gain - multiplies highlights. This is where you push color into the whites.
- Offset - a flat shift across the whole tonal range, additive like a brightness bias.
Each has a Master slider and per-channel R/G/B sliders, and the per-channel values add to the Master, so you can do a warm master look then pull the skin back with a per-channel correction. All processing happens in linear light like the rest of the pack.
The inputs that matter
- lift_r/g/b + lift_master - shadow color. The classic move: lift_g a touch for green-shadow film tone, or lift_r for warm shadows.
- gamma_r/g/b + gamma_master - midtone control. Per-channel gamma is how you fix a color cast without touching skin's shadow/highlight balance.
- gain_r/g/b + gain_master - highlight color. Push gain_r and pull gain_b and you've started your teal-and-orange.
- offset_master - the flat global shift. Often the fastest way to lift a too-dark frame.
- strength - blend between original and graded. This is your "how committed am I" knob.
Output is image - standard wiring.
Install and gotchas
cd ComfyUI/custom_nodes
git clone https://github.com/jeremieLouvaert/ComfyUI-Darkroom
pip install -r ComfyUI-Darkroom/requirements.txt
Or search "Darkroom" in ComfyUI Manager and restart. It's under AKURATE/Darkroom/Grading.
The beginner failure mode is touching everything. A good primary grade is often two or three sliders: one master gamma for exposure, one per-channel lift for the cast, one gain for the highlight mood. Anything more and you're chasing your own tail. Note the sliders have small ranges on purpose - lift is ±1, gain 0–4 - so the node punishes heroics and rewards restraint. And it's a per-pixel transform, so it's fully welcome in a LUT bake chain; a lift/gamma/gain grade is exactly the kind of thing worth exporting as a .cube so your "one look" follows you across projects.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| lift_ropt | FLOAT | 0.00-1–1 | Red channel lift (shadow color offset) |
| lift_gopt | FLOAT | 0.00-1–1 | Green channel lift (shadow color offset) |
| lift_bopt | FLOAT | 0.00-1–1 | Blue channel lift (shadow color offset) |
| lift_masteropt | FLOAT | 0.00-1–1 | Master lift — applies to all channels |
| gamma_ropt | FLOAT | 1.000.1–4 | Red channel gamma (midtone brightness). >1 = brighter mids |
| gamma_gopt | FLOAT | 1.000.1–4 | Green channel gamma (midtone brightness) |
| gamma_bopt | FLOAT | 1.000.1–4 | Blue channel gamma (midtone brightness) |
| gamma_masteropt | FLOAT | 1.000.1–4 | Master gamma — multiplies into all channels |
| gain_ropt | FLOAT | 1.000–4 | Red channel gain (highlight multiplier) |
| gain_gopt | FLOAT | 1.000–4 | Green channel gain (highlight multiplier) |
| gain_bopt | FLOAT | 1.000–4 | Blue channel gain (highlight multiplier) |
| gain_masteropt | FLOAT | 1.000–4 | Master gain — multiplies into all channels |
| offset_ropt | FLOAT | 0.000-0.5–0.5 | Red channel offset (flat global shift) |
| offset_gopt | FLOAT | 0.000-0.5–0.5 | Green channel offset (flat global shift) |
| offset_bopt | FLOAT | 0.000-0.5–0.5 | Blue channel offset (flat global shift) |
| offset_masteropt | FLOAT | 0.000-0.5–0.5 | Master offset — adds to all channels |
| strengthopt | FLOAT | 1.000–1 | Blend between original (0) and graded (1) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |