Load Image Path (FFMPEGA)
Your images, minus the six megabytes of tensor baggage each
- images
- mask
- image_path
- mask_points
- mask_overlay_path
- images
- mask
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 theimagesoutput. 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.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| image | COMBO | Select an image from ComfyUI's input directory or upload a new one. | |
| imagesopt | IMAGE | Optional upstream IMAGE input (e.g. from another node). Passed through as output. | |
| image_pathopt | STRING | Optional upstream image path. Overrides the file picker when connected. | |
| mask_pointsopt | STRING | Optional upstream mask_points pass-through. When connected, overrides the locally drawn mask points. | |
| maskopt | MASK | Optional upstream MASK pass-through. Forwarded as-is to the mask output. | |
| enable_resizeopt | BOOLEAN | false | Resize the output image (and mask) before returning. |
| resize_widthopt | INT | 5120–8192 | Target width. 0 = derive from aspect ratio. |
| resize_heightopt | INT | 5120–8192 | Target height. 0 = derive from aspect ratio. |
| upscale_methodopt | COMBO | nearest-exact | Interpolation method used when scaling. |
| keep_proportionopt | COMBO | resize | stretch: ignore aspect ratio. resize: fit inside w/h. pad: fit then pad to w/h. crop: crop to aspect then scale. |
| pad_coloropt | STRING | 0, 0, 0 | Padding color as 'R, G, B' (0-255). Used by pad mode. |
| crop_positionopt | COMBO | center | Anchor for crop/pad placement. |
| divisible_byopt | INT | 20–512 | Round final dimensions down to a multiple of this (0/1 = off). |
| resize_deviceopt | COMBO | cpu | Compute device for resizing. GPU does not support lanczos. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| image_path | STRING | Absolute file path to the selected image. Connect to FFMPEGA Agent's image_path_a / image_path_b / … inputs. |
| mask_points | STRING | JSON-encoded point selection data from the Point Selector. Connect to FFMPEGA Agent's mask_points input for guided masking. |
| mask_overlay_path | STRING | Path to a mask overlay preview image. Empty string when no mask is generated. |
| images | IMAGE | Upstream IMAGE pass-through (or empty tensor if not connected). |
| mask | MASK | SAM3 segmentation mask from Point Selector clicks. Connect to any node accepting MASK input for compositing. Empty mask when no points are set. |