Nodes/comfy-deploy/External Image Batch (ComfyDeploy)
ComfyUI Node

External Image Batch (ComfyDeploy)

Feed your workflow a whole pile of images at once

By ihmily·Created 11 months ago·Updated 3 months ago· 3
External Image Batch (ComfyDeploy)
    • image
    param_nameinput_image
    keep_alpha_channelfalse
    default_value[]
    display_name
    description

    External Image Batch (ComfyDeploy) is the multi-image version of External Image from the ihmily/comfy-deploy pack. Where the single-image node takes one URL and hands back one tensor, this one takes a list of URLs, downloads all of them, and outputs a list of images. It's for deployed workflows that need more than one reference: IPAdapter with multiple style references, multi-angle character consistency, batch img2img.

    It's also the odd one out in the family, and it pays to know why before you use it. Its default_value isn't an image - it's a string that holds a JSON-ish list of URLs. That quirk exists because a batch input is just a list of strings over the wire, so the node treats the value as text and parses it.

    How it works

    Open nodes/comfydeploy_external_image_batch.py and the parsing is deliberately loose:

    • If the value is a JSON array (contains [" / ["), it's parsed with json.loads.
    • If it's a plain comma-separated list, it's split on commas.
    • Empty entries are skipped.

    Each URL is fetched with httpx (3 retries, 60s timeout, browser user-agent), then EXIF-transposed, converted to RGB (or RGBA if you enable keep_alpha_channel), and normalized to a 0–1 float tensor. The node returns a list of these tensors - that's what the is_list: true in its schema means. If every URL fails to load, it raises a RuntimeError rather than returning an empty batch.

    Inputs and outputs that matter

    • param_name (required, default "input_image") - the request key; callers send a JSON array of image URLs under it.
    • keep_alpha_channel (required, default off) - same story as the single-image node: keep it off unless you genuinely need RGBA in the pipeline.
    • default_value (optional, default "[]") - for local testing you type URLs into this text widget, like ["https://…/a.png", "https://…/b.png"].

    The output is image, a list, so it wires into nodes that consume lists - an IPAdapter batch reference port, a node that iterates over images, or a for-each style structure. A regular single-image input will not accept it.

    Installing it

    One install gets the whole pack, and this node comes along:

    cd ComfyUI/custom_nodes/
    git clone https://github.com/ihmily/comfy-deploy.git
    cd comfy-deploy
    pip install -r requirements.txt
    

    Or ComfyUI Manager, search "comfy-deploy" (author ihmily). No model downloads. The README's version gate applies: pack v1.0.1+ needs ComfyUI 0.3.67+. And as with every node here, the deploy half only works once you've got comfy-deploy-admin running and configured (endpoint + API key in the ComfyDeploy panel).

    Gotchas

    Same server-side reachability rule as the single-image node: every URL is fetched by the ComfyUI server, so localhost URLs or private-network paths fail in production - host images publicly or sign the URLs. And because parsing is loose, keep your input as a clean JSON array; a stray comma or a bare URL mixed with JSON is exactly the kind of thing that produces a confusing partial batch. Also note the default is the string "[]" - if a caller omits the parameter and you've left it empty, the node raises a RuntimeError because it loaded zero images. Set a sensible default batch if you want calls without the parameter to survive.

    Categorycomfy-deploy/Image

    Inputs (5)

    NameTypeDefaultDescription
    param_nameSTRINGinput_image
    keep_alpha_channelBOOLEANfalse
    default_valueoptSTRING[]
    display_nameoptSTRING
    descriptionoptSTRING

    Outputs (1)

    NameTypeDescription
    imageIMAGE