Nodes/ComfyUI-Darkroom/3-Way Color Balance
ComfyUI Node

3-Way Color Balance

3-Way Color Balance — instant cinematic color casts with 16 presets to start from

By jeremieLouvaert·Created 5 months ago·Updated 2 days ago· 101
3-Way Color Balance
  • image
  • image
presetCustom (manual)
shadow_hue210
shadow_intensity0
midtone_hue0
midtone_intensity0
highlight_hue40
highlight_intensity0
preserve_luminancetrue
master_saturation0
strength1.00

3-Way Color Balance is the fastest route in Darkroom to a creative color grade - the split-toning move where shadows go one color, highlights go another, and the whole frame picks up a mood. It's preset-first, with 16 looks in the dropdown from Orange & Teal and Moonlight Blue to Film Noir - cold and Pastel Dream. If you've ever wanted the "cinematic" answer to a flat render, this is the one to reach for before you start hand-tuning anything.

The mental model is DaVinci Resolve's classic three-way: soft masks split the image into shadow, midtone, and highlight zones, and you tint each zone with a hue and an intensity. The preset is a starting point; every preset is just a pre-set combination of the same per-zone knobs, so you can land a look in one click and then make it yours. That's the workflow the whole pack is built around - instant result, fine-tune after.

How it works

The image goes to linear light, a Rec.709 luminance map is computed, and soft zone masks are derived - shadows strongest in the low end and fading toward midtones, highlights the reverse, midtones a bell over the middle. Each zone then gets a tint along the hue wheel at the intensity you set, blended back so the cast follows the zone's natural shape rather than hard bands. preserve_luminance keeps the tinting from shifting overall brightness - leave it on unless you specifically want the tint to also darken or lift.

The inputs that matter

  • preset (16 choices, default Custom) - Orange & Teal (cinematic/subtle), Vintage Warm/Cool, Moonlight Blue, Golden Hour, Pastel Dream, Film Noir - cold, Autumn Warmth, Summer Vibrance, Desaturated Teal, and more. Orange & Teal is famous for a reason; Vintage Warm is the one I default to for daylight shots.
  • shadow_hue / midtone_hue / highlight_hue (0–360) - the tint direction per zone. The tooltip gives you the wheel: 0=red, 60=yellow, 120=green, 180=cyan, 240=blue, 300=magenta. A classic split is shadows at 210–240 (blue) and highlights at 30–50 (warm).
  • shadow_intensity / midtone_intensity / highlight_intensity (0–100) - how strong each zone's tint is.
  • master_saturation (±50) - a global saturation nudge on top of the tinting, for pulling things back or pushing further.
  • preserve_luminance (bool, default true) - keep brightness out of the tinting equation.
  • strength (0–1) - blend between original and tinted; the "how far do I commit" control.

Output is image. It's color-only, so it bakes into a LUT cleanly.

Install & notes

Pack install as always: Manager → search "Darkroom", or git clone https://github.com/jeremieLouvaert/ComfyUI-Darkroom + pip install -r requirements.txt + restart. No GPU, no downloads.

The trap: presets at full strength are strong, and Orange & Teal at 1.0 on a skin-heavy image can turn everyone vaguely green. Run it at 0.4–0.7 and ride master_saturation down a touch - the preset gives you the direction, not the final answer. And if a tint "isn't showing up," check you're not fighting preserve_luminance expectations - the tint is confined to its zone by design, so low-intensity on a low-key image is genuinely subtle.

CategoryAKURATE/Darkroom/Grading

Inputs (11)

NameTypeDefaultDescription
imageIMAGE
presetCOMBOCustom (manual)Select a creative color balance look or use Custom
shadow_hueoptFLOAT2100–360Shadow tint direction (0=red, 60=yellow, 120=green, 180=cyan, 240=blue, 300=magenta)
shadow_intensityoptFLOAT00–100Shadow tint intensity
midtone_hueoptFLOAT00–360Midtone tint direction
midtone_intensityoptFLOAT00–100Midtone tint intensity
highlight_hueoptFLOAT400–360Highlight tint direction
highlight_intensityoptFLOAT00–100Highlight tint intensity
preserve_luminanceoptBOOLEANtruePrevent color tinting from changing overall brightness
master_saturationoptFLOAT0-50–50Global saturation adjustment on top of tinting
strengthoptFLOAT1.000–1Blend between original (0) and tinted (1)

Outputs (1)

NameTypeDescription
imageIMAGE