Project Source
The Traffic Cop Every JSON Project Workflow Starts With
- sequence_number
- file_name
- project_path
ProjectSource is the node that anchors every workflow in the Comfyui-JSON-Manager pack. It doesn't load a prompt or a seed - it holds the connection settings: which manager, which project, which file, which sequence. Every other project node in the pack chains off it, and that's the entire point. Change it once, and everything downstream follows.
Why you'd reach for it
If you're managing AI video jobs (I2V, VACE) as JSON config files in the author's NiceGUI dashboard, you want one place that defines "where am I working." That's ProjectSource. It's the config node, and it's deliberately boring - the kind of node that looks useless until you realize it saves you from re-entering the same project path in five different nodes.
How it works
Under the hood it's a thin client to the manager's REST API. The inputs hold the connection details, and the outputs expose them plus a couple of derived values:
sequence_number(INT) - the sequence you set, passed straight through.file_name(STRING) - the JSON file's name, passed straight through.project_path(STRING) - the manager's stored folder path for the project, with a trailing slash appended, so you can build file paths downstream.
Two nice touches in the code. First, if you leave project_name blank, the node asks the manager for its active project (/api/active-project) and fills itself in - the frontend even does this automatically on node creation. Second, when project_name is set, it looks up the project's folder_path from /api/projects/{name} so project_path is resolved for you rather than typed by hand. It's marked as an output node (is_output_node: true), so it shows up in the queue and you can see what it resolved to.
The label input (default "source") matters more than it looks: it's what the other project nodes use to identify which source they're synced to. Give sources meaningful labels when you have more than one in a graph.
The inputs that matter
manager_url- where the NiceGUI manager lives. Defaulthttp://localhost:8080.project_name,file_name- what you're reading. The frontend turns these into dropdowns populated from the manager.sequence_number- which sequence inside the file (1–9999).label- used by ProjectKey / ProjectResolution nodes to find and sync from this source.
How to install
ProjectSource ships in Comfyui-JSON-Manager, installed the usual way:
cd ComfyUI/custom_nodes/
git clone https://github.com/ethanfel/Comfyui-JSON-Manager ComfyUI-JSON-Manager
Restart ComfyUI, or install via ComfyUI Manager by searching "ComfyUI JSON Manager". No model downloads; the node side is pure Python standard library plus the aiohttp that ships with ComfyUI. Note the pack is really two pieces - these nodes plus the separate NiceGUI web dashboard (which needs nicegui, graphviz, and requests and is often run in Docker). Without the manager running, ProjectSource has nothing to talk to.
Common issues
The one that bites everyone: manager_url has to be reachable from both your browser and the ComfyUI process. The frontend calls the manager directly to auto-fill the project and file dropdowns, while the Python side fetches project_path from the server. localhost:8080 works when ComfyUI and the manager share a machine, but if the manager runs in Docker with port mapping, localhost from the browser may differ from localhost inside ComfyUI's environment - and project_path comes back empty. Use a LAN IP if you hit it.
If the manager is down or unreachable, you don't get a hard error here - you get an empty project_path string, and whatever node tries to read files from it fails further down the graph. When a whole project workflow mysteriously dies, check ProjectSource first: it's upstream of everything.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| manager_url | STRING | http://localhost:8080 | — |
| project_name | STRING | — | |
| file_name | STRING | — | |
| sequence_number | INT | 11–9999 | — |
| label | STRING | source | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| sequence_number | INT | — |
| file_name | STRING | — |
| project_path | STRING | — |