Project Manager
Version your graph like a shot, not a screenshot
Project Manager saves the workflow you're looking at - the actual graph - into a .rad container with an artist name and a version number baked in. It's the pipeline answer to a problem everyone has met: the workflow is a first-class deliverable and you're keeping it in a folder called final_v3_ACTUALLYFINAL.json.
This is where the pack stops being about pixels and starts being about the way a studio works. ComfyUI's own metadata convention (a graph riding inside the PNG) is genuinely elegant, as image-io-metadata.md argues at length - the image is the project file. But it has one obvious limitation for production: the deliverable is a picture, and pictures get re-encoded. Re-encoding strips the graph. A .rad is the graph as a file in its own right, with a name, an author and a version, which is the shape a version-control system wants.
What it does when you hit run
Not much you can see, which throws people. There are no outputs - it's an output node that writes to disk and returns nothing to the graph. The three inputs are all optional: filename (the workflow filename stem; a placeholder in the UI suggests shot_001), artist (saved into the metadata), and version (1–9999, default 1).
The mechanics, from the source: it takes the executed prompt graph, derives a technical profile from it (models, colour spaces, fps, whether the graph looks HDR, node count), and packs the graph plus that metadata into the v3 .rad container - a ZIP with a workflow.json inside, not a bare JSON file. Before writing it creates a version backup, so bumping version keeps history rather than clobbering. The stem ends up as filename_artist_v0001-style, which means the artist and version fields aren't decoration: they're in the filename. Leave artist empty and you get unknown in your shot naming, forever, in every file.
The two things that will confuse you
Where it saves. The path is resolved against Radiance's own workflow directory and the name is sanitised - a filename that tries to escape that directory is rejected outright and the node silently returns nothing. So you won't find your file in ComfyUI/output/ next to your render: .rad files live in Radiance's workflow storage area, which is also where the pack's pipeline/browser tooling looks for them. Absolute paths in filename won't work, on purpose.
It does nothing if there's no prompt. The save path starts with a guard on the executed graph and returns early if it's empty. That's correct behaviour - there's nothing to save outside a run - but it reads as "the node is broken" when you're testing.
Install
Ships with Radiance. ComfyUI Manager → search Radiance → install → restart → refresh. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/fxtd-studios/radiance.git
cd radiance
python -m pip install -r requirements.txt
No models, no GPU work, no downloads. Pure Python over a ZIP container with a size cap (50 MB uncompressed, 256 entries) so a runaway graph with embedded assets can't turn your disk into a landmine.
Should you use it?
If you're a solo artist iterating on images, probably not - the PNG-embedded graph already does the job and it travels with the picture. If you're versioning shot work across people, absolutely: an artist name plus an auto-suffixed version plus a container that's safe to hand around is exactly what "which version did we deliver" needs. Pair it with Read/Write for the pixels and you've got a delivery convention instead of a folder of hope.
Also note the naming: an older node called RadianceWorkspace still loads as a deprecated alias of this one, so if you open an old graph and see that, it's the same class wearing a previous name.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| filenameopt | STRING | Workflow filename stem (version appended automatically). | |
| artistopt | STRING | Artist name saved in workflow metadata. | |
| versionopt | INT | 11–9999 | Version number for the saved workflow. |
Outputs (0)
No outputs