Nodes/WhatDreamsCost-ComfyUI/Multi Image Loader
ComfyUI Node

Multi Image Loader

Load Image (Multi 5) does five at once

By WhatDreamsCost·Created 7 months ago·Updated 2 months ago· 2,072
Multi Image Loader
    • 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
    ◄image_paths►
    ◄width0►
    ◄height0►
    ◄interpolation▾►
    ◄resize_method▾►
    ◄multiple_of32►
    ◄img_compression18►

    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 pull inside 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 input first.
    • 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.

    CategoryWhatDreamsCost

    Inputs (7)

    NameTypeDefaultDescription
    image_pathsSTRING—
    widthINT00–8192—
    heightINT00–8192—
    interpolationCOMBO6 options: lanczos, nearest, bilinear, bicubic, area, nearest-exact
    resize_methodCOMBO5 options: keep proportion, stretch, pad, pad green, crop
    multiple_ofINT320–512—
    img_compressionINT180–100—

    Outputs (51)

    NameTypeDescription
    multi_outputIMAGE—
    image_1IMAGE—
    image_2IMAGE—
    image_3IMAGE—
    image_4IMAGE—
    image_5IMAGE—
    image_6IMAGE—
    image_7IMAGE—
    image_8IMAGE—
    image_9IMAGE—
    image_10IMAGE—
    image_11IMAGE—
    image_12IMAGE—
    image_13IMAGE—
    image_14IMAGE—
    image_15IMAGE—
    image_16IMAGE—
    image_17IMAGE—
    image_18IMAGE—
    image_19IMAGE—
    image_20IMAGE—
    image_21IMAGE—
    image_22IMAGE—
    image_23IMAGE—
    image_24IMAGE—
    image_25IMAGE—
    image_26IMAGE—
    image_27IMAGE—
    image_28IMAGE—
    image_29IMAGE—
    image_30IMAGE—
    image_31IMAGE—
    image_32IMAGE—
    image_33IMAGE—
    image_34IMAGE—
    image_35IMAGE—
    image_36IMAGE—
    image_37IMAGE—
    image_38IMAGE—
    image_39IMAGE—
    image_40IMAGE—
    image_41IMAGE—
    image_42IMAGE—
    image_43IMAGE—
    image_44IMAGE—
    image_45IMAGE—
    image_46IMAGE—
    image_47IMAGE—
    image_48IMAGE—
    image_49IMAGE—
    image_50IMAGE—