Color Isolation FX (CRT)
Keep one hue, kill the rest
- image
- target_color
- IMAGE
You've seen this effect a thousand times even if you didn't know its name: the black-and-white photo where one object stays in full color - a red umbrella, a pair of yellow shoes. It's a selective-color technique, and it's older than digital photography, but doing it well means controlling exactly which hues survive and how the transition between "kept" and "desaturated" is handled. That's what this node is for.
What it's for
Color Isolation FX picks a target hue and either keeps only that hue in color while desaturating everything else (Isolate), or does the reverse - desaturates just that hue while leaving the rest of the image alone (Reject). It's a hue-band selection, not a flat-color match, so it responds to how close a pixel's hue is to your target rather than requiring an exact color match - which is what makes it usable on real photographic content instead of flat illustration.
The inputs and outputs that matter
image- requiredIMAGEinput.target_color(default#DE827B, aCOLORpicker) - the hue you're isolating or rejecting. The RGB value you pick is converted internally to a hue for the comparison.hue_shift(default 0, range −0.5 to 0.5) - nudges the target hue without needing to repick the color.window_function(GaussorTriangle) - the falloff shape used around the target hue. Gauss gives a smoother, more gradual transition; Triangle a more linear one.hue_width(default 0.07, range 0.001–2) - how wide the hue band is. Narrow catches only near-exact matches; wide sweeps in a broader range of similar colors.curve_steepness(default 0.4, range 0–10) - how hard the transition falls off at the edge of that band.mode(IsolateorReject) - isolate keeps the target hue colorful and desaturates everything else; reject does the opposite.output_mode(Final ImageorShow Mask) - switch toShow Maskto preview exactly which pixels the hue selection is catching, before committing to the final composite. This is the fastest way to dial inhue_widthandcurve_steepnesswithout guessing.
Output: a single IMAGE.
Installing it
Part of CRT-Nodes' twelve-node CRT/FX category, alongside Contour FX, Arcane Bloom FX, and the rest of the post-processing suite - all bundled in PGCRT's larger CRT-Nodes pack.
ComfyUI Manager - search CRT-Nodes, install, restart.
Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/PGCRT/CRT-Nodes.git
pip install -r requirements.txt
Restart ComfyUI. Color-space math like this leans on opencv-contrib-python and color-matcher from the pack's shared base requirements - nothing to install specifically for this node.
Common issues
- Nothing looks isolated, or the whole image stays in color - the number one workflow mistake with any selective-color node is dialing
hue_widthandcurve_steepnessblind. Flipoutput_modetoShow Maskfirst, confirm the mask is actually catching your target object and nothing else, then switch back toFinal Image. - Isolation catches too much or bleeds into nearby colors - narrow
hue_widthdown, or raisecurve_steepnessfor a sharper cutoff at the band edge. - Target color picked from a reference image doesn't match what gets isolated - remember
target_coloris a hue selection, not an exact RGB match; lighting and saturation differences between your reference and the actual pixels in your image shift the apparent hue. Usehue_shiftto compensate rather than repicking the color repeatedly. - Effect looks harsh with a hard edge between color and gray - that's
window_functionset toTrianglewith a lowhue_width; switch toGaussfor a softer falloff.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| target_color | COLOR | #DE827B | — |
| hue_shift | FLOAT | 0.00-0.5–0.5 | — |
| window_function | COMBO | 2 options: Gauss, Triangle | |
| hue_width | FLOAT | 0.0700.001–2 | — |
| curve_steepness | FLOAT | 0.400–10 | — |
| mode | COMBO | 2 options: Isolate, Reject | |
| output_mode | COMBO | 2 options: Final Image, Show Mask |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |