Nodes/DIGIT Nodes/DIGIT Image Loader
ComfyUI Node

DIGIT Image Loader

Pull the latest rendered frame back into the graph

By thedepartmentofexternalservices·Created 7 months ago·Updated 2 months ago· 0
DIGIT Image Loader
    • image
    • filepath
    • frame
    ◄projekts_root▾►
    ◄project▾►
    ◄shot▾►
    ◄folder▾►
    ◄format▾►
    ◄frame_modelatest►
    ◄frame1001►
    ◄on_missingerror►
    ◄browse_path►
    ◄upload_image▾►
    ◄filepath—►
    ◄subfoldercomfy►
    ◄taskcomp►

    Most loaders make you pick a file. This one picks the latest frame from a VFX shot/task directory and loads it as an IMAGE tensor - which is the whole point of pairing it with the DIGIT Image Saver. Point the Saver and the Loader at the same shot and task, and your workflow becomes a loop: generate, save, reload the newest frame, iterate on it. You never type a filename, because there's nothing to type.

    The production use case is obvious: a compositor drops a new reference plate or a paint over into the shot folder, and your ComfyUI graph picks it up on the next run without anyone touching the canvas. The solo use case is nearly as good - it's a "load the latest render" node that saves you from digging through folders after every generation.

    How it works

    It scans the target directory and finds the highest-numbered frame (default frame_mode latest), loads it, and hands you the image plus its filepath and frame number. The load order is: browse_path (highest priority, must stay inside PROJEKTS) → uploaded image → a connected filepath → pipeline scan. So if you wire the Image Saver's filepath output in, it loads that exact file rather than scanning - handy when you want the file that was just saved, not the highest number.

    The inputs:

    • projekts_root, project, shot, folder - the path controls, same PROJEKTS convention as the Saver.
    • format - what to scan for: png, jpg, exr, tif, tiff, webp.
    • frame_mode - latest (highest frame number) or pinned (loads the exact frame value).
    • frame - used only when frame_mode is pinned. Default 1001.
    • on_missing - error (raises when nothing's there) or blank (returns a 1x1 black image so the graph doesn't hard-fail while the first frame is still cooking). blank is the friendlier choice for loop workflows.
    • browse_path / upload_image - manual escapes when you want something specific.
    • filepath - optional direct-path input, typically from a Saver node.

    Outputs: image (the tensor), filepath (full path), and frame (the loaded frame number). EXR loads are handled too - full 32-bit float, BGRA→RGBA conversion and alpha un-inversion automatic, so an EXR written by the Saver round-trips without you doing color math.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/thedepartmentofexternalservices/comfyui-digit.git
    cd comfyui-digit
    pip install -r requirements.txt
    

    (Or ComfyUI Manager → search comfyui-digit → install.) Restart ComfyUI, look under DIGIT.

    Common issues

    The node implements IS_CHANGED based on the source path and frame mode, which means it re-runs when the file situation changes - that's what makes "load the latest frame" actually work instead of caching a stale image. If it seems stuck on an old frame, the usual culprit is that the folder it's scanning has nothing newer; check the filepath output to see exactly what it resolved.

    The on_missing: error default will hard-fail a workflow that starts before the first frame exists. If you're building a loop that saves and reloads in one graph, flip it to blank first. And remember the project dropdown only shows #####_-prefixed folders - if your project folder isn't showing up, that's the naming pattern it's looking for.

    CategoryDIGIT

    Inputs (13)

    NameTypeDefaultDescription
    projekts_rootCOMBO1 options: /root/PROJEKTS
    projectCOMBO1 options:
    shotCOMBO1 options:
    folderCOMBO1 options: comfy/comp
    formatCOMBO6 options: png, jpg, exr, tif, tiff, webp
    frame_modeCOMBOlatestlatest loads the highest frame number; pinned loads the exact frame widget.
    frameINT10010–99999999—
    on_missingCOMBOerrorerror raises when no frame is found; blank returns a 1x1 black image.
    browse_pathoptSTRINGAbsolute path to an image file on the filesystem. Highest priority.
    upload_imageoptCOMBOUpload or select an image from ComfyUI's input folder.
    filepathoptSTRING—
    subfolderoptSTRINGcomfy—
    taskoptSTRINGcomp—

    Outputs (3)

    NameTypeDescription
    imageIMAGE—
    filepathSTRING—
    frameINT—