Needle Engine Status
The node that tells you why the engine won't load
- status
- ok
Every node pack should have one of these, and almost none do. Needle Engine Status is a diagnostic: it takes no inputs, runs a live probe of the Cactus Needle engine, and reports whether the engine can actually load on this machine. It's an output node, so it shows its text on the canvas, and it forces a re-probe on every run (IS_CHANGED returns NaN, the always-rerun idiom) so what you're looking at is the current state, not a stale snapshot from ComfyUI's cache.
Why does this need to exist? Because the pack's failure modes are environmental, not logical. The engine is a 14 MB binary that ComfyUI's Python has to load through ctypes - and on Windows, that load can be refused by Smart App Control because the DLL is unsigned. That failure shows up as a bare OSError: [WinError 4551] with no hint about why unless something translates it. This node does the translation: it imports cactus-needle, builds a tiny "ping" tool, and reports the result in plain text - including the engine version and a translated reason when loading fails. That's the difference between "my node doesn't work" and "Smart App Control is blocking libneedle.dll."
Outputs
- status (STRING) - the human-readable verdict. Starts with
okwhen the engine loads, and on failure carries the cactus-needle version plus the translated error. - ok (BOOLEAN) - true iff the status starts with
ok. Wire this into logic if you want a workflow to branch on engine availability.
That's it. Two outputs, no inputs, nothing to configure.
When you'll actually reach for it
First run of any Needle node failing with an opaque ctypes error is the textbook moment - drop this node in, run, and read what it says. The two problems it surfaces most:
- Smart App Control / WDAC on Windows. The unsigned
libneedle.dllgets refused with[WinError 4551]. You can confirm withGet-MpComputerStatus | Select-Object SmartAppControlState, and the only fix is turning Smart App Control off in Windows Security → App & browser control - which the README warns is irreversible. It cannot be re-enabled without reinstalling Windows. Read that sentence twice before you flip it. - The folder-name collision. If your clone directory is named
needle, it collides with the engine's own Python package and every node fails with a clear error telling you to rename it to something safe likeComfyui_Needle2. The status node surfaces the same import failure in one readable string.
Install
Same as the whole pack - ComfyUI Manager (search ComfyUI Needle 2) or git clone https://github.com/DenRakEiw/Comfyui_Needle2 into custom_nodes/ plus pip install cactus-needle. Note that the probe itself constructs a real engine instance, so it needs the engine to be installed and downloadable - but if the engine is genuinely unavailable, the node doesn't crash, it just tells you so. That's the whole point.
Inputs (0)
No inputs
Outputs (2)
| Name | Type | Description |
|---|---|---|
| status | STRING | — |
| ok | BOOLEAN | — |