Nodes/ComfyUI-FFMPEGA/Load Image Path (FFMPEGA)
ComfyUI Node

Load Image Path (FFMPEGA)

Your images, minus the six megabytes of tensor baggage each

By AEmotionStudio·Created 8 months ago·Updated 2 days ago· 16
Load Image Path (FFMPEGA)
  • images
  • mask
  • image_path
  • mask_points
  • mask_overlay_path
  • images
  • mask
image
image_path
mask_points
enable_resizefalse
resize_width512
resize_height512
upscale_methodnearest-exact
keep_proportionresize
pad_color0, 0, 0
crop_positioncenter
divisible_by2
resize_devicecpu

Six megabytes per image doesn't sound like anything until you're stacking thirty of them into a grid, a slideshow, or a watermark pass. Every standard Load Image node decodes its file into a full IMAGE tensor in GPU memory, and the bloat multiplies fast. Load Image Path (FFMPEGA) sidesteps the whole problem with a dumb-simple trick: it gives you the file path as a string and lets ffmpeg read the file directly when the work happens. Zero decoding, ~0 MB, any number of images.

That makes it a featherweight companion to the pack's heavier nodes. The pack README frames it as the no-brainer for FFMPEG Agent workflows, and it is: pick an image with the image file picker, and the output is image_path, which you wire into the Agent's image_path_a / image_path_b slots for overlay, grid, and slideshow skills. One node per image, or chain them - the Agent auto-expands the slots.

The inputs that matter

Honestly, there's basically one: image, the picker (select from ComfyUI's input directory or upload). The rest are plumbing for chainers:

  • image_path - an upstream path string that, when connected, overrides the file picker. Handy when you're passing an image path from another node rather than picking fresh.
  • images - an upstream IMAGE tensor, passed straight through to the images output. It's how you keep a tensor-based workflow happy while also handing the Agent a path.
  • mask_points - pass-through from the point selector, forwarded for SAM3 guidance.

Outputs mirror that: image_path (the one you actually want), images (the pass-through), and mask_points.

Installing it

It's part of ComfyUI-FFMPEGA, so you get it with the pack: ComfyUI Manager → search ComfyUI-FFMPEGA → Install, or manually:

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

Restart ComfyUI, and make sure ffmpeg is on your PATH - the pack leans on a system ffmpeg for everything that actually touches media.

Where people get burned

Same class of mistake as its video sibling: it outputs a path, so it only feeds nodes that accept paths. Don't try to plug image_path into an image-input slot - that's what the images pass-through output is for. And the zero-memory pitch cuts both ways: because nothing is loaded, there's no validation error if the file goes missing between picking and running - the failure shows up later as a no-op or a failed ffmpeg run. Keep the source file where you picked it from, and this node is the quietly efficient workhorse of the pack.

CategoryFFMPEGA

Inputs (14)

NameTypeDefaultDescription
imageCOMBOSelect an image from ComfyUI's input directory or upload a new one.
imagesoptIMAGEOptional upstream IMAGE input (e.g. from another node). Passed through as output.
image_pathoptSTRINGOptional upstream image path. Overrides the file picker when connected.
mask_pointsoptSTRINGOptional upstream mask_points pass-through. When connected, overrides the locally drawn mask points.
maskoptMASKOptional upstream MASK pass-through. Forwarded as-is to the mask output.
enable_resizeoptBOOLEANfalseResize the output image (and mask) before returning.
resize_widthoptINT5120–8192Target width. 0 = derive from aspect ratio.
resize_heightoptINT5120–8192Target height. 0 = derive from aspect ratio.
upscale_methodoptCOMBOnearest-exactInterpolation method used when scaling.
keep_proportionoptCOMBOresizestretch: ignore aspect ratio. resize: fit inside w/h. pad: fit then pad to w/h. crop: crop to aspect then scale.
pad_coloroptSTRING0, 0, 0Padding color as 'R, G, B' (0-255). Used by pad mode.
crop_positionoptCOMBOcenterAnchor for crop/pad placement.
divisible_byoptINT20–512Round final dimensions down to a multiple of this (0/1 = off).
resize_deviceoptCOMBOcpuCompute device for resizing. GPU does not support lanczos.

Outputs (5)

NameTypeDescription
image_pathSTRINGAbsolute file path to the selected image. Connect to FFMPEGA Agent's image_path_a / image_path_b / … inputs.
mask_pointsSTRINGJSON-encoded point selection data from the Point Selector. Connect to FFMPEGA Agent's mask_points input for guided masking.
mask_overlay_pathSTRINGPath to a mask overlay preview image. Empty string when no mask is generated.
imagesIMAGEUpstream IMAGE pass-through (or empty tensor if not connected).
maskMASKSAM3 segmentation mask from Point Selector clicks. Connect to any node accepting MASK input for compositing. Empty mask when no points are set.