Multi Image Loader
Load Image (Multi 5) does five at once
- multi_output
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_8
- image_9
- image_10
- image_11
- image_12
- image_13
- image_14
- image_15
- image_16
- image_17
- image_18
- image_19
- image_20
- image_21
- image_22
- image_23
- image_24
- image_25
- image_26
- image_27
- image_28
- image_29
- image_30
- image_31
- image_32
- image_33
- image_34
- image_35
- image_36
- image_37
- image_38
- image_39
- image_40
- image_41
- image_42
- image_43
- image_44
- image_45
- image_46
- image_47
- image_48
- image_49
- image_50
If you've ever built an img2img, ControlNet, or IPAdapter workflow that needs more than one reference image, you know the ritual: drag in four separate Load Image nodes, position them so the wires don't cross, then squint at which dropdown belongs to which socket. Load Image (Multi 5) exists to end that. It's one node with five independent image slots - each one a file picker plus a URL box - and five separate IMAGE outputs.
It ships in comfyui-image_psss by heyzne, a small utility pack whose README is in Chinese and whose whole selling point is "the black-image fix version." The pack name is odd and the author is obscure, but the code is honest: no models to download, no API keys, and its only dependencies (torch, numpy, Pillow) are already installed with every ComfyUI. This is the kind of node you add to save five minutes of wiring, and then forget is there.
What's on the node
Five slots. In each one, image_1 through image_5 is a dropdown listing everything in your input folder (default (none), plus an upload button), and right beneath it url_1 through url_5 is a text box for an https:// link, a Base64 data URI, or a bare filename. Fill both and the URL wins - the code checks url if url else fname. Leave a slot empty and you get a 64×64 black image out of it, which is deliberate, ComfyUI's "nothing here" convention, not a bug.
The outputs are image_1–image_5, each a separate IMAGE tensor ([1, H, W, 3], floats 0–1) - not one batched blob. Wire each one to wherever it's needed. If a downstream node wants a single batch, stack them with a batch/join image node first.
The one setting that matters is on_error, defaulting to the recommended "报错提示" mode - i.e. fail loudly. Leave it there. When a URL dies, the node turns red and tells you exactly why (HTTP 404, expired link, hotlink block). Switch it to the other option if you'd rather the run keep going and drop a magenta placeholder tile instead - deliberately distinguishable from the black empty-slot sentinel.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/heyzne/comfyui-image_psss.git
Then restart ComfyUI. Or use ComfyUI Manager and search "comfyui-image_psss". No model files, nothing else to configure. The pack also handles ComfyUI's newer Nodes 2.0 renderer while staying compatible with older versions, so it shouldn't break when you update.
Where people get burned
- Silent black output from a URL. That's the bug v2.1 exists to fix - old versions swallowed load failures and printed a black image, sending you down a phantom NaN or VAE rabbit hole (genuine black-output causes, from the KB:
--disable-nan-check, xformers regressions, pre-Turing GPUs). If a URL gives you black,git pullinside the pack folder and the error becomes visible. - Expired temp-host links. Ephemeral image hosts 404 eventually; the node now says so instead of pretending.
- 403 hotlink protection. The fetch sends a browser User-Agent but no referer, so some CDNs still refuse. Paste a direct image URL or save the file to
inputfirst. - Transparency. RGBA images are composited onto white, not kept as alpha - fine for conditioning, wrong for alpha-channel work.
Under the hood it's nicer than it has to be: EXIF rotation is applied automatically (phone photos stop landing sideways), 16-bit grayscale PNGs no longer blow out to all-black or all-white, and an IS_CHANGED hash means ComfyUI re-runs the node when you edit any slot instead of serving a stale cached result. If you're feeding multiple references into ControlNet, IPAdapter, or a face-swap workflow, this is the one to reach for.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| image_paths | STRING | — | |
| width | INT | 00–8192 | — |
| height | INT | 00–8192 | — |
| interpolation | COMBO | 6 options: lanczos, nearest, bilinear, bicubic, area, nearest-exact | |
| resize_method | COMBO | 5 options: keep proportion, stretch, pad, pad green, crop | |
| multiple_of | INT | 320–512 | — |
| img_compression | INT | 180–100 | — |
Outputs (51)
| Name | Type | Description |
|---|---|---|
| multi_output | IMAGE | — |
| image_1 | IMAGE | — |
| image_2 | IMAGE | — |
| image_3 | IMAGE | — |
| image_4 | IMAGE | — |
| image_5 | IMAGE | — |
| image_6 | IMAGE | — |
| image_7 | IMAGE | — |
| image_8 | IMAGE | — |
| image_9 | IMAGE | — |
| image_10 | IMAGE | — |
| image_11 | IMAGE | — |
| image_12 | IMAGE | — |
| image_13 | IMAGE | — |
| image_14 | IMAGE | — |
| image_15 | IMAGE | — |
| image_16 | IMAGE | — |
| image_17 | IMAGE | — |
| image_18 | IMAGE | — |
| image_19 | IMAGE | — |
| image_20 | IMAGE | — |
| image_21 | IMAGE | — |
| image_22 | IMAGE | — |
| image_23 | IMAGE | — |
| image_24 | IMAGE | — |
| image_25 | IMAGE | — |
| image_26 | IMAGE | — |
| image_27 | IMAGE | — |
| image_28 | IMAGE | — |
| image_29 | IMAGE | — |
| image_30 | IMAGE | — |
| image_31 | IMAGE | — |
| image_32 | IMAGE | — |
| image_33 | IMAGE | — |
| image_34 | IMAGE | — |
| image_35 | IMAGE | — |
| image_36 | IMAGE | — |
| image_37 | IMAGE | — |
| image_38 | IMAGE | — |
| image_39 | IMAGE | — |
| image_40 | IMAGE | — |
| image_41 | IMAGE | — |
| image_42 | IMAGE | — |
| image_43 | IMAGE | — |
| image_44 | IMAGE | — |
| image_45 | IMAGE | — |
| image_46 | IMAGE | — |
| image_47 | IMAGE | — |
| image_48 | IMAGE | — |
| image_49 | IMAGE | — |
| image_50 | IMAGE | — |