CannySlider
Two thresholds for edge detection, packed as one output
- VEC2
Canny edge detection has exactly two knobs that matter - low and high threshold - and they're always adjusted together. CannySlider puts both on the Flux Continuum front panel as a pair of sliders and bundles them into a single VEC2 output, so the canny preprocessor gets both values down one wire. It's the canny-specific sibling of the pack's ControlNet Slider, built for the workflow's edge-guided module.
How it works
Canny detects edges by thresholding image gradients: pixels above the high threshold are definitely edges, pixels below the low threshold are definitely not, and pixels in between count as edges only if they connect to a definite one. Low threshold too high and you get sparse, broken edges; too low and every bit of texture becomes a line. The two values are a sensitivity pair, not independent settings.
The node outputs them as a VEC2 tuple (Low_Threshold, High_Threshold). In the workflow, a SplitVec2 node breaks that back into the two individual floats the Canny preprocessor wants - so you get a compact front-panel control and the preprocessor still gets its two clean inputs.
Inputs and outputs
- Low_Threshold -
FLOAT, 0.10 to 0.99, default 0.40, step 0.01. - High_Threshold -
FLOAT, 0.10 to 0.99, default 0.80, step 0.01.
Output is one VEC2. Defaults of 0.40/0.80 are a reasonable starting point for clean subject edges on Flux canny work.
Installing it
Ships in robertvoy/ComfyUI-Flux-Continuum:
cd ComfyUI/custom_nodes
git clone https://github.com/robertvoy/ComfyUI-Flux-Continuum
or ComfyUI Manager ("Flux Continuum"), restart. To actually produce edges you'll want ControlNet Auxiliary Preprocessors (or a canny preprocessor) and the FLUX Canny model / ControlNet Union Pro v2 file from the README's model list.
Where people get burned
The thresholds are normalized 0–1 here, but some preprocessors and external tools expect 0–255 integer thresholds. If you wire this into a node that reads thresholds as 0–255, a 0.4 will look like "off" - check what your preprocessor expects. Also, low and high thresholds are ordered; swapping them (low above high) produces garbage or silently inverted behavior. Keep high ≥ low and you're fine.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| Low_Threshold | FLOAT | 0.400.1–0.99 | — |
| High_Threshold | FLOAT | 0.800.1–0.99 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| VEC2 | VEC2 | — |