Nodes/zsq_prompt/Image Filter
ComfyUI Node

Image Filter

One Node That Replaces a Shelf of Photoshop Actions

By windfancy·Created 2 years ago·Updated 5 months ago· 2
Image Filter
  • image
  • image
contrast1.0
brightness1.0
saturation1.0
gamma1.0
hue_shift0.0
Red1.0
Green1.0
Blue1.0
filterNONE
image_outputPreview
save_prefixComfyUI

imageFilter is the post-process Swiss Army knife of the zsq_prompt pack: color grading and one-shot filters in a single node. Want a grainy vintage look? Contrast knocked up and a sepia pass? A sketch version of an image to feed into a ControlNet lineart setup? This node does all of it without you wiring up five separate nodes.

How it works

It's Pillow under the hood, and it processes in a sensible order: hue shift first (via an HSV rotate), then contrast, brightness, saturation, gamma (a lookup-table correction), then per-channel Red/Green/Blue adjustments, and finally the filter itself. Order matters - the filter runs on the already-color-graded image, so you can stack a warm tone with a sketch effect in one pass.

The nine grading sliders are all floats, default 1.0, range 0–10: contrast, brightness, saturation, gamma, and the Red/Green/Blue channel multipliers. hue_shift goes −180 to 180 and does exactly what it says. Leave them at 1.0 and they're no-ops, so the node is safe to drop into a workflow and dial in later.

The filter menu

filter is where the fun is. Your options: EMBOSS, VINTAGE, SKETCH, CONTOUR, NOISE, SHARPEN, BLUR, EDGE, SEPIA, GRAYSCALE, INVERT, MedianFilter, or NONE to skip. A few stand out in practice:

  • VINTAGE and SEPIA are the ones people actually use to make generated images feel like photos.
  • SKETCH and CONTOUR produce edge maps - feed those into a ControlNet canny/lineart-style setup as conditioning images instead of hunting for a separate preprocessor.
  • MedianFilter is a light denoise, handy before an upscale step.

Output is a single image, with the pack's standard image_output (Hide/Preview/Save/Hide/Save) and save_prefix handling whether it shows up in the queue.

Gotchas

Noise and emboss are blunt instruments - they'll apply to the whole frame including faces. If you want to filter only part of an image you need a mask, which this node doesn't take; mask before it, or composite after. And remember the slider order: if you're doing a sketch effect you probably want saturation near 0 and the filter doing the heavy lifting, not both fighting.

Installing it

It's part of windfancy/zsq_prompt - search "zsq_prompt" in ComfyUI Manager, install, restart. Or the manual route:

cd ComfyUI/custom_nodes
git clone https://github.com/windfancy/zsq_prompt

then restart ComfyUI. The pack's requirements.txt pulls heavy packages (transformers, ultralytics, onnx) that this node never touches - those serve the pack's other, fancier nodes. And yes, Manager may show a "conflicting" warning next to zsq_prompt because the pack reuses very generic class names; the community's advice is to ignore that message unless you've actually installed the other pack it's complaining about.

Verdict

Overkill for "just add contrast," genuinely useful when you want the whole grading toolkit in one node. The VINTAGE/SKETCH presets alone justify the install if you do any styled or cinematic output.

CategoryZSQ/Image

Inputs (12)

NameTypeDefaultDescription
imageIMAGE
contrastFLOAT1.00–10
brightnessFLOAT1.00–10
saturationFLOAT1.00–10
gammaFLOAT1.00–10
hue_shiftFLOAT0.0-180–180
RedFLOAT1.00–10
GreenFLOAT1.00–10
BlueFLOAT1.00–10
filterCOMBONONE13 options: NONE, EMBOSS, VINTAGE, SKETCH, CONTOUR, NOISE, +7
image_outputCOMBOPreview4 options: Hide, Preview, Save, Hide/Save
save_prefixSTRINGComfyUI

Outputs (1)

NameTypeDescription
imageIMAGE