ImageFilterFindEdges
A canny-free edge map when you want the raw truth
- images
- IMAGE
You've got two reasons to want an edge map in ComfyUI: as a ControlNet conditioning image, and as a lookup/overlay for compositing. ImageFilterFindEdges handles the second beautifully and is a decent standby for the first. It converts the image to grayscale, detects every gradient, and paints the result as bright lines on a black background - a pure, unfiltered edge response with no hysteresis, no thresholds, no cleanup. If canny gives you "the edges I care about," this gives you "every edge that exists."
It's a one-in, one-out IMAGE node from the Allor Plugin pack, and it needs no parameters at all. Where it earns its keep: feeding an edge map into a ControlNet when you want maximal detail (canny will throw away weak edges; this keeps them), or as an underlay in a stylized composite where you want the sketchy, high-detail linework. Because nothing is suppressed, you'll see texture noise in flat areas - that's the feature, and it's why for clean lineart you'll usually still prefer a proper canny preprocessor.
How it works
Under the hood it's Pillow's ImageFilter.FIND_EDGES, a fixed convolution that estimates the local gradient magnitude per pixel and maps it to brightness. The output is a grayscale image: black where the image is flat, brighter where intensity changes fast. That's the whole mechanism - no kernel size, no threshold, no strength, which is exactly why it's so cheap to drop into a graph and see what you get.
Allor processes it through the PIL path (tensor → PIL → filter → tensor), and like the rest of the pack it handles batches and RGBA input without fussing about it.
Wiring it up
- images (IMAGE, required) - the only input.
- IMAGE (output) - the edge map.
For ControlNet use, note the output is a full IMAGE tensor, not a ControlNet-ready conditioning - you'd feed it into a ControlNet's image input and let the model's own preprocessing handle it, or pair it with a control loader. For pure looks, multiply it over a dark background for a technical-drawing vibe.
Installing it
It ships inside Allor, so one install covers every node in this pack. In ComfyUI Manager search "Allor Plugin", or:
cd ComfyUI/custom_nodes
git clone https://github.com/Nourepide/ComfyUI-Allor
then restart ComfyUI. The pack's installer runs requirements.txt, which pulls rembg, onnx and gitpython - a heavier footprint than a one-filter node deserves, but it's all-or-nothing with this pack. On first start a config.json appears in the pack folder; you can disable modules you don't need.
Gotchas
Two known pack-level wrinkles, both from the repo's history. The repository was rebased to strip images out of git history, and the default auto-updater (daily, soft git pull) can fail after that; set update_mode to hard or update_frequency to never in config.json if startup logs get noisy. And remember the difference between "FindEdges" and "find the edges you meant" - with no threshold to tune, noisy sources produce noisy maps. That's normal, and it's the reason canny preprocessors still exist.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |