š NZå·„ä½ęµå©ęļ¼å ęµēļ¼
List, load, and save workflows to any folder, straight from the graph
- STRING
Want to save a workflow to an arbitrary folder, or peek at what's in a directory, without leaving the canvas? That's this node. NZ_Workflow_Manager is the graph-facing half of the NZ Workflow Assistant beta pack (K-O-N-B/ComfyUI-WorkflowManager-beta): it's a tiny file API with three actions, and it runs on the ComfyUI server, not in your browser. The same operations power the pack's sidebar UI, and this node hands you the same file access as a socket you can drop into a workflow.
How it works
Pick an action, point it at a path, and the node returns JSON as a single STRING output. Straight from the source, the three actions are:
list_directory- given a path, returns a JSON object withdirectoriesandfiles(only.jsonfiles), each with aMM/DD/YYmodified date, plus thepathyou asked about. Empty path defaults to the process's current working directory.load_workflow- reads a.jsonfile's contents and returns{"path": ..., "data": <the raw workflow text>, "type": "workflow_loaded"}. Only.jsonfiles are accepted; anything else is rejected.save_workflow- writesworkflow_datatopath. It appends.jsonif you left it off, creates parent directories for you, and validates thatworkflow_datais real JSON before writing. On success you get{"path": ..., "message": "å·„ä½ęµäæåęå", "type": "workflow_saved"}.
Failure isn't an exception that pops an error box - the node returns an error string in the output. So "directory doesn't exist" comes back as ē®å½äøååØ: <path>. Not a crash, just a string you have to read.
Inputs and outputs that matter
action- enum, defaults tolist_directory. This is the one you'll change every time.path- a plain string. Read the "where people get burned" section before you use it.workflow_data- multiline string, defaults to"{}". Only matters forsave_workflow; it must be valid JSON or the save fails.- Output
STRING- JSON, or a Chinese error message. It's a string, not a live workflow object, so you can't wire it straight back into the canvas to spawn a graph - you'd feed it to a parser/loader node or just use the sidebar UI.
Where people get burned
pathis an OS path, not a ComfyUI-relative path. It doesn't resolve against youruser/default/workflowsfolder. On Windows that'sD:\ComfyUI\user\default\workflows\thing.json; on Linux an absolute path. And there's zero sandboxing - the node can list, read, and write anywhere the ComfyUI process can reach. That's the feature and the risk: don't run this (or the whole pack, which exposes the same ops over HTTP/WebSocket) on an internet-exposed instance. ComfyUI's API is unauthenticated by default, and this hands it a file-writer.load_workflowonly reads.json- it checks the extension explicitly. A workflow with a different extension comes back as an error.save_workflowvalidates JSON - paste malformed text intoworkflow_dataand it refuses to write rather than saving a broken file. That's a nice touch, but it means your string has to round-trip as JSON first.- Errors are in Chinese.
ē®å½äøååØ(directory doesn't exist),ęä½å¤±č“„(operation failed). Fine once you know; confusing the first time an English-only setup hits it. - It's a beta. The README is one paragraph pointing at a Feishu/Notion page for the "full version" - the GitHub release is the preview, version 0.5.0 as of early 2026.
Installing it
ComfyUI Manager - search "NZ workflow manager - beta" - or clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/K-O-N-B/ComfyUI-WorkflowManager-beta
Restart ComfyUI. No model downloads; deps are light (psutil, py-cpuinfo, pynvml) on Python 3.10ā3.13. The node shows up under "NZ Workflow."
Honestly? For most people the pack's sidebar does this better than the node does. Reach for NZ_Workflow_Manager when you want it inside a workflow - a graph that periodically writes its own state to disk, a script that lists a folder and acts on the JSON. That's a niche, but when you need it, it's the only one doing it without a terminal.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| action | COMBO | list_directory | 3 options: list_directory, load_workflow, save_workflow |
| path | STRING | ā | |
| workflow_data | STRING | {} | ā |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | ā |