π Directory
The node whose entire job is to be a path you can wire
- Path
It looks pointless until you see the rest of the pack
A node with one field and one output, both of which are a directory path. Six months into using ComfyUI you will have placed this node a hundred times and never once thought about it, which is the highest praise a plumbing node can get.
Here's why it exists. The file-system nodes in honda-nodes take paths as socket inputs - several of them are marked socket-only in the schema, so the path must arrive from another node's output. Something has to originate that string. π Directory is that origin: you type the absolute path once, in a node that does nothing else, and fan it out to π List Files, π Create Directory, π Delete Directory, π File Hash and the rest. Change it in one place, every consumer follows.
That's the same logic behind ComfyUI's core primitive nodes - the value-node pattern where a literal becomes a wireable source so it's defined once instead of retyped in five widgets. This pack just applies it to paths, with a category of its own.
How it works
The execute function is return (path or "").strip(). That's it. It does not check that the directory exists, does not create it, does not expand ~, and does not resolve ... It's a string with a label.
Knowing that saves you debugging time. An empty field produces an empty string, which flows into π List Files as "list nothing" and into π Delete Directory as "delete nothing" - both silent. A near-miss path produces an empty file list and zero errors. If the node said "path doesn't exist" this would all be easier, but it doesn't, and the design is defensible: a directory node that validated at graph-build time would break workflows that legitimately point at folders created earlier in the same run.
Inputs and output
Path is a plain STRING - type it, or wire it in from π Path Join / π Path Normalize if you're building it from parts. Absolute paths are what the tooltip asks for, and it's the right ask: relative paths resolve against ComfyUI's process working directory, which differs between the portable Windows build, a Linux service, and Docker.
One output: Path (STRING). Downstream it's interchangeable with any other string - which means it can also go somewhere unexpected, like a prompt or a JSON field, if you mis-wire it. Harmless, but a good reason to keep the string-handling and path-handling branches of a workflow visually separated.
When it's worth the node
Always, if a path is used more than once. Change one field, all consumers follow - that's the whole game, and it's why the pack ships it rather than telling you to use a generic text node.
There's a second, smaller benefit: visibility. A path typed inside π List Files is buried in that node's widget, three scrolls away from whatever is complaining. A path in a π Directory node at the top of the graph, connected by a visible wire, is the kind of thing you can find at 1am. The ComfyUI community's endless reroute-and-organise discourse exists because of exactly this; the pack's contribution is a node shaped like a variable.
Install
Manager: Extensions β Node Pack β search "Honda Nodes" β Install β restart. Or:
cd ComfyUI/custom_nodes
git clone --depth 1 https://github.com/Avaray/honda-nodes.git
cd honda-nodes
python install.py # ComfyUI's python; portable Windows: ..\..\..\python_embeded\python.exe install.py
This node needs nothing installed; run the installer anyway for jq and ime if you're using the JSON or metadata nodes. The pack requires ComfyUI 0.38.0+ - it's authored entirely against the V3 schema, with no legacy registration to fall back on.
Common issues
Empty file lists. Path typo, or a relative path that resolved somewhere else. Wire Path into π οΈ Print to Console and compare the printed string against what you see in your file manager, character by character. Windows users: D:\outputs and D:/outputs both work, "D:\outputs" with quotes does not.
Path with a trailing slash behaves oddly downstream. Some consumers join paths themselves; a trailing separator usually survives, but strip it anyway. The pack's π Path Normalize exists for this.
Nothing executes. The Directory node itself is trivially cheap, but anything it feeds still has to reach an output node to run at all.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| path | STRING | Absolute path to a directory. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| Path | STRING | β |