Select0r
The Nuke-Style Keyer That Made It Into ComfyUI
- video
- video
Select0r is a real thing from professional compositing - it's the Foundry/Nuke keying tool that grew up around pulling clean mattes from color differences. ComfyTV ships its own port of the concept as a stage, which is a flex: this is the tool to reach for when you need to key something where a green screen isn't the answer, or when the green screen is there but the standard chroma key is leaving garbage edges. It sits under ComfyTV/Keying alongside the pack's chroma key and despill suite.
The core idea: you pick a key_color (hex, default #00FF00), and the node computes a matte from distance in color space rather than a flat chroma range. The delta_1/delta_2/delta_3 sliders (0.001–2, default 0.2 each) are the tolerance along the three axes of the working space - and that space dropdown is where it gets compositor-flavored: rgb, abi, or hci. (If you know Nuke's Select0r, those are the same color-space choices, ported faithfully.) shape picks the tolerance volume - box, ellipsoid, octahedron - and edge (hard, fat, normal, skiny, slope) controls how the matte behaves at the color boundary. slope (0.001–1, default 0.2) is the falloff at the edges of your key; it's the knob that turns a hard, aliased edge into a soft, spilly key.
There's also invert (flip the matte), and output - matte (default, grayscale key output) or image (the held-out/processed image). Video goes in (optional video), video comes out (the matte or image as a video), ready to feed a despill, KeyMix, or a Compose stage for the actual composite.
When to use it
Reach for Select0r when a straight chroma key fails: uneven green-screen lighting, spill, or footage where the key color isn't actually uniform. The deltas + shape + edge combo is far more forgiving than a single tolerance slider. Don't reach for it when you're cutting out a subject from an arbitrary background - that's a job for the pack's SAM-based tools (Split Parts, cutout), not a color keyer. It's also a genuinely deep node: the defaults are conservative, so a beginner who only moves key_color will get a muddy matte. Move delta_1..3 up together first.
Install
Part of ComfyTV:
cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV
Restart ComfyUI; look under ComfyTV → Keying. ComfyUI Manager: search "ComfyTV". Desktop/macOS: clone into the running instance's absolute custom_nodes path (from the startup log), fix any ComfyTV/ComfyTV/ nesting, full backend restart. No models, no extra Python deps - the key math runs through the pack's torch FX engine.
Troubleshooting
- Matte is mostly noise / everything keys. Deltas too high - the tolerance volume is eating the whole frame. Drop
delta_1..3to 0.05 and raise slowly. - Hard, aliased edges on the composite.
edgeathardwithslopeat the bottom is the spikiest possible key. Gonormal/slope~0.3+ for a softer boundary, then despill the residue. - Wrong thing is keyed. Check
invert- the matte is "everything close to key_color"; flip it when you want the key out.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| force_run_token | INT | 00–2147483647 | Internal — bumped on Run to invalidate ComfyUI's input cache. |
| project_id | STRING | Internal — populated by the projectStore on the frontend. | |
| parent_output_id | INT | 00–2147483647 | Internal — lineage parent set by spawn handlers on the frontend. |
| key_color | STRING | #00FF00 | — |
| space | COMBO | rgb | 3 options: rgb, abi, hci |
| shape | COMBO | ellipsoid | 3 options: box, ellipsoid, octahedron |
| edge | COMBO | normal | 5 options: hard, fat, normal, skiny, slope |
| delta_1 | FLOAT | 0.2000.001–2 | — |
| delta_2 | FLOAT | 0.2000.001–2 | — |
| delta_3 | FLOAT | 0.2000.001–2 | — |
| slope | FLOAT | 0.2000.001–1 | — |
| invert | BOOLEAN | false | — |
| output | COMBO | matte | 2 options: matte, image |
| videoopt | COMFYTV_VIDEO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | COMFYTV_VIDEO | — |