Nodes/ComfyUI Deploy/External File (ComfyUI Deploy)
ComfyUI Node

External File (ComfyUI Deploy)

Drop an arbitrary file into a deployed workflow by URL

By BennyKok·Created 3 years ago·Updated 10 months ago· 1,529
External File (ComfyUI Deploy)
    • path
    â—„input_idinput_fileâ–º
    â—„display_nameâ–º
    â—„descriptionâ–º
    â—„file_urlâ–º

    The External input family in ComfyUI Deploy has specialized slots for images, audio, LoRAs, and checkpoints - but real workflows need to ingest weird stuff too: a control-net map, a config JSON, a mesh, a reference file some other node reads. "External File" is the generic slot: give it a URL and it downloads the file to a local path and returns that path as its output, so any node that wants a path on disk can use it.

    Think of it as the non-image cousin of External Image. Same idea - the caller supplies a URL, the node turns it into something local the graph can consume - but the output is a raw filesystem path instead of a decoded tensor. If your deployed workflow needs any file that isn't an image, audio, or model weight, this is where it enters.

    How it works

    Mechanically simple: if file_url starts with http, the node fetches it (with a 30-second timeout - a real safeguard against a hung request pinning your machine) and saves it to ComfyUI's temp directory under a uuid name, preserving the extension from the URL if it can. It returns the full destination path. On any failure - 404, network error, timeout - it returns an empty string and logs the reason to the console, rather than crashing the whole run.

    Inputs and output

    • input_id - default input_file. The key callers use to address this input.
    • file_url - the URL to download. Empty means no input, and you get an empty path.
    • Optional: display_name, description.

    Output: path (wildcard *).

    Installing it

    Standard pack install:

    cd ComfyUI/custom_nodes
    git clone https://github.com/BennyKok/comfyui-deploy.git
    

    Restart ComfyUI, or install "ComfyUI Deploy" via ComfyUI Manager. No models, no key, no heavy deps beyond the pack's usual pip list.

    Where people get burned

    Two things to know before you rely on it. First, files land in ComfyUI's temp directory, not the model folders - so downstream nodes must accept a full absolute path. A node that only lists files from models/loras or input won't see your downloaded file, because it's not there. If your downstream node needs a specific folder, you'll want a copy/move node between this and it.

    Second, the empty-string failure mode is quiet. A signed URL that expired, a 404, a host that's down - all of it produces an empty path, which the next node then chokes on with whatever confusing error it has. The console logs tell the real story; when a deployed workflow fails mysteriously right after this node, read the ComfyUI log for "Download failed." And on the security side: only point this at hosts you trust. You're pulling arbitrary bytes into your machine and then running code on them - same trust calculus as any custom node.

    Category🔗ComfyDeploy

    Inputs (4)

    NameTypeDefaultDescription
    input_idSTRINGinput_file—
    display_nameoptSTRING—
    descriptionoptSTRING—
    file_urloptSTRING—

    Outputs (1)

    NameTypeDescription
    path*—