Nodes/ComfyUI-Curve/📈 Camera Raw Tone Curve
ComfyUI Node

📈 Camera Raw Tone Curve

The parametric tone curve — the pack's quiet powerhouse

By aiaiaikkk·Created about a year ago·Updated 10 months ago· 181
📈 Camera Raw Tone Curve
  • image
  • mask
  • image
  • tone_curve_chart
curve_presetLinear
point_curve[[0,0],[255,255]]
highlights0
lights0
darks0
shadows0
curve_modeCombined
mask_blur0.0
invert_maskfalse

Nobody searches for this one yet, which is a shame, because it's the pack's quiet powerhouse. The Photoshop Curve node gives you point curves - drag points, make an S. This one adds the parametric tone curve from Adobe Camera Raw: four named bands (Highlights, Lights, Darks, Shadows) that you can push independently, the way you'd recover blown-out highlights or lift crushed shadows without drawing a single control point. If you've used Lightroom's tone curve panel, you know exactly what this feels like.

Reach for it when a point curve is too blunt. An S-curve moves everything; the parametric curve moves regions with soft, overlapping weights, so pulling Highlights down to rescue a blown sky barely touches the midtones. For AI images that come out top-heavy or murky, this is often the fastest path to a balanced render - set curve_preset to Medium Contrast, nudge the four bands, done.

How it works

The node builds a lookup table from a base curve, then layers region adjustments on top using Camera Raw's band definitions: shadows cover roughly 0-25% of the range, darks 25-50%, lights 50-75%, highlights 75-100%, with each band weighted by a smooth falloff so the transitions stay invisible. In Point mode you get a raw point curve (the same [[x,y],...] format as PS Curves); in Parametric mode the four sliders do the work; in Combined mode - the default - both apply, which is how Camera Raw behaves with a custom curve. The second output, tone_curve_chart, renders the final curve with matplotlib so you can see what your sliders actually built.

There are four named presets to start from: Linear, Medium Contrast, Strong Contrast, and Custom. The first three are the ACR standards; pick one as your base and push the bands from there.

The inputs that matter

  • curve_preset - Linear, Medium Contrast, Strong Contrast, or Custom. Your starting point.
  • point_curve - the point list if you're working in Point or Combined mode.
  • highlights / lights / darks / shadows - each -100 to 100. This is the whole appeal: four sliders instead of twenty curve points.
  • curve_mode - Point, Parametric, or Combined.

Outputs: image and tone_curve_chart. There's also an optional mask / mask_blur (0-50) / invert_mask set, so you can tone-map only part of the frame if you want.

Installing it

Standard pack install. ComfyUI Manager → search "ComfyUI-Curve", or:

cd ComfyUI/custom_nodes
git clone https://github.com/aiaiaikkk/ComfyUI-Curve.git

Restart ComfyUI. No models, no keys. scipy does the curve math and matplotlib renders the chart - both come with the pack's requirements.

Where people get burned

The curve_mode default is Combined, which means both the preset/point curve and the parametric sliders are active - if you drag the four sliders and "nothing happens," check whether curve_preset is still Linear and remember Linear is the neutral base. Also note the bands are fixed at Camera Raw's proportions; you can't drag the band boundaries around. It's less flexible than a full custom curve editor and intentionally so - the trade-off (four intuitive sliders, predictable results) is exactly what makes it worth using.

CategoryCamera Raw

Inputs (11)

NameTypeDefaultDescription
imageIMAGE
curve_presetCOMBOLinearCamera Raw内置色调曲线预设
point_curveSTRING[[0,0],[255,255]]点曲线控制点,格式:[[x1,y1],[x2,y2],...]
highlightsFLOAT0-100–100高光区域调整 (Camera Raw标准)
lightsFLOAT0-100–100明亮区域调整 (Camera Raw标准)
darksFLOAT0-100–100暗部区域调整 (Camera Raw标准)
shadowsFLOAT0-100–100阴影区域调整 (Camera Raw标准)
curve_modeCOMBOCombined曲线模式:点曲线/参数曲线/组合模式
maskoptMASK
mask_bluroptFLOAT0.00–50遮罩羽化半径
invert_maskoptBOOLEANfalse反转遮罩

Outputs (2)

NameTypeDescription
imageIMAGE
tone_curve_chartIMAGE