Custom Node Manager (Creepybits)
A Lint Check for Your Node Collection
- node_info
Don't confuse this with ComfyUI Manager - the thing that installs packs. Custom Node Manager is a diagnostic tool from Creepybits that inspects a folder of Python files and reports which ones are valid custom nodes and what libraries they import. It's the "lint pass" you run when a node pack won't load and you're not sure why. It won't fix your problems, but it will tell you exactly which file is broken and what dependencies it wants.
The three inputs
scan_mode- a dropdown with two modes:- Validate Python: checks each
.pyfile for theNODE_CLASS_MAPPINGSdict, the one thing ComfyUI requires for a file to register as a node. Valid files get "is valid!", broken ones get a clear message. - Check Libraries: parses each file's source and lists every import - an instant "what does this need installed?" answer, and a fast way to draft a
requirements.txt.
- Validate Python: checks each
directory- the folder to scan. Leave it blank and it scans its own pack'sassets/nodes/folder.scan- the run switch (defaults to true).
Output is a single node_info string: a JSON report of filename → result for every .py file in the target directory.
When it earns its keep
The single most common ComfyUI failure is a ModuleNotFoundError from a node that imports a library you don't have - the ecosystem's dependency-hell problem made personal. This node is built for exactly that moment: point it at the offending pack's folder, run it in "Check Libraries" mode, and you get the list of imports to compare against what's actually installed. It's the fastest way I know to answer "which requirement is this missing?"
The "Validate Python" mode is more of a developer's tool - it catches files that simply aren't registering as nodes, which is usually a missing NODE_CLASS_MAPPINGS. If you write your own nodes, it's a decent smoke test before you restart ComfyUI for the tenth time.
One thing to know before you scan
Reading the source: in "Validate Python" mode the node executes each module it scans (spec.loader.exec_module(module)) so it can check for the mappings attribute. That's fine for your own code, but it means scanning a folder of untrusted or half-broken nodes runs their import-time code - the same attack surface the ecosystem keeps warning about. Scan your own packs and known-good repositories, not random downloads. And when a file has a syntax error, the node catches it and reports the traceback rather than dying - which is exactly what you want from a diagnostic.
Installing it
It's part of the Creepybits pack, installed all at once:
cd ComfyUI/custom_nodes
git clone https://github.com/Creepybits/ComfyUI-Creepy_nodes.git
Restart ComfyUI, or grab "Creepy" via ComfyUI Manager. No model downloads, nothing extra to configure. Keep in mind it's a scanner - it reads and reports, it doesn't install or uninstall anything. For that, you still want ComfyUI Manager.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| scan_mode | COMBO | 2 options: Validate Python, Check Libraries | |
| directory | STRING | — | |
| scan | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| node_info | STRING | — |