Silver URL Image Loader
Grab a Fresh Image From Any Direct URL — Built for /random/ Endpoints
- IMAGE
- MASK
Point this at a direct image URL and it downloads the image into your graph. That alone wouldn't be remarkable - but it's built for the specific case of random-image endpoints: URLs like https://picsum.photos/800/600 that serve a different image every request. Pair one of those with this node and every queue run feeds your img2img or ControlNet chain a brand-new reference photo, no downloading files and no touching the Load Image node.
How it works
It fetches the URL with a browser-ish User-Agent, and when seed is above 0 it appends a ?_cb=<seed> query parameter - the cache-buster. On a /random/ endpoint that forces the server to hand back a new draw instead of a cached response; on any CDN it stops your browser/proxy from short-circuiting the request. The node then hashes the downloaded bytes (SHA-256) and checks them against a history file in the pack's history/ folder, so it refuses to load the same image content twice - meaning even a random endpoint won't keep feeding you duplicates until you've churned through hundreds. Downloads get five retry attempts before the node gives up. It also emits a MASK output, but it's a solid all-ones tensor - there's no alpha to extract, so just ignore it unless a node in your chain demands a mask input.
Inputs
- url - the direct image URL. Must be an image, not an HTML page.
- seed - doubles as the cache-buster. 0 = no cache-busting; above 0 adds the
_cbparameter. - timeout - optional, seconds, default 10. The only optional input.
Outputs
- IMAGE - the loaded image.
- MASK - a 1.0 mask, mostly present for wiring convenience.
The gotcha that's actually the headline
If the image can't be loaded after all retries, the node doesn't just error - it skips the entire workflow run. You'll see Skipping workflow: Failed to load image from URL in the console and the whole queue item aborts. That's deliberate (the author wanted to prevent partial processing), but it means one dead URL or one blocked CDN silently cancels your run. Watch the console; a flaky image source will make this node feel like the workflow is randomly breaking.
The duplicate check cuts both ways: it's great for variety, but if you genuinely want the same image again (say, you want to re-run a specific random draw), the history file will block it until you clear history/urlimageloader_history.txt. And because it's a plain requests call, hotlink-protected sites that demand a Referer header will 403 - for those, the sibling Silver Web Image Loader (which sends one) is the better pick.
Install
ComfyUI Manager → search "ComfyUI Silver Nodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/SilverAndJade/comfyui-silver-nodes
Restart after cloning. Needs requests, which ComfyUI already ships.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| url | STRING | — | |
| seed | INT | 00–4294967295 | — |
| timeoutopt | INT | 101–60 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |
| MASK | MASK | — |