DIGIT Uber Saver
One saver for images and videos, aimed at a real VFX folder structure
- media
- filepath
ComfyUI's default saver dumps PNGs into output/ and calls it a day. That's fine for hobby work and hopeless the moment you're saving shots, frames, and comps that a post pipeline has to find. DIGIT Uber Saver is the pack's answer: one saver that handles images or videos and writes them into a proper VFX folder convention - PROJEKTS/project/shots/shot/subfolder/task/NAME.FRAME.EXT - with auto-incrementing frame numbers, EXR support, and workflow metadata saved alongside.
It's the "one node to rule them all" of the DIGIT saver family: it internally dispatches to the pack's Image Saver or Video Saver depending on what you connect, so you don't have to know which one you need.
The inputs that matter
media- accepts anIMAGE, aVIDEO, orVIDEO_PATHS. This single socket is the whole trick: connect a Veo video or a batch of paths and it saves as MP4; connect a batch of images and it writes sequential frames.project/shot/folder- dropdowns that scan your PROJEKTS root. Project folders must follow the#####_namepattern (five-digit prefix) to show up. You can type a new shot/folder name and create it with the + buttons.name- the filename without frame/extension. Leave empty and it defaults toPREFIX_SHOT_FOLDER.format- png, jpg, or exr.tonemap(sRGB/linear/Reinhard) only matters for EXR.start_frame(1001 default, VFX-style) andframe_pad(how many digits:0001vs00000001).save_workflow- writes a*_ui.jsonsidecar so you can trace any saved file back to the prompt and model settings that made it.ui,api,ui + api, ornone.
Output: filepath - the path of the saved file (and the node shows the next available frame before you save).
How it works
Configure DIGIT_PROJEKTS_ROOTS as a colon-separated list of paths, or let it auto-detect common mounts and fall back to ~/PROJEKTS:
export DIGIT_PROJEKTS_ROOTS="/mnt/storage/PROJEKTS:/Volumes/shared/PROJEKTS"
Then it's destination-first: pick the project, shot, folder, name, and the node computes the next frame number by scanning what's already there, writes the file, and advances. Videos always save as MP4. If a shot or project is still at its (no shots found) placeholder, it raises instead of silently creating a junk folder - a deliberate guard, and the same one the Image Saver uses.
Gotchas
Install is the pack: ComfyUI Manager, search comfyui-digit, restart. EXR needs the opencv-python dependency the pack installs. The frame numbering is scan-based, so it's sequential per directory, not global. And the folder structure is the opinionated part - if you're not working in a #####_project/shots/... layout, you're fighting the node instead of using it. But for anyone in a studio or serious pipeline, having renders land in the right place, at the right frame, with workflow provenance, is exactly what the built-in saver was never going to give you.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| media | IMAGE,VIDEO,VIDEO_PATHS | — | |
| projekts_root | COMBO | 1 options: /root/PROJEKTS | |
| project | COMBO | 1 options: | |
| shot | COMBO | 1 options: | |
| folder | COMBO | 1 options: comfy/comp | |
| name | STRING | What to name the file. Leave empty for PREFIX_SHOT_FOLDER. Frame number and extension are added. | |
| format | COMBO | 3 options: png, jpg, exr | |
| tonemap | COMBO | 3 options: sRGB, linear, Reinhard | |
| quality | INT | 1001–100 | — |
| start_frame | INT | 10010–99999999 | — |
| frame_pad | INT | 41–8 | — |
| show_preview | BOOLEAN | true | — |
| save_workflow | COMBO | 4 options: ui, api, ui + api, none |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| filepath | STRING | — |