Skip to content

ComfyUI node to load file paths from folders by extension for batch processing workflows.

License

Notifications You must be signed in to change notification settings

RockyHong/ComfyUI-FilePathsFromFolder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ComfyUI-FilePathsFromFolder

Load file paths from a folder by extension (*.png, *.mp4, *.txt, etc.), then feed them into any ComfyUI node that accepts a path (image/video/audio/anything-from-path).

This repo is mainly for easy batch processing:

  • Use it with your favorite loop/for/while node pack (pick items by index), or
  • Use this repo’s simple loop node (File Paths For Loop Start) to have ComfyUI run downstream nodes once per file (list batching).

Installation

Recommended: Git clone

  1. Clone into ComfyUI/custom_nodes
cd path/to/ComfyUI/custom_nodes
git clone https://github.com/RockyHong/ComfyUI-FilePathsFromFolder.git
  1. Restart ComfyUI
  2. Search nodes by name: Load File Paths From Folder, Get File Path By Index, File Paths For Loop Start, File Paths For Loop Sync

Alternative: Manual install (ZIP)

  1. Download ZIP from GitHub
  2. Extract
  3. Copy folder ComfyUI-FilePathsFromFolder into ComfyUI/custom_nodes/
  4. Restart ComfyUI

Integrate with external for/loop nodes (index-based)

Use this when you already have an external loop/for/while node pack and you want to drive it with “files in a folder” (by extension).

Nodes used

  • LoadFilePathsFromFolder: scan folder → get filepaths / filenames / count
  • GetPathByIndex: choose one item → get filepath / filename (UI: Get File Path By Index)

Example workflow (external loop pack)

Option A — External Loop Method

  1. LoadFilePathsFromFolder (set folder path + extension)
  2. count → your loop node “iterations” / “max” (names vary by pack)
  3. Loop indexGetPathByIndex.index
  4. LoadFilePathsFromFolder.filepaths + .filenamesGetPathByIndex
  5. GetPathByIndex.filepath → your loader node (Load Image / Load Video / etc.)
  6. Do your processing + save/export inside your external loop pack

Built-in simple for-loop node (list batching)

Use this when you want the simplest setup: File Paths For Loop Start returns lists, and ComfyUI runs downstream nodes once per file via list batching.

Nodes used

  • File Paths For Loop Start: generates the per-file list outputs (current_filepath, current_index, etc.)
  • File Paths For Loop End: loop terminator / completion signal

Example workflow (internal loop: once per file)

Option B — Internal Loop Node Method

  1. File Paths For Loop Start (set folder path + extension)
  2. current_filepath → your loader node (e.g. Load Image)
  3. Your processing nodes
  4. (Optional) outputs you want to guarantee run (e.g. save/write/export nodes) → FilePathsEnsureExecution.passthrough_1passthrough_5
  5. current_indexFile Paths For Loop End.current_index
  6. (Optional) FilePathsEnsureExecution.passthroughFile Paths For Loop End.passthrough (this “anchors” the route so it executes)

Memory note

File Paths For Loop Start uses ComfyUI list batching (OUTPUT_IS_LIST): ComfyUI may run the workflow one node at a time for all files, rather than finishing file 0 completely before starting file 1.

  • What you'll see: it may run like "load all → process all → save all", not "load → process → save" per file.
  • When this is good: if you want to run many files with the same model/settings, batching can help keep the model "warm" and avoid offload/reload each file.
  • Why memory can climb: more intermediate results may stay in RAM/VRAM until later nodes run.
  • Solution for mid-batch cleanup: Use File Paths For Loop Sync Trigger + File Paths For Loop Sync Resume to run cleanup once between batch stages (see Batch Synchronization below).
  • Need true one-file-at-a-time? Use an external loop/for/while node pack that runs each file start→finish before moving on.

(Optional) Ensure execution for save/write/export routes

Some ComfyUI workflows can “skip” routes that don’t affect the final output the graph thinks it needs. If you have save/write/export nodes that you must run, use File Paths For Loop Ensure Execution as an anchor.

File Paths For Loop Ensure Execution

  • Connect the nodes you want to guarantee run into passthrough_1passthrough_5
  • Connect passthrough output to File Paths For Loop End.passthrough

Batch synchronization (run once between stages)

Use this when you need to run something exactly once between two batched stages (e.g. LLM batch → clear VRAM once → T2I batch), without switching to an external per-file loop.

File Paths For Loop Sync

  • File Paths For Loop Sync Trigger: put this right after a batched output. It provides:
    • anything: the original batch (passes through unchanged)
    • trigger: a single (non-batched) value you can feed into any “run once” node
  • File Paths For Loop Sync Resume: a simple wait point. It:
    • Takes the batch on anything (from Trigger)
    • Takes a completion signal on wait_for (from your one-time node)
    • Outputs the same batch so downstream nodes continue as a batch

How to wire it (in words): connect your batched data into Sync Trigger → connect Sync Trigger.anything into Sync Resume.anything → connect Sync Trigger.trigger into your one-time node → connect that one-time node’s output into Sync Resume.wait_for → continue the workflow from Sync Resume.anything.

What you can run once: clear RAM/VRAM, save/checkpoint, switch models, send notifications, write logs, etc.

License

MIT — see LICENSE.

About

ComfyUI node to load file paths from folders by extension for batch processing workflows.

Topics

Resources

License

Stars

Watchers

Forks

Languages