Every ControlNet preprocessor, ported to ComfyUI in one pack
The glue layer that turns lllyasviel's annotator code into plug-and-play ComfyUI nodes — and it's honest about being glue.

What it does This repo wraps the annotator code from lllyasviel’s original ControlNet repo as ComfyUI custom nodes, so you can generate ControlNet hint images — canny edges, depth maps, OpenPose stickmen, scribbles, segmentation masks — directly inside your ComfyUI workflow. Weights are pulled from the 🤗 Hub. It covers line extractors (Canny, HED, lineart, TEED, AnyLine), depth and normal estimators (MiDaS, Zoe, Depth Anything V2, Metric3D, DSINE), pose estimators including an animal variant, segmentation, recolor, and even an optical flow node for DragNUWA.
The interesting bit
The README is refreshingly blunt: the code is “copy-pasted” from the original annotator folders, with all credit to lllyasviel. It’s glue code, but glue that saves you from reimplementing a dozen model integrations — and the node tables map each preprocessor to the specific ControlNet/T2I-Adapter checkpoints it pairs with, which is genuinely useful reference material. There’s also an AIO Aux Preprocessor node that bundles everything except Inpaint into one dropdown, at the cost of not exposing per-preprocessor thresholds.
Key highlights
- Dozens of preprocessors spanning lines, depth, normals, poses, faces, segmentation, recolor, and optical flow
AIO Aux Preprocessornode for quick switching without rewiring the graph- OpenPose-format JSON is exposed via
app.nodeOutputsand the/historyAPI endpoint, so pose editors and API consumers can grab keypoints per frame - Compatibility tables cross-reference each node against sd-webui-controlnet equivalents and matching ControlNet checkpoints
- Includes newer additions like Depth Anything V2, TEED soft edges, and Metric3D
Caveats
- The
AIO Aux Preprocessorconvenience node can’t set a preprocessor’s own threshold parameters — you must drop in the dedicated node for that - It’s a wrapper, not original research; upstream bugs in the annotator code presumably ship along with it
- Animal pose JSON uses a “kinda similar” (their words) format to OpenPose JSON, not the standard one
Verdict If you run ControlNets in ComfyUI, this is close to mandatory infrastructure. If you don’t use ComfyUI or ControlNet, there’s nothing here for you.
Frequently asked
- What is Fannovel16/comfyui_controlnet_aux?
- The glue layer that turns lllyasviel's annotator code into plug-and-play ComfyUI nodes — and it's honest about being glue.
- Is comfyui_controlnet_aux open source?
- Yes — Fannovel16/comfyui_controlnet_aux is open source, released under the Apache-2.0 license.
- What language is comfyui_controlnet_aux written in?
- Fannovel16/comfyui_controlnet_aux is primarily written in Python.
- How popular is comfyui_controlnet_aux?
- Fannovel16/comfyui_controlnet_aux has 4.2k stars on GitHub and is currently holding steady.
- Where can I find comfyui_controlnet_aux?
- Fannovel16/comfyui_controlnet_aux is on GitHub at https://github.com/Fannovel16/comfyui_controlnet_aux.