Load Image from URL (Pro)
Your Input Folder Isn't the Whole Internet
- images
- masks
Core ComfyUI's LoadImage will only read files that already live in your ComfyUI/input folder. Want to use an image that's sitting on a website? Too bad - download it by hand, name it something you can find again, then wire it in. That chore is exactly what Load Image from URL (Pro) removes: you paste one or more URLs and it fetches the images over HTTP, right in the graph.
It's a slightly odd node to find inside comfyui-save-image-pro, a pack whose headline business is writing images to disk with fancy filenames. The URL-loading pair was bolted on in the October 2025 release, clearly borrowed from the comfyui-easyapi-nodes original and hardened with better error handling, a timeout, and logging. If you've ever wanted to batch-process a whole gallery of reference images, pull an image from an API, or test a workflow with https://picsum.photos links, this is the node that ends the download dance.
How it works
The urls input is a multiline text box: one URL per line, blank lines ignored. On each queue run the node goes through them in order, and for each one it:
- sends an HTTP GET (streamed, via
requests) and checks the response status; - decodes the bytes with Pillow and applies EXIF rotation automatically, so phone photos don't come in sideways;
- converts to RGB and returns a float image tensor of shape
(1, H, W, 3)- exactly whatLoadImagegives you, just sourced from the web.
A couple of things worth knowing before you wire it up. The outputs are lists: images (IMAGE) and masks (MASK). That's how one node hands you a whole batch - drop it into any input that takes an image list and downstream iterates. And if an image has an alpha channel, it's automatically extracted into a mask that's inverted (transparent pixels become white/1.0). Images without alpha just get an all-black mask, so don't assume the masks output is useful for a plain JPEG.
The inputs you'll actually touch: urls is the only required one. In the current build there's also a per-request timeout (30 seconds by default, up to 300) and a verify_ssl toggle that defaults to on - flip it off if your source uses a self-signed certificate. Failure handling is per-URL: a bad link is logged and skipped, not fatal.
Installing it
Search "ComfyUI Save Image Pro" in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/weekii/comfyui-save-image-pro.git
then restart ComfyUI. Dependencies are light - requests, pillow, piexif, pillow-avif-plugin - and requests is almost certainly already in your environment. No model downloads, no weights, no VRAM cost. (The README is mostly Chinese; don't let that put you off, the node UI is self-explanatory.)
Where people get burned
- Everything comes back black. If all URLs fail, the node quietly returns a 64×64 black image instead of erroring - which can look like "the node is broken" when it's really "every download failed." The console logs are your friend: look for
Error reading image from URL. - A 100-URL batch is slow. Fetches are serial, one at a time, up to 30s each. A slow host means the whole queue hangs on this node.
- Hotlink-protected hosts. Some image CDNs reject non-browser requests. If a URL works in your browser but not here, that's the host blocking, not the node - download it and use
LoadImageinstead. - Name collision. If you also have
comfyui-easyapi-nodesinstalled, itsLoadImageFromURLand thisLoadImageFromURLProwill sit next to each other in the search. They do the same job; the Pro one is the newer, better-logged sibling. The README itself calls out the distinction.
Wire the images output into anything that wants an IMAGE - an img2img pipeline, a reference loader, an IPAdapter input - and you've got a workflow that pulls its source material straight off the internet.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| urls | STRING | 图像URL地址,每行一个URL | |
| timeout | INT | 301–300 | 单个URL请求超时时间(秒) |
| verify_ssl | BOOLEAN | true | 校验 HTTPS 证书;如遇自签名证书可关闭 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| masks | MASK | — |