☁️BizyAir PiDiNet Soft-Edge Lines
The other softedge preprocessor
- image
- IMAGE
If Canny is the strict edge detector - hard lines, configurable thresholds, "is this an edge or not" - PiDiNet is its more forgiving cousin. It's a softedge extractor, in the same family as HED: instead of committing to a binary edge/no-edge decision, it produces gradient edges with varying thickness, which reads as noticeably more natural on organic subjects. Where Canny gives a mechanical object crisp, clean contours, softedge extractors give a face or a plant edges with some give in them - closer to how a pencil sketch actually looks than to a technical drawing.
Why you'd reach for this one specifically
Canny is the right call when you want tight structural control and don't mind that it looks a little rigid. Softedge is the right call when you want the ControlNet to guide composition without fighting the model's own sense of how organic surfaces should render - portraits, landscapes, anything with skin, fur, or fabric benefits from the softer conditioning. PiDiNet is one specific implementation of that idea; if you've used HED before, this occupies the same role in your workflow, just a different network under the hood.
The inputs and outputs that matter
image- required, your source photo or render.safe(optional,enable/disable, default enabled) - this is the setting most people skip past without understanding. Softedge detectors like PiDiNet can pick up a lot of high-frequency noise and fine texture detail that isn't really "edges" so much as sensor grain or compression artifacts. Safe mode suppresses that noise so the resulting map generalizes better, rather than forcing the model to reproduce every speck of texture from your specific source image. Leave it on unless you have a reason to want that extra detail preserved.resolution(optional, default 512, range 64–1024, step 64) - the working resolution for edge extraction. As with any preprocessor here, match it roughly to your target generation size; too low and fine lines get lost, too high mostly just costs time.
Output: a single IMAGE, the edge map, ready for a ControlNet Apply node paired with a softedge/HED-family ControlNet model.
Installing it
Through ComfyUI Manager: search BizyAir, click Install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/siliconflow/BizyAir.git
Restart, then set your BizyAir API key before running anything - this node executes remotely and quietly does nothing without it.
Where people get burned
The most common complaint with softedge preprocessors generally, PiDiNet included, is that the output looks "too busy" or "too faint" and people reach for the wrong knob to fix it - usually the ControlNet strength, when the actual fix is safe mode or resolution. If your edge map is noisy and full of texture you didn't want conditioned on, make sure safe is enabled before you start turning down ControlNet weight to compensate; weakening the ControlNet just makes the model ignore the noise and the useful structure together.
The other trap is assuming softedge and Canny are interchangeable because they're both "edges." They're tuned for different jobs - swapping in PiDiNet where a workflow expects Canny's crisp mechanical lines (say, architecture or product shots) usually softens the result more than you want. Match the preprocessor family to the subject, not just to whatever's already wired into a template you copied.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| safeopt | COMBO | enable | 2 options: enable, disable |
| resolutionopt | INT | 51264–1024 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |