Load Image By URL
Pull any remote image straight into the graph (it even caches for you)
- IMAGE
The name is a lie-free summary: you paste a URL, it fetches the image, and out the other end comes an IMAGE tensor ready to wire into anything that expects one. It ships inside ComfyUI Browser (talesofai/comfyui-browser), the image/video/workflow browser and manager pack, as one of its small utility nodes. If the URL is reachable from your ComfyUI machine, this is the easiest way to get a remote image into a graph without first downloading it by hand.
When you'd actually use it
Core ComfyUI's Load Image only reads files that are already in your input folder. That's fine until the image lives somewhere else - a URL a teammate sent you, a reference image served by an API, a generated preview from another service, a control image on some object store. Rather than save it to disk and then load it, this node does both steps for you: download, then load.
Wire the IMAGE output anywhere a normal Load Image would go - into an img2img KSampler as the latent source, into IPAdapter as a reference, into a VAE encode. It's just a tensor by the time it leaves the node.
How it works
The node fetches the URL server-side (from your ComfyUI box, not your browser) using a requests session with a small retry/backoff wrapper. It then saves the bytes into ComfyUI's input directory under a filename derived from an MD5 hash of the URL - so the same URL always maps to the same file. That's the cache mechanism, and it's on by default: if the file already exists on disk, it skips the download entirely and just re-reads it.
One detail worth knowing: it uses PIL's frame iterator, so a URL pointing at an animated GIF or multi-frame file doesn't break - each frame becomes a separate image in the output batch. EXIF orientation is applied before conversion to RGB.
The inputs that matter
Only two, and you'll set one of them:
- url (required) - the full
http(s)://address of the image. - cache (boolean, default
true) - keep the cached copy, or force a fresh download.
The cache is the gotcha. If a URL's content changes but the address stays the same, cache=true keeps serving you the stale file. Flip it to false when you know the remote image was updated. Also note the cached file lands in your input folder as a .jpg, so it'll start showing up in the input file list - that's expected, not litter.
Install
Same as the whole pack:
cd ComfyUI/custom_nodes && git clone https://github.com/talesofai/comfyui-browser
then restart ComfyUI. Or open ComfyUI Manager → Install Custom Node and search comfyui-browser. The pack's requirements are light (requests, numpy, pandas, tqdm, urllib3 - nothing you don't already have), and there are no model downloads. This node specifically needs nothing beyond what ComfyUI ships.
Troubleshooting
The most common failure is a non-200 response, and the node is upfront about it: you'll get Failed to load image from <url>: <status>. The usual culprits: the URL isn't reachable from your ComfyUI machine (works in your browser, dead from a headless box behind a firewall), a 403 from hotlink protection, or a missing scheme. If the image looks wrong or stale, check whether the cache is serving you yesterday's copy before anything else.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| url | STRING | — | |
| cacheopt | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |