ComfyUI-ControlNet-Nodes
π€ ControlNet-aux-style preprocessor nodes for ComfyUI β Depth/Normal/Soft-Edge/Line/Pose map estimation, ported as real architecture code (not a thin wrapper) from Fannovel16/comfyui_controlnet_aux.
ComfyUI-ControlNet-Nodes
ControlNet-aux-style preprocessor nodes for ComfyUI: image in, structural/identity map image out, for control_image/reference_image inputs on any ControlNet-consuming pipeline, or wired anywhere else a photo needs turning into a depth/edge/normal/line/pose map.
Each node is a from-scratch port of one comfyui_controlnet_aux (Apache-2.0) preprocessor's actual architecture and inference code β not a wrapper around that pack, not a transformers.from_pretrained(...) call. This is 11 of that pack's ~15-20 total preprocessor families, picked for having a clean single architecture; the rest (DWPose, Metric3D, UniFormer, Mesh Graphormer, Diffusion Edge, Unimatch, and everything that's really a thin transformers wrapper upstream) are out of scope for this package.
[!IMPORTANT] Two of the eleven nodes β CCTech Soft Edge Preprocessor (PiDiNet) and CCTech OpenPose Preprocessor β carry license restrictions beyond the rest of this package (research-use / non-commercial). See License notes below before using either commercially.
Installation
To install the custom node normally, git clone this repository into your custom nodes folder (ComfyUI/custom_nodes) and install its dependencies:
git clone https://github.com/ChrisColeTech/ComfyUI-ControlNet-Nodes
To install on a standalone ComfyUI release, open a CMD inside the "ComfyUI_windows_portable" folder (where your run_nvidia_gpu.bat file is) and use the following commands:
git clone https://github.com/ChrisColeTech/ComfyUI-ControlNet-Nodes ComfyUI/custom_nodes/ComfyUI-ControlNet-Nodes
.\python_embeded\python.exe -s -m pip install -r .\ComfyUI\custom_nodes\ComfyUI-ControlNet-Nodes\requirements.txt
No weights are bundled with this package. Every node auto-downloads its own weights from HuggingFace on first use into the real ComfyUI install's models/<family>/ folder β nothing is ever vendored as a weight file in this repo.
Nodes
Under π€ CCTech/Preprocessors:
| Node | Detects | Architecture | Extra dependency |
|---|---|---|---|
| CCTech Depth Map Preprocessor (Depth Anything V2) | Depth | DINOv2 ViT + DPT decoder | β |
| CCTech Normal Map Preprocessor (BAE) | Surface normals | EfficientNet-B5 encoder + uncertainty-aware BN decoder | timm |
| CCTech Normal Map Preprocessor (DSINE) | Surface normals (camera-aware) | EfficientNet-B5 encoder + iterative refinement | timm |
| CCTech Soft Edge Preprocessor (HED) | Soft edges | Small VGG-like multi-scale CNN | β |
| CCTech Soft Edge Preprocessor (PiDiNet) | Soft edges | Pixel Difference Convolution CNN | β (see license note) |
| CCTech MLSD Lines Preprocessor | Straight line segments | MobileNetV2-based line-segment detector | β |
| CCTech Lineart Preprocessor | Realistic line drawing | ResNet encoder-decoder generator (fine/coarse checkpoints) | β |
| CCTech Lineart Anime Preprocessor | Anime-style line drawing | pix2pix-style U-Net generator | β |
| CCTech Manga Line Preprocessor | Manga-style clean line extraction | res_skip CNN | β |
| CCTech OpenPose Preprocessor | Body/hand/face keypoints, rendered as a skeleton | Three classic (pre-DWPose) multi-stage CNNs | β (see license note) |
| CCTech Canny Preprocessor | Edges | Plain cv2.Canny β no model, no download | β |
timm (pip install timm, already in requirements.txt) is needed only for the two Normal Map nodes, to build their EfficientNet-B5 backbone the same way the source pack does β everything else needs nothing beyond this repo's existing dependencies.
License notes
CCTech Soft Edge Preprocessor (PiDiNet): the original PiDiNet authors' LICENSE adds a research-use restriction beyond plain MIT: "It is just for research purpose, and commercial use should be contacted with authors first." This is quoted verbatim in vendor/pidinet.py's header and the node's own docstring β read it before using this specific node in a commercial context.
CCTech OpenPose Preprocessor: the underlying body/hand/face architecture and checkpoints trace back to Carnegie Mellon University's own OpenPose license β academic or non-profit organization, noncommercial research use only, quoted in full in vendor/openpose.py's header. Same situation as every other ComfyUI pack that ships this detector (including comfyui_controlnet_aux itself, under its own Apache-2.0 wrapper) β the wrapper code's license and the underlying architecture/weights' license are separate things. Read the actual restriction before using this node commercially.
Every other node in this package (the code and its weights) is under this package's own Apache-2.0 license (see LICENSE), matching the upstream comfyui_controlnet_aux source it was ported from.
tools/smoke_preprocessors.py covers every node's shape/dtype contract against a faked detector (no download in the offline suite) β 13/13, no GPU.
Credits
Ported from Fannovel16/comfyui_controlnet_aux (Apache-2.0). Originally built and verified inside ChrisColeTech/ComfyUI-GGUF-Loader (the CCTech Suite fork of city96/ComfyUI-GGUF) and extracted into this standalone package.