πΎ Curves Adjust Pro
Photoshop curves, minus the Photoshop
- image
- mask
- IMAGE
The curve is the most expressive single tool in any photo editor: drag the line, and the whole tonal and color character of the image changes. ComfyUI's stock nodes never gave you a real one - you were supposed to hand-write a LUT or fake it with math. Curves Adjust Pro is the proper fix: an interactive curve editor with separate RGB/R/G/B channels, 17 presets, and mask support, all inside a node. If you've ever done a "cinematic grade" with a multiply node and a prayer, this is the upgrade.
How it works
You edit the curve as a list of control points per channel, stored in curve_data as JSON - the default is a flat identity curve for all four channels ([[0,0],[1,1]]). The node interpolates through your points with a Catmull-Rom spline for smooth results, and applies the channel curves as lookup tables. Click to add points, drag to move them, shift-click to remove - the interactive editor handles the JSON for you, so you rarely see it.
The preset dropdown is the cheat sheet: 17 built-in looks including auto_enhance, high_contrast, low_contrast, warm_tones, cool_tones, vintage_fade, cinematic, matte_look, cross_process, sepia_tone, bleach_bypass, and more. Select a preset and the curve_data fills in automatically - great for learning what the shapes do (the cinematic preset's lifted blacks and gentle S-curve are exactly what everyone means by "the film look").
Inputs that matter
- image (required) - your render.
- curve_data - the JSON point list; usually hand-edit via the UI instead.
- preset - one-shot looks; "none" if you want pure manual.
- mask + invert_mask (optional) - apply the grade only where the mask says so. This is the killer feature for selective grading: a sky mask gets a different curve than the foreground, with no separate composite step.
Output is a single IMAGE. For batch use, the same curves run across every frame - that's your "one grade for the whole set" workflow in a single node.
Install
Standard MachinePainting Nodes install:
cd ComfyUI/custom_nodes
git clone https://github.com/machinepainting/ComfyUI-MachinePaintingNodes.git
pip install -r requirements.txt
or ComfyUI Manager β "MachinePaintingNodes" β install β restart.
Gotchas
The curve editor is the best part and the fiddliest part: it's easy to add one too many points and end up with a wavy mess (Catmull-Rom will happily interpolate through them). Start from a preset, then make one or two point edits. And remember preset + manual curve can fight each other - the code applies a preset only when the manual curves are still the identity line, so if your custom edits aren't showing, check whether a preset is silently overriding them. Finally, the curve is global to the frame unless you use the mask; if you want zone-specific correction, that's the mask path or the shadows/midtones/highlights of Color Adjust Blend.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| curve_data | STRING | {"rgb":[[0,0],[1,1]],"red":[[0,0],[1,1]],"green":[[0,0],[1,1]],"blue":[[0,0],[1,1]]} | β |
| preset | COMBO | none | 18 options: none, auto_enhance, high_contrast, low_contrast, warm_tones, cool_tones, +12 |
| maskopt | MASK | β | |
| invert_maskopt | BOOLEAN | false | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | β |