Nodes/DIGIT Nodes/DIGIT Uber Saver
ComfyUI Node

DIGIT Uber Saver

One saver for images and videos, aimed at a real VFX folder structure

By thedepartmentofexternalservices·Created 6 months ago·Updated 26 days ago· 0
DIGIT Uber Saver
  • media
  • filepath
projekts_root
project
shot
folder
name
format
tonemap
quality100
start_frame1001
frame_pad4
show_previewtrue
save_workflow

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 an IMAGE, a VIDEO, or VIDEO_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 #####_name pattern (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 to PREFIX_SHOT_FOLDER.
  • format - png, jpg, or exr. tonemap (sRGB/linear/Reinhard) only matters for EXR.
  • start_frame (1001 default, VFX-style) and frame_pad (how many digits: 0001 vs 00000001).
  • save_workflow - writes a *_ui.json sidecar so you can trace any saved file back to the prompt and model settings that made it. ui, api, ui + api, or none.

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.

CategoryDIGIT

Inputs (13)

NameTypeDefaultDescription
mediaIMAGE,VIDEO,VIDEO_PATHS
projekts_rootCOMBO1 options: /root/PROJEKTS
projectCOMBO1 options:
shotCOMBO1 options:
folderCOMBO1 options: comfy/comp
nameSTRINGWhat to name the file. Leave empty for PREFIX_SHOT_FOLDER. Frame number and extension are added.
formatCOMBO3 options: png, jpg, exr
tonemapCOMBO3 options: sRGB, linear, Reinhard
qualityINT1001–100
start_frameINT10010–99999999
frame_padINT41–8
show_previewBOOLEANtrue
save_workflowCOMBO4 options: ui, api, ui + api, none

Outputs (1)

NameTypeDescription
filepathSTRING