π IG Load Image
A Load Image node that takes its filename from a wire, not a file picker
- IMAGE
- MASK
IG Load Image looks like the boring version of ComfyUI's built-in Load Image - and it sort of is, until you notice the filename isn't a file-picker dropdown. It's a STRING input marked forceInput, which means you can feed it a path from another node. That tiny difference is the entire reason it exists in this pack: the Explorer wants to tell you the exact filename to load, and this is the node that can take that instruction from a wire instead of a human.
That makes it the natural pairing with IG Explorer's STRING output - the Explorer computes a filename for the next image it wants to look at, and IG Load Image loads it. It's also handy whenever your path is assembled programmatically, like from IG Path Join.
Behavior beyond that is genuinely good. It runs Image.open and iterates ImageSequence, so animated files (GIF, multi-frame) come out as a batch of frames rather than one frame. It applies EXIF transpose so phone photos aren't sideways, handles 16-bit I mode by scaling, converts to RGB float tensors in 0β1, and - like the folder loader - extracts any alpha channel into a real mask (1 - alpha, ComfyUI convention), falling back to a dummy zero mask when there's no alpha.
Inputs and outputs are minimal:
- image_path -
STRING, forceInput. Full path to the file. - Outputs: IMAGE (one or more frames) and MASK.
There's a subtle but useful detail in IS_CHANGED: it hashes the file contents, so when you edit or replace the file on disk, ComfyUI re-runs everything downstream even if the path string didn't change. If a workflow is silently serving you stale results, checking whether a node actually re-ran when its input file changed is a classic culprit - this one won't let you down there.
Install is the same pack routine - Manager β search "IG Interpolation Nodes" β Install, restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/IDGallagher/ComfyUI-IG-Nodes
cd ComfyUI-IG-Nodes && pip install -r requirements.txt
Nothing heavy here: no model downloads, no extra runtime beyond torch and Pillow. It's a utility node in a pack whose README is :), so when you need the exact contract, nodes/io.py is where the truth lives.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| image_path | STRING | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | β |
| MASK | MASK | β |