ImageLoadByPath(ImageIOHelpers)
Load an image from anywhere on disk, not just ComfyUI's input folder
- IMAGE
- MASK
Core ComfyUI's Load Image is a lovely little file browser, and that's exactly the problem: it only ever looks inside ComfyUI/input/. The moment your image lives anywhere else - another program's output folder, a shared drive, a pipeline you didn't build inside ComfyUI - you're stuck dragging files around by hand. ImageLoadByPath(ImageIOHelpers) is the escape hatch: you give it a path as a string, and it loads that file, wherever it is.
This is the one node in the pack you'll actually reach for. It takes a single input, file_path (a plain text STRING), and returns two outputs - IMAGE and MASK - the same pair core Load Image hands you. The MASK is pulled from the image's alpha channel, same convention as the built-in node, so if your PNG has no transparency you can ignore it entirely.
The IMAGE output wires straight into anything that takes an image: VAE Encode for img2img, a reference/control setup, ImageCompositeMasked, whatever. That's the whole deal - no model, no special handling, just a file path swapped for a folder picker.
Why this matters
ComfyUI's folder-locked I/O is one of the friction points that makes people grumble about the ecosystem (see the whole "why does nothing just work" genre of thread). Workflows that touch other tools - game texture pipelines, LLM apps that generate images to disk, anything where another program owns a directory - constantly need to read from places ComfyUI pretends don't exist. This node is the bridge. It's also handy in headless/API runs where you can pass a path into the workflow instead of pre-loading an image into the UI.
How to install it
Same as every node in this pack:
cd ComfyUI/custom_nodes
git clone https://github.com/Ryuukeisyou/comfyui_image_io_helpers
Restart ComfyUI and the node shows up under ImageIOHelpers. Or use ComfyUI Manager - search "comfyui_image_io_helpers" and hit install. There are no model files and no heavy dependencies; the schemas are plain strings, ints, images and masks, so this is Pillow-and-numpy territory that ComfyUI already ships. One honest caveat: the GitHub repo has been 404ing when fetched directly, and the pack has zero community footprint, so if Manager can't find it either, that's why - install it while the repo is reachable and keep the files.
The gotcha that burns everyone: the path
Relative paths resolve from the ComfyUI server's working directory - wherever you launched the process - not from your home folder and definitely not from input/. Give it an absolute path and stop thinking about it:
/home/you/Pictures/reference.png
C:\Users\you\Pictures\reference.png
Two things that get people: on Windows, forward slashes (C:/Users/you/...) work fine and dodge the backslash-escaping mess that JSON strings make of \\. And include the full filename with extension - this is a raw path, not a folder browser. If the node errors or returns nothing, the first suspect is a path that doesn't resolve from where the server runs.
When to reach for the sibling instead
If your goal is a mask rather than a full image, ImageLoadAsMaskByPath in the same pack does that directly and even lets you pick which channel becomes the mask. LoadByPath is the general-purpose one; keep the other for mask work.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| file_path | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |
| MASK | MASK | — |