CtrlNet CannyEdge Pipe (JPS)
Unpack your Canny ControlNet settings
- cannyedge_settings
- cannyedge_source
- cannyedge_strength
- cannyedge_start
- cannyedge_end
- cannyedge_low
- cannyedge_high
Pairs with CtrlNet CannyEdge Settings (JPS). That node bundles six Canny-related values (source selector, strength, step window, and the two edge-detection thresholds) into one wire; this one splits the bundle back into individual outputs, placed wherever downstream you actually need them. It's the same organizational trick as every "Settings + Pipe" pair in this pack: build the control panel once, then drop the plumbing wherever the graph needs it, instead of dragging six wires the whole way across.
What comes out of it
One input - cannyedge_settings, a BASIC_PIPE (JPS's own bundle type, a plain tuple, unrelated to Impact Pack's object of the same type name despite sharing the label). Six outputs:
cannyedge_source(INT) - which reference image to run Canny on. It leaves this node as a plain integer rather than the "Source Image / Support Image / Support Direct" text it started as, which matches exactly what theselectinput on the pack's Image Switch expects - the obvious wiring is straight from here into that switch.cannyedge_strength(FLOAT) - plugs into your ControlNet Apply node's strength widget.cannyedge_start/cannyedge_end(FLOAT) - the step-window percentages, for the start/end inputs on Apply ControlNet (Advanced).cannyedge_low/cannyedge_high(INT) - the Canny algorithm's hysteresis thresholds, feed straight into whichever Canny preprocessor node is doing the actual edge detection.
This node runs no detection and applies no ControlNet itself - it's pure routing between your settings menu and the nodes that do the actual work (a Canny preprocessor upstream to build the edge map, an Apply ControlNet node downstream to condition generation on it).
Installing it
Ships with the pack. ComfyUI Manager: search JPS Custom Nodes for ComfyUI, install, restart. Manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/JPS-GER/ComfyUI_JPS-Nodes.git
Restart afterward. If a previous version of the pack is already in custom_nodes, delete it first - installing over it is the one thing the README explicitly warns against. No model files, no extra Python dependencies; this is a routing node.
Where people get tripped up
The most common mistake is skipping the Settings node entirely and expecting this one to do something on its own - it has one input and it's a bundle, so without a CtrlNet CannyEdge Settings (JPS) node feeding it, there's nothing to unpack. The second is forgetting that the cannyedge_low/cannyedge_high outputs only matter if you actually wire them into a Canny preprocessor's threshold inputs - this pipe hands you the numbers, it doesn't run the edge detector. And since this node is newer than the pack's published README, don't expect to find it listed there; the README documents an earlier snapshot of the node set.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| cannyedge_settings | BASIC_PIPE | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| cannyedge_source | INT | — |
| cannyedge_strength | FLOAT | — |
| cannyedge_start | FLOAT | — |
| cannyedge_end | FLOAT | — |
| cannyedge_low | INT | — |
| cannyedge_high | INT | — |