Nodes/ComfyUI-N-Nodes/LoadFramesFromFolder [πŸ…-πŸ…’πŸ…€πŸ…˜πŸ…£πŸ…”]
ComfyUI Node Runs on cloud

LoadFramesFromFolder [πŸ…-πŸ…’πŸ…€πŸ…˜πŸ…£πŸ…”]

The version with all seven outputs the README promises

By Nuked88Β·Created 3 years agoΒ·Updated 2 years agoΒ· 237
LoadFramesFromFolder [πŸ…-πŸ…’πŸ…€πŸ…˜πŸ…£πŸ…”]
    • IMAGES
    • METADATA
    • MAX WIDTH
    • MAX HEIGHT
    • FRAME COUNT
    • PATH
    • IMAGE LIST
    β—„folderβ–Ί
    β—„fps30β–Ί

    If you've extracted frames from a video, processed them outside ComfyUI, or just want to skip re-decoding a source clip on every run, this is the node that reloads a folder of numbered PNGs as a ready-to-use batch. Point folder at a directory and it reads every image in filename order - the naming convention matters, and the README is specific about it: files need to be .png, named with a number, 1.png or zero-padded 0001.png both work.

    Worth knowing if you've bounced between pages on this site: there's also a plain LoadFramesFromFolder, from before the pack's February 2024 class-name rewrite, still catalogued. That older registration only actually returns two outputs (IMAGES and METADATA) despite the README describing seven. This [n-suite]-suffixed one is the current, fully-wired version - its schema matches the README's output list exactly. If you need the frame count, dimensions, or path back out of this node rather than just the image batch, this is the one to reach for.

    How it works

    It's a directory scan: every PNG in folder gets decoded, converted to a tensor, and stacked into a batch in filename order. fps doesn't touch the pixels at all - a folder of static images has no inherent frame rate, so you're telling the node what to treat them as, and that number rides forward inside the METADATA output for anything downstream (FrameInterpolator, the pack's SaveVideo) that needs to know what frame rate it's reconstructing.

    This is the "extract once, iterate many times" node: pull frames out with LoadVideo [n-suite], save them to disk once, then reload that exact frame set here on every subsequent run instead of paying the video-decode cost again.

    The outputs that matter

    Seven of them, matching the README: IMAGES (the loaded batch - wire this into your sampler or interpolator), METADATA (the fps-tagged object the rest of the video nodes expect), MAX WIDTH / MAX HEIGHT (dimensions across the loaded set), FRAME COUNT, PATH (the folder you pointed it at), and IMAGE LIST - a plain newline-separated string of filenames, not an actual ComfyUI list type, so treat it as something to display or log rather than something to iterate over with another node.

    Realistically, IMAGES and METADATA are what most graphs actually consume; the rest is bookkeeping that's handy for debugging or building filenames downstream.

    Installing the pack

    • ComfyUI Manager - search "ComfyUI-N-Nodes," install, restart.
    • Manual - cd ComfyUI/custom_nodes && git clone https://github.com/Nuked88/ComfyUI-N-Nodes.git, then restart ComfyUI.

    Plain file I/O, no models, no GPU work, nothing extra to compile - this doesn't touch the GPT/LLM side of the pack at all.

    Common issues & troubleshooting

    Nothing loads, or frames come out in the wrong order. Check your filenames first. Non-numeric names, or mixed naming schemes in the same folder, will confuse the sort or get skipped. Zero-pad once you're past nine frames (0001.png, not 1.png) - plain string sorting on unpadded numbers puts 10.png before 2.png.

    Large folders are slow, or you hit an out-of-memory error. There's no resize or batch-size control on this node the way LoadVideo [n-suite] has - every PNG gets decoded at full resolution before anything else happens. This is the same failure mode people have reported on this pack's other video-loading nodes when handed a large, unbounded frame set with no size control: memory allocation errors on the CPU side, not a GPU/VRAM issue. If you're working with a folder of high-res frames, downscale on disk first, or extract at a smaller size in the first place if you generated the frames via LoadVideo [n-suite].

    You expected the extra outputs and only got two. That means you've got the plain LoadFramesFromFolder on your graph instead - see above. Swap in this [n-suite] version if you need the width/height/count/path/list fields.

    CategoryN-Suite/Video

    Inputs (2)

    NameTypeDefaultDescription
    folderSTRINGβ€”
    fpsINT30β€”

    Outputs (7)

    NameTypeDescription
    IMAGESIMAGEβ€”
    METADATASTRINGβ€”
    MAX WIDTHINTβ€”
    MAX HEIGHTINTβ€”
    FRAME COUNTINTβ€”
    PATHSTRINGβ€”
    IMAGE LISTSTRINGβ€”