Dependency Checker
Find out what's missing before the error wall
- report
- ready
Loading someone else's workflow has one dominant failure mode, and it's the thing that makes ComfyUI feel like a maintenance job: you press Run, and you get a wall of missing nodes and missing models, five at a time, in whatever order the graph happens to execute. You fix one, run again, get the next.
Dependency Checker exists to flatten that. It's one node you drop at the top, run once, and read a plain report.
What it checks
Four toggles, all on by default, and each one gates a category of inspection:
- check_models - looks for the three specific files this pack's environment targets: the FLUX.2 Klein Base 9B FP8 diffusion model, the Qwen text encoder, and the FLUX.2 VAE. It checks exactly those filenames inside ComfyUI's registered
diffusion_models,text_encodersandvaefolders. - check_huggingface_hub - is the
huggingface_hubpackage importable in the Python environment running ComfyUI? - check_insightface - same question for
insightface, the optional face-analysis library. - check_telegram_suite - is a
comfyui-telegram-suitestyle custom-node folder present in yourcustom_nodesdirectory? It matches case-insensitively and tolerates hyphen/underscore spelling differences.
None of that is generic. This is not a pack-aware dependency resolver that reads your workflows and figures out what every node needs. It's an inventory check against a fixed list - the known models and the known optional packages that this pack's features depend on. Set your expectations there and it's genuinely useful.
Outputs
- report (STRING) - either
READY ✅, orMISSING ❌followed by a bulleted list of what it couldn't find. - ready (BOOLEAN) -
trueonly when the report starts with READY.
The boolean is the useful half. Wire it into a save node, a preview, or a branch and you have a run that refuses to start on a machine that isn't provisioned, instead of a run that dies halfway through a 40-step sample.
Why this is worth a node
The ComfyUI ecosystem's structural problem, as the community notes constantly, is that installing nodes is easy and matching environments is not. Manager clones a repo and runs pip install; it cannot prevent dependency conflicts and it cannot know that the workflow you downloaded was authored against a slightly different set of library versions. The most-upvoted version of this complaint is literally a post called "Feels like I am downloading models and installing missing nodes 90% of the time."
A node that answers "is this box set up for the workflow I'm about to run?" in one line is the cheapest possible defence against that. It's the pre-flight check.
Install
Manager → search Orel's Nodes → Install → restart → hard-refresh.
cd ComfyUI/custom_nodes
git clone https://github.com/DarkOrel/Orels-Nodes.git orels-nodes
python -m pip install -r orels-nodes/requirements.txt
Restart, hard-refresh. Note that the checker reports on huggingface_hub and insightface; it never installs them. That's deliberate - the node description says so explicitly, and it's the right call. A node that silently pip-installs things during a graph run is how you get numpy downgraded out from under you mid-session.
Gotchas
A MISSING insightface is often fine. The face nodes need it; nothing else in the pack does. If you don't use face similarity, turn the toggle off and stop chasing it. The insightface install is also the classic ComfyUI pain point - prebuilt wheels for your Python version plus onnxruntime, and a well-documented tendency to drag numpy backwards and break other packs. Don't install it casually just to make a report go green.
The model check is narrow. It looks up three exact basenames from a hardcoded list. If you're running the distilled FLUX.2 Klein instead of the base FP8 - which is what most people actually generate with - the model check will report missing even though your setup is fine.
The Telegram check is a folder-name heuristic. It confirms a directory exists, not that it works or is the version you need.
READY is not a guarantee. It means the things on this list are present. It says nothing about whether your other 30 custom packs have compatible dependencies.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| check_models | BOOLEAN | true | — |
| check_huggingface_hub | BOOLEAN | true | — |
| check_insightface | BOOLEAN | true | — |
| check_telegram_suite | BOOLEAN | true | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| report | STRING | — |
| ready | BOOLEAN | — |