Nodes/ComfyUI-LoadByUrl/🖼️ Load Images by URL
ComfyUI Node

🖼️ Load Images by URL

Five reference images, zero file browser trips

By romandev-codex·Created 8 months ago·Updated 7 months ago· 0
🖼️ Load Images by URL
    • image1
    • image2
    • image3
    • image4
    • image5
    • WIDTH
    • HEIGHT
    urlhttps://example.com/media.png
    max_width0
    max_height0
    divisible_by16
    url2
    url3
    url4
    url5

    LoadImagesByUrl is the sibling of LoadImageByUrl for the workflows where one reference isn't enough. Same idea - paste a URL, get a ComfyUI IMAGE tensor without touching the file browser - but it takes five URLs and hands you five separate images out of one node. It's the node you reach for when a graph wants a batch of references, like an IPAdapter style or face stack, and you don't want five loader nodes cluttering the canvas or five files to babysit.

    It ships in the same tiny pack, ComfyUI-LoadByUrl by romandev-codex, and it's honestly just the single-image loader called five times. The source literally instantiates LoadImageByUrl and runs it once per URL, so every behavior you know from that node - EXIF rotation, RGB conversion, LANCZOS scaling, center-cropping to divisible_by - applies identically to each image.

    The inputs

    • url - required, and the only one you can't leave blank. This is your first image.
    • url2 through url5 - optional extras. Leave any of them empty and that output comes back as None rather than erroring.

    The max_width, max_height, and divisible_by controls work exactly like the single-image node and apply to all five images: 0 means "keep native size", and the default divisible_by of 16 center-crops every image down to a multiple of 16. If you're feeding these to IPAdapter or a ControlNet that wants consistent, model-friendly dimensions, leave the defaults; if you need exact source pixels, drop divisible_by to 1.

    The outputs, and the one trap

    Outputs are image1 through image5 (each a (1, H, W, 3) tensor), plus WIDTH and HEIGHT. There's a wrinkle worth knowing: the width/height ints come only from the first image. If your five URLs have different resolutions, WIDTH/HEIGHT describe image1 alone - don't assume they're uniform or use them as a single size knob for all five.

    The other trap is the None outputs. Leave url4 blank and image4 will be None, which most downstream nodes will reject if you wire it anyway. Treat the empties as "don't wire me" rather than "I'll be skipped gracefully." If you want to toggle a reference on and off, it's often cleaner to leave the slot unwired and use a bypass on the node's upstream branch than to feed a None into something that expects an IMAGE.

    Installing

    ComfyUI Manager → Install Custom Nodes → search "LoadByUrl" and install ComfyUI-LoadByUrl, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/romandev-codex/ComfyUI-LoadByUrl
    

    then restart. One warning that applies to the whole pack, not just this node: there's no requirements.txt. The image loaders are fine on ComfyUI's stock dependencies, but the video and audio nodes in the same pack import av (PyAV), which isn't bundled - if the pack's nodes don't show up after install, pip install av into ComfyUI's Python environment is the fix.

    Beyond that, the usual URL caveats apply: no auth headers or cookies, so hotlink-protected or login-gated image links will 403, and each URL is fetched fresh per run (the cache keys on the URLs, so unchanged links won't re-download).

    It's a thin node - five URLs in, five images out - but for multi-reference work it's exactly the kind of plumbing that saves you a minute of file-management per run. Find it under "Remhes/Remote" in the node menu.

    CategoryRemhes/Remote

    Inputs (8)

    NameTypeDefaultDescription
    urlSTRINGhttps://example.com/media.png
    max_widthINT00–10000
    max_heightINT00–10000
    divisible_byINT161–10000
    url2STRING
    url3STRING
    url4STRING
    url5STRING

    Outputs (7)

    NameTypeDescription
    image1IMAGE
    image2IMAGE
    image3IMAGE
    image4IMAGE
    image5IMAGE
    WIDTHINT
    HEIGHTINT