ComfyUI Node

Snap Basic Filters

One-Click Color Filters for When You Just Want the Image to Pop

By SignalCha1n·Created about a year ago·Updated about a year ago· 4
Snap Basic Filters
  • image
  • IMAGE
filter_typeoriginal
strength1.00
randomize_filterfalse
randomize_strengthfalse
random_strength_min0.50
random_strength_max1.00
seed0

SnapBasicFilters is the "swipe right" filter strip for ComfyUI: a handful of dead-simple color grades - grayscale, vivid, warmer, cooler, brighter, darker - that you apply to an already-generated image. No color-matching, no curves, no learning curve. If you've spent an hour in a grading suite fighting with LUTs and just want the image to pop without thinking, this is the node. It's the least ambitious thing in the ComfySnap pack and honestly the most reusable.

How it works

Nothing clever, and that's the appeal. The code is PIL under the hood, which means it's CPU-fast and needs nothing beyond what ComfyUI already ships. Each filter is one or two ImageEnhance operations:

  • grayscale - straight desaturation.
  • vivid - contrast ×1.3 and color ×1.3. The "make it pop" button.
  • cooler / warmer - a ~12% alpha blend of a blue or orange tint over the image. Subtle, which is the right call.
  • brighter / darker - brightness shifts, with darker also nudging contrast so shadows don't flatten out.

Then it blends the filtered result back with the original by strength, so 1.0 is the full filter and 0.3 is a hint of it. The one thing that makes this more than a toy is the randomization: flip randomize_filter and it picks a random non-"original" filter per run; flip randomize_strength and it picks a random strength inside your random_strength_min/random_strength_max window. Both respect seed, so batches stay reproducible.

The inputs that matter

  • filter_type - the seven-way dropdown. "original" is the identity.
  • strength - blend toward the original, 0–1.
  • randomize_filter / randomize_strength - the two toggles that turn this into a batch-variety machine.
  • seed - reproducibility for the randomizers.

Feed it one IMAGE, get one IMAGE back, batch-preserved. It wires straight into the next node in your chain - in the pack's example workflow it sits right before LowQualityDigitalLook, which is a nice order: grade first, then add the grit.

Why you'd actually reach for it

Two honest use cases. One: finishing touches on a single image when you want "vivid" or a warm tint without building a five-node color workflow. Two - the better one - batch variety: set up a generation loop, turn on both randomizers, and get a contact sheet of the same image in six different moods. That's the Snap swipe-filter energy the node is named for, and it's genuinely fun to spam. The honest caveat: this is a small subset of what WAS Node Suite's color toolkit or a real grading chain can do. If you need precise, film-accurate grades, this isn't the tool. If you need "casual, fast, occasionally random," it's perfect.

Installing it

Part of the ComfySnap pack, which is not in ComfyUI Manager - that's the trap; don't go looking for it there. Clone:

cd ComfyUI/custom_nodes
git clone https://github.com/SignalCha1n/comfyui-ComfySnap

Restart ComfyUI, and it shows up under the ComfySnap category. The pack's own requirements.txt pins torch==1.13.1 from a bygone era - ignore it. The node only imports torch, numpy, and PIL, all of which your ComfyUI already has. Don't downgrade your install for a filter node.

Where it bites

Two small gotchas. First, "original" with full strength returns the input unchanged - that's by design, not a bug, but it confuses people the first time. Second, when randomize_filter is on it ignores your filter_type selection entirely, and same for randomize_strength vs strength - the sliders go dead until you toggle the randomizers off. If your image suddenly comes out grayscale and you didn't ask for it, that's a leftover randomizer toggle, not the node being broken.

CategoryComfySnap

Inputs (8)

NameTypeDefaultDescription
imageIMAGE
filter_typeCOMBOoriginal7 options: original, grayscale, vivid, cooler, warmer, brighter, +1
strengthFLOAT1.000–1
randomize_filterBOOLEANfalse
randomize_strengthBOOLEANfalse
random_strength_minFLOAT0.500–1
random_strength_maxFLOAT1.000–1
seedINT00–18446744073709550000

Outputs (1)

NameTypeDescription
IMAGEIMAGE