Nodes/ComfyTV/Color Suppress
ComfyUI Node

Color Suppress

Knock out any color cast, not just green screen spill

By jtydhr88·Created 3 months ago·Updated about 15 hours ago· 725
Color Suppress
  • video
  • video
force_run_token0
project_id
parent_output_id0
red0.00
green0.00
blue0.00
cyan0.00
magenta0.00
yellow0.00
preserve_lumafalse
outputimage

Despill tools are single-minded: they kill green or blue screen spill, and that's it. Color Suppress is the more general cousin. You get a slider for each of six colors - red, green, blue, cyan, magenta, yellow - and each one dials down how much of that color lives in your footage. Magenta light leak ruining a shot? Green spill on a subject's shoulders plus a second unwanted hue? A too-blue sky you want to rein in as part of a grade? Six sliders cover all of it, in any combination.

It sits in the Keying lane, which is the right home: this is the tool you reach for after a chroma key, when the foreground is carrying the screen color around its edges. But the docs are honest that its real strength is broader - targeted spill and tint removal on footage that was never keyed at all.

How it works

It runs as a live fx-preview filter: the node emits an fx spec (color_suppress) and passes the video through, so results preview without a full render - then a ▶ Run commits it. On a Torch backend per the pack's docs. All six sliders at 0 and it's a clean pass-through, which the source short-circuits before building the spec. COMFYTV_VIDEO in and out; Bridge to native nodes if you need them.

The inputs that matter

  • red / green / blue / cyan / magenta / yellow - one suppression amount per color, each 0–1, default 0 (no change). Raise to remove more of that color; any combination works.
  • preserve_luma - boolean, default off. Keeps each pixel's brightness constant while suppressing color, so shapes and detail don't go muddy when you pull a strong color. You'll want this on for anything aggressive.
  • output - image (default) returns the corrected footage; matte returns a grayscale matte derived from the suppression, which is handy for building or inspecting masks.

Output is video (COMFYTV_VIDEO).

Installing it

cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV

Restart the ComfyUI backend (not just the tab); nodes appear under the ComfyTV category. ComfyUI Manager finds the pack by searching "ComfyTV". The README's two recurring gotchas: on Desktop/macOS/multi-install setups the relative cd can clone into the wrong instance - read the startup log for the base path it loaded and clone into that absolute path, quoted - and the first level of custom_nodes/ComfyTV/ must contain __init__.py, not a nested ComfyTV/ComfyTV/ folder. No Python dependencies to install.

Troubleshooting and tips

  • Image gets muddy or dark. That's what preserve_luma is for - switch it on when you're suppressing a strong color.
  • Dedicated green screen fringe? Despill is purpose-built for it. Reach for Color Suppress when the unwanted color isn't the screen - that's the honest division of labor in this pack.
  • Nothing changes on Run? All six sliders are at 0 - deliberate pass-through.
  • Matte inspection. Switch output to matte to eyeball exactly what the suppression is grabbing before you commit to the correction.
CategoryComfyTV/Keying

Inputs (12)

NameTypeDefaultDescription
force_run_tokenINT00–2147483647Internal — bumped on Run to invalidate ComfyUI's input cache.
project_idSTRINGInternal — populated by the projectStore on the frontend.
parent_output_idINT00–2147483647Internal — lineage parent set by spawn handlers on the frontend.
redFLOAT0.000–1
greenFLOAT0.000–1
blueFLOAT0.000–1
cyanFLOAT0.000–1
magentaFLOAT0.000–1
yellowFLOAT0.000–1
preserve_lumaBOOLEANfalse
outputCOMBOimage2 options: image, matte
videooptCOMFYTV_VIDEO

Outputs (1)

NameTypeDescription
videoCOMFYTV_VIDEO