Nodes/Allor Plugin/ImageFilterFindEdges
ComfyUI Node

ImageFilterFindEdges

A canny-free edge map when you want the raw truth

By Nourepide·Created 3 years ago·Updated 2 years ago· 296
ImageFilterFindEdges
  • 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.

Categoryimage/filter

Inputs (1)

NameTypeDefaultDescription
imagesIMAGE

Outputs (1)

NameTypeDescription
IMAGEIMAGE