ComfyUI Node

Log Wheels

Resolve-style shadow/midtone/highlight grading, without the $400 editor

By jeremieLouvaert·Created 5 months ago·Updated 2 days ago· 101
Log Wheels
  • image
  • image
presetCustom (manual)
shadow_hue0
shadow_saturation0
shadow_density0
midtone_hue0
midtone_saturation0
midtone_density0
highlight_hue0
highlight_saturation0
highlight_density0
shadow_range0.15
highlight_range0.85
strength1.00

Every serious colorist grades in three zones - shadows, midtones, highlights - and DaVinci Resolve made that workflow famous with its color wheels. Log Wheels brings the same idea to ComfyUI: pick a tint (hue) and intensity (saturation) for each zone, plus a brightness shift, and the node builds a smooth, professional grade. It's the "teal and orange" machine if you want it to be, but it's far more than that - it's a proper three-zone color tool.

How it works

The interesting part is the zone separation. This isn't a blunt thresholds-and-blend job. The node works in log2-encoded luminance space and creates soft Gaussian zone masks for shadows, midtones, and highlights. "Soft" is the key word - the zones blend into each other with smooth falloff rather than hard edges, so your grade doesn't band or posterize in the transitions. That's what separates it from a filter that just tints the whole image and calls it a day.

Each zone gets three controls:

  • hue - the tint direction. The tooltip gives you the map: 0=red, 60=yellow, 120=green, 180=cyan, 240=blue, 300=magenta. Shadows at 240 with a bit of saturation is your classic cold-shadow look.
  • saturation - 0–100, how strong that tint is.
  • density - −100 to +100, a brightness shift for the zone. Negative darkens; this is how you crush shadows or lift highlights as part of the grade.

Plus shadow_range (default 0.15) and highlight_range (default 0.85) define where the shadow and highlight zones live in linear light - raise/lower them to widen or tighten a zone.

Presets are the fast path

There's a preset dropdown with seven real looks baked in: Warm Shadows / Cool Highlights, Cool Shadows / Warm Highlights, the Teal & Orange cinematic standard, Bleach Bypass (low sat, high contrast), Day for Night (blue push), Golden Hour enhancement, and Moonlight (cold blue shadows). "Custom (manual)" is the default and the one that respects your sliders - the presets just populate them, so you can pick "Teal & Orange" and then hand-tune away from it. That preset-plus-manual pattern is everywhere in this pack, and it's the right pattern: instant result, then you take over.

Where it fits

Log Wheels lives in AKURATE/Darkroom/Grading and is a per-pixel color transform, so it's one of the nodes the README allows inside a LUT bake chain. That's a genuinely useful property: grade a photo with Log Wheels, bake the result into a .cube, and you can carry that exact three-zone look into video or share it as a LUT.

Output is a single image. The inputs are image, preset, the nine zone controls (three per zone), the two range controls, and strength for blending back toward the original - which is your "how much of this grade do I actually want" lever and the first thing to pull when a preset overshoots.

Installing it

It's part of the full ComfyUI-Darkroom pack:

cd ComfyUI/custom_nodes
git clone https://github.com/jeremieLouvaert/ComfyUI-Darkroom.git
pip install -r ComfyUI-Darkroom/requirements.txt

Or search "Darkroom" in ComfyUI Manager. Needs scipy, opensimplex, rawpy, exifread, Pillow; restart after install; lives under AKURATE/Darkroom/Grading. No GPU, no models, no API costs.

If you've ever found yourself stacking three different "add teal to shadows" nodes and fighting the boundaries between them, this is the one node that replaces that entire mess with proper zone masks. It's the workhorse of the pack's grading section.

CategoryAKURATE/Darkroom/Grading

Inputs (14)

NameTypeDefaultDescription
imageIMAGE
presetCOMBOCustom (manual)Select a log grading preset or use Custom
shadow_hueoptFLOAT00–360Shadow tint direction (0=red, 60=yellow, 120=green, 180=cyan, 240=blue, 300=magenta)
shadow_saturationoptFLOAT00–100Shadow tint color intensity
shadow_densityoptFLOAT0-100–100Shadow brightness shift (negative = darker)
midtone_hueoptFLOAT00–360Midtone tint direction
midtone_saturationoptFLOAT00–100Midtone tint color intensity
midtone_densityoptFLOAT0-100–100Midtone brightness shift
highlight_hueoptFLOAT00–360Highlight tint direction
highlight_saturationoptFLOAT00–100Highlight tint color intensity
highlight_densityoptFLOAT0-100–100Highlight brightness shift
shadow_rangeoptFLOAT0.150.05–0.4Upper boundary of shadow zone in linear light
highlight_rangeoptFLOAT0.850.6–0.95Lower boundary of highlight zone in linear light
strengthoptFLOAT1.000–1Blend between original (0) and graded (1)

Outputs (1)

NameTypeDescription
imageIMAGE