Nodes/ComfyUI-Apt_Preset/color_ImageCurve
ComfyUI Node

color_ImageCurve

Photoshop-style curves, with 30 built-in presets

By cardenluo·Created 2 years ago·Updated 22 days ago· 309
color_ImageCurve
  • image
  • image
curve_presetCustom
curve_data{"RGB":[[0.0,0.0],[1.0,1.0]],"R":[[0.0,0.0],[1.0,1.0]],"G":[[0.0,0.0],[1.0,1.0]],"B":[[0.0,0.0],[1.0,1.0]]}
saturation1.00

If you've used the Curves tool in Photoshop or Lightroom, color_ImageCurve works exactly the way you'd expect - drag points on a graph to reshape brightness, either across the combined RGB channel or on R, G, and B independently. Same tool, just living inside your ComfyUI graph instead of a separate app. It's under Apt_Preset/image/visualize_edit, and unlike some of this pack's other adjustment nodes, there's no separate plain/visual pair here - curves are inherently something you want to watch update live, so this node is always the interactive version.

How it works

curve_data is a JSON string holding the actual curve points per channel - the default is a flat identity curve, {"RGB":[[0,0],[1,1]], "R":[[0,0],[1,1]], "G":[[0,0],[1,1]], "B":[[0,0],[1,1]]}, meaning two anchor points at the corners, i.e. "do nothing." The node's own widget is what lets you actually drag points on screen; that JSON is what ends up stored once you have a shape you like.

The inputs and outputs that matter

  • curve_preset (dropdown, default Custom) - 30 built-in presets including Contrast (S) (the classic S-curve), Soft Contrast, Matte (the lifted-blacks, faded-shadow look common to a lot of Instagram-style presets), Fade Highlights, Brighten, Darken, Warm, Cool, Teal & Orange (the cinematic blockbuster grade - orange skin against teal shadows), Cross Process (the deliberately-wrong-chemistry analog film look), Linear, and 18 more.
  • curve_data (string, JSON) - the raw curve points; leave on Custom while hand-editing so a preset pick doesn't overwrite your work.
  • saturation (0-2, default 1) - a bonus dial bolted on next to the curve itself.
  • image in, image out - and because this is an output node, it previews directly on the canvas.

How to install it

Through ComfyUI Manager: search "ComfyUI-Apt_Preset", install, restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/cardenluo/ComfyUI-Apt_Preset.git

then run install.bat (Windows) or install requirements manually on Linux/Mac, and restart. No model downloads for this node.

Common issues & troubleshooting

Picking a preset wipes out a curve you hand-edited. That's expected - curve_preset presumably overwrites curve_data with the preset's own points. Keep curve_preset on Custom while manually dragging points, and only touch the dropdown when you actually want to replace your curve.

Preview doesn't update after picking a preset. JSON-string-backed widgets like this one can occasionally lag the UI; if the canvas doesn't refresh, re-queue the node once to sync it.

Not sure which preset to start from. Teal & Orange and Cross Process are genuinely useful starting grades rather than novelty options - worth trying before hand-placing points from scratch.

IMPORT FAILED on the pack. ComfyUI-Apt_Preset is large and updates often; users have reported import failures after some updates. Reinstall via Manager before assuming it's this node.

CategoryApt_Preset/image/visualize_edit

Inputs (4)

NameTypeDefaultDescription
imageIMAGE
curve_presetCOMBOCustom30 options: Custom, Contrast (S), Soft Contrast, Matte, Fade Highlights, Brighten, +24
curve_dataSTRING{"RGB":[[0.0,0.0],[1.0,1.0]],"R":[[0.0,0.0],[1.0,1.0]],"G":[[0.0,0.0],[1.0,1.0]],"B":[[0.0,0.0],[1.0,1.0]]}
saturationFLOAT1.000–2

Outputs (1)

NameTypeDescription
imageIMAGE