Fake Scribble Lines (aka scribble_hed)
Turn a photo into a rough scribble for control_scribble
- image
- IMAGE
"Fake" scribble because there's no human doing the scribbling. This node takes a real photo and reduces it to loose, rough, sketch-like lines - the kind of thing you'd draw if you were doodling the scene by hand - and hands that to a scribble ControlNet. It's the bridge between "I have a reference image" and "I want the loose, creative-freedom feel of scribble conditioning" without actually picking up a pen. Under the hood it's also known as scribble_hed, which tells you exactly how it works.
How it works
It runs HED edge detection, then simplifies and thins the result into scribble-style strokes. HED gives soft, forgiving edges; the extra step turns those into the sparse, rough lines a scribble ControlNet expects. The reason you'd want scribble over a precise edge map is control style: scribble is the most creative-friendly conditioning in the ControlNet toolbox - it sets the broad layout and lets the model fill in the details rather than tracing every contour. Fake Scribble gets you that loose guidance starting from a photo instead of a doodle.
The inputs and output
Two inputs matter:
image- your source photo.resolution(default 512) - processing size; match it to your render.
Plus the toggle shared across the softedge-derived nodes:
safe(defaultenable) - safe mode, quantizing edge intensities so the ControlNet doesn't over-interpret faint gradients into stray lines. Leave it on for normal use.
The single output is an IMAGE - the fake-scribble map - which wires into a ControlNet Apply node with a scribble ControlNet (control_v11p_sd15_scribble or control_scribble). Nothing happens until that model is loaded.
Installing it
ComfyUI Manager: search ComfyUI's ControlNet Auxiliary Preprocessors, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/Fannovel16/comfyui_controlnet_aux
pip install -r requirements.txt
Restart ComfyUI. Because it's HED-based, it downloads the ControlNetHED.pth weight from HuggingFace on first run.
Where people get burned
First, know your scribble family - this pack has several, and they're not interchangeable in feel. Fake Scribble (HED-based) tends to give soft, organic strokes. ScribblePreprocessor is the plainer, blockier base version. Scribble_XDoG_Preprocessor is a fast algorithmic filter with a threshold knob. Scribble_PiDiNet_Preprocessor is the PiDiNet-based cousin with cleaner lines. They all target the same scribble ControlNet, so try a couple and keep whichever roughness suits your image. Fake Scribble is a solid default when your source is a photo.
Second, and this is the one worth internalizing: scribble's real superpower is that you can skip the preprocessor entirely and feed the ControlNet your own rough drawing. Fake Scribble is for when you're starting from an existing image; if you've already got a sketch, wire it straight into the scribble ControlNet and you're done.
Third, the universal one: the scribble map is inert until you load a scribble ControlNet and pass it through a ControlNet Apply node. And don't cross the wires - a scribble map into a Canny or lineart model won't behave, because those expect a different kind of line.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| safeopt | COMBO | enable | 2 options: enable, disable |
| resolutionopt | INT | 51264–16384 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |