Nodes/WhatDreamsCost-ComfyUI/Multi Image Loader
ComfyUI Node

Multi Image Loader

Load Image (Multi 5) does five at once

By WhatDreamsCost·Created 6 months ago·Updated about a month ago· 2,038
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_1image_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