Nodes/ComfyUI-FFmpeg/🔥ImageCopy
ComfyUI Node

🔥ImageCopy

Stage a pile of image paths into one folder, fast

By MoonHugo·Created 2 years ago·Updated 4 months ago· 146
🔥ImageCopy
  • image_paths
  • image_paths
  • image_length
  • output_path
output_pathC:/Users/Desktop/output

ImageCopy takes a list of image paths and copies them all into a target directory. That's it - no processing, no format conversion, just file staging. It's the most unglamorous node in the pack and also the one that quietly saves you from the classic ComfyUI mess of "my frames are scattered across three folders." Its real job is pipeline hygiene: gather frames from wherever they live into one clean folder where Frames2Video (or anything else) can consume them in order.

How it works

The node copies each image with a multithreaded pool (ThreadPoolExecutor), so a few hundred frames copy in a blink. Two details worth knowing: it skips files that already exist in the destination - so re-running is idempotent and won't clobber your staged folder - and it returns the new paths in the original order, so your downstream sort order is preserved.

The inputs that matter

  • image_paths - a list of paths, marked * (any-type input) in the schema. It's meant to be fed by LoadImageFromDir's image_paths output. This is a list input, so you can't just type one path into it.
  • output_path - the destination directory. Unlike some pack nodes, this one creates the directory if it doesn't exist, which is a nice break from the "you must pre-create it" convention everywhere else.

Outputs

  • image_paths - the copied paths (a LIST), in the original order.
  • image_length - how many images got copied.
  • output_path - the destination, echoed back.

Chain image_paths into ImagePath2Tensor to start actually processing them.

Install

Pack-wide: ComfyUI Manager → search "ComfyUI-FFmpeg", or:

cd ComfyUI/custom_nodes
git clone https://github.com/MoonHugo/ComfyUI-FFmpeg
cd ComfyUI-FFmpeg
pip install -r requirements.txt

Restart ComfyUI. (FFmpeg on PATH is the real dependency across this pack.)

Gotchas

  • Because existing files are skipped, a stale file in the destination will silently survive a re-run. If you changed a frame upstream and the copy "does nothing," that's the skip-existing behavior - clear the folder if you need a fresh copy.
  • image_length counts what was copied this run, not what's in the folder total. Don't use it as a "did everything land?" check across runs.
  • Duplicate filenames from different source folders will collide - last one copied wins, since it copies to the same destination name. Worth knowing if you're staging frames that happen to share names.
Category🔥FFmpeg/auxiliary tool

Inputs (2)

NameTypeDefaultDescription
image_paths*
output_pathSTRINGC:/Users/Desktop/output

Outputs (3)

NameTypeDescription
image_pathsLIST
image_lengthINT
output_pathSTRING