Nodes/Quality of Life Nodes for ComfyUI/Load Images From URL List (Soze)
ComfyUI Node

Load Images From URL List (Soze)

Paste a List of Image URLs, Get Nine IMAGE Outputs — No Keys, No Drama

By SozeInc·Created 2 years ago·Updated 8 days ago· 10
Load Images From URL List (Soze)
    • image1
    • image2
    • image3
    • image4
    • image5
    • image6
    • image7
    • image8
    • image9
    • loaded_count
    • status
    urls

    Somewhere between "download one image" and "load a whole folder" there's a gap, and this node exists to fill it. You paste a list of image URLs - one per row, up to nine - and it fetches each one into its own IMAGE output. No API key, no account, no intermediate saving to disk. It's the laziest way to get a handful of reference images into a workflow when you can't be bothered to download them by hand first.

    The name is honest and the behavior is simple. urls is a multiline string where every row is a URL. Row 1 becomes the image1 output, row 2 becomes image2, and so on through image9. Empty rows just output None, which matters more than you'd think: you can leave slots open and ComfyUI treats an unconnected IMAGE output as if the input isn't there. You also get a loaded_count integer and a status string so a downstream node can react if, say, only three of five URLs actually loaded.

    Under the hood it's nothing fancy: requests streams each URL, PIL opens it, EXIF orientation gets applied, and the image is converted to RGB. Each URL is fetched independently, and one bad row doesn't take the others down with it - failures get logged into the status output and the rest keep loading. That resilience is the reason you'd reach for this over a single-image downloader when you're feeding references into an img2img, ControlNet, or character-consistency pass.

    Where people get burned: the URL has to be a direct image link, not a page. Paste a Pinterest page or a Google Drive share link and you'll get an error row, because those hosts serve HTML, not pixels. Anything behind a hotlink block - many CDNs, some art sites - will 403 to a bare requests call with no browser headers. And only the first nine rows are read, so a tenth URL silently gets ignored. If you need more than nine, chain a second node or use the pack's folder loader instead.

    Install

    Everything lives in the Soze pack, so the setup is the same for all of them:

    cd ComfyUI/custom_nodes
    git clone https://github.com/SozeInc/ComfyUI_Soze.git
    pip install -r ComfyUI_Soze/requirements.txt
    

    Or install ComfyUI Soze from ComfyUI Manager and let it pull the requirements for you. This particular node only really needs requests, which you almost certainly already have.

    Wiring it up

    Each image lands on its own output, not a single batch, so you decide what to do with them. Common patterns: drop image1 straight into a Load Image-style input, or fan them into a batch concatenation node so one prompt can see all your references. Because image1 through image9 are all the same IMAGE type, you can mix and match freely - feed one into an img2img pass, another into a ControlNet preprocessor, and ignore the rest.

    One tip: this node has no retry logic and no timeout on the fetch, so a slow or half-dead host can stall a run. Point it at fast, reliable image hosts and your runs stay predictable.

    Categoryimage

    Inputs (1)

    NameTypeDefaultDescription
    urlsSTRINGOne URL per row. Up to 9 rows are used; empty/missing rows output None.

    Outputs (11)

    NameTypeDescription
    image1IMAGE
    image2IMAGE
    image3IMAGE
    image4IMAGE
    image5IMAGE
    image6IMAGE
    image7IMAGE
    image8IMAGE
    image9IMAGE
    loaded_countINT
    statusSTRING