Advanced Load Image
A Load Image That Reads Your Folders (No More Copying References In)
- image
- mask
Stock ComfyUI's Load Image reads one file, from your input/ folder, and that's it. If you work with lots of reference images - faces for inpainting, pose shots for ControlNet, style guides for IPAdapter - you end up with a wall of Load Image nodes and a growing pile of files you had to drag into input/ yourself. This node, Advanced Load Image, is the fix for exactly that grind. It's a drop-in replacement for the core loader that keeps the standard IMAGE + MASK outputs but adds two things ComfyUI doesn't give you by default: a managed library of images you can search, favorite, and switch with a click, and a real folder browser that reads from disk without copying a single file into input/.
One naming note before you go hunting for it, because this trips everyone: the repo is ComfyUI-imageRead, it installs as reference-image-manager, the node is displayed as Advanced Load Image, and its internal class is still Reference Image Manager. All four names are the same thing. Old workflows that referenced the legacy ID keep loading, which is why the pack retains it.
How it works
The node has two source modes, toggled in the widget UI: library and folder.
Library mode is your personal reference stash. Images you add get referenced (and, when needed, copied into input/) like any normal ComfyUI image, and the whole list - plus your search text, favorites, and current selection - is serialized into the node's widget strings. That's the clever bit and it's why state survives reloading, switching workflows, and duplicating the node: your selection literally lives in the workflow JSON, not in some external file. Duplicate the node and you get a second, independent copy of the same library.
Folder mode is the genuinely useful one. You point it at any local directory (a native folder picker on Windows/macOS, zenity/kdialog on Linux) and it lists filenames 48 at a time via a small server endpoint, with the directory index cached for two minutes. Only the thumbnails currently on screen get decoded, at most three at a time, and the full-resolution file isn't read until the workflow actually executes. So a 10,000-image folder on a network drive won't hang ComfyUI when you browse it - the node tracks file mtime and size and only re-reads what changed. When you do want a folder image in your library, Add to Library copies just that one file into input/; nothing else moves.
The inputs and outputs that matter
You won't hand-type most of these - the widget UI manages them. But the ones worth knowing:
- source_mode -
libraryorfolder. This is the switch that decides where the image comes from. - folder_path / folder_image - which directory you're browsing and the current pick inside it.
- managed_images and folder_state - the JSON blobs that carry your library and your mask-editor edits. Don't touch them directly; just know they're why your selections stick around.
Outputs are the standard pair: image (IMAGE) and mask (MASK), wired straight into anything that eats a tensor - VAE encode, ControlNet, IPAdapter, inpainting, img2img. Alpha channels come out as ComfyUI's inverted mask convention, and the node integrates with the native Mask Editor so you can paint a mask and it rides along in folder_state.
Installing it
The easy way: ComfyUI Manager → search reference-image-manager → install → restart. Manual way:
cd ComfyUI/custom_nodes
git clone https://github.com/yurishk/ComfyUI-imageRead
# restart ComfyUI
Then find it under image/loaders -> Advanced Load Image, or just search "Advanced Load Image" / "Load Image". Good news on dependencies: it's numpy + Pillow, both of which ComfyUI already ships. No model downloads, no torch extras, nothing to fetch. This one is genuinely plug-and-play.
Where people get burned
The Linux folder picker needs zenity or kdialog installed - otherwise it errors and you have to type the path manually (that's a feature, not a bug; the node is fine with a typed path). Folder mode refuses to resolve an image outside the selected folder, so if you click a file that lives elsewhere it'll throw a "The image is outside the selected folder" error - add that folder to the browser instead. And remember the four-name thing from the top: you're searching for Advanced Load Image in the UI, not "imageRead." Once you've used it for a week, going back to a plain Load Image feels like stepping backward a decade.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| image | STRING | — | |
| managed_images | STRING | [] | — |
| source_mode | STRING | library | — |
| folder_path | STRING | — | |
| folder_image | STRING | — | |
| folder_state | STRING | {} | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| mask | MASK | — |