[Inference.Core] Fake Scribble Lines (aka scribble_hed)
Scribble Conditioning From a Real Photo
- image
- IMAGE
The name is doing you a favor here - the node's own display name spells out exactly what it is: "Fake Scribble Lines (aka scribble_hed)." It's HED (Holistically-Nested Edge Detection) under the hood, the same softer, more forgiving edge detector that powers Softedge conditioning, then post-processed to look like a loose hand-drawn scribble rather than a literal edge map. "Fake" because a real scribble is something a person drew freehand; this one is algorithmically derived from a real photo but shaped to read the same way to a Scribble ControlNet.
This is the neurally-driven counterpart to the plain Scribble node elsewhere in this pack - that one is a bare-bones, no-parameters extraction; this one actually runs a small trained model and gives you a knob to tune its behavior. If you want fast and simple, use the plain Scribble node. If you want a result that more faithfully captures a photo's actual structure while still reading as scribble-style to the ControlNet, this is the better tool - the tradeoff being a small model download and a touch more compute.
What you set: image is required. safe (enum, default "enable") is the one parameter worth understanding - HED-family preprocessors have a known tendency to occasionally produce extreme, artifact-y activations in their edge output, and "safe" mode clips those outliers to keep the result clean. Leave it enabled unless you have a specific reason to want the raw, unclipped output - most people never touch this. resolution (default 512) is the standard preprocessing size across this pack. The single IMAGE output goes into a ControlNet Apply node, paired with a Scribble ControlNet checkpoint - the same model family the plain Scribble node targets, since both preprocessors are producing conditioning in the same visual style, just derived differently.
Because it's HED-based, this one does need a small downloaded model on first use, unlike the plain Scribble node - worth knowing if you're trying to keep this pack's footprint minimal and only need the lighter option.
Scribble conditioning generally has aged well compared to most of ControlNet's original condition types - it's one of the few that kept getting added to brand-new union models rather than being left behind on SD 1.5 and SDXL. Alibaba PAI's Z-Image union picked it up in a January 2026 update, and their Flux 2 union added it the following month, which means whatever you build with this preprocessor today has a decent shot at still being useful on whatever base ships next.
Installing it: this comes from LykosAI's ComfyUI-Inference-Core-Nodes pack - LykosAI also builds Stability Matrix, the meta-installer a lot of people use to manage local SD UIs, so this pack's install is more carefully handled than a typical solo repo. Search "ComfyUI-Inference-Core-Nodes" in ComfyUI Manager, or manually: cd ComfyUI/custom_nodes && git clone https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes, then run install.py against ComfyUI's Python environment, or pip install -e .[cuda] / .[cuda12] / .[rocm] / .[directml] / .[cpu] matched to your hardware for accelerated onnxruntime, or a plain pip install -e . without that. Restart ComfyUI once done.
Troubleshooting: the recurring pack-wide issue is ModuleNotFoundError: No module named 'inference_core_nodes', meaning the git clone succeeded but the Python package install step didn't - commonly from install.py running against the wrong interpreter on a portable ComfyUI build. If the edge output looks noisy or has stray artifacts, that's exactly what safe mode is there to prevent - confirm it's enabled before digging further. And if this node hangs or errors the very first time you run it, check whether the HED model weights actually finished downloading rather than assuming the node itself is broken.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| safeopt | COMBO | enable | 2 options: enable, disable |
| resolutionopt | INT | 51264–2048 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |