Load Image (AI CustomURL)
Paste a URL, get a ComfyUI IMAGE — the remote image loader
- image
ComfyUI's built-in Load Image node is great at one thing: picking a file from disk. It does not do "paste a URL from the internet and load that." This node is the URL version - one input, one output, zero ceremony. You give it an https://... address and it hands you a normal IMAGE tensor that flows into the rest of your graph like any locally-loaded image. If you're using this pack for hosted generation, it's the missing "bring the result back in" piece.
How it works
Under the hood it's a short, honest pipeline: requests downloads the bytes (30-second timeout), PIL opens them, and the image is converted to a (1, H, W, C) float tensor in 0–1 range - exactly the format every other ComfyUI node expects. Nothing is cached, nothing is stored, no models are involved.
There's a failure behavior you should know about because it can look like a silent bug: if the URL is empty or the download fails, the node returns a blank black 512×512 tensor instead of crashing. Your workflow will keep running - you just might not notice you've got a black image in the pipe until downstream. If you're seeing an unexpected black frame, check the console log, where the real error message goes.
The input
Just one: url. Paste the full address, including the scheme - https://..., not //.... Redirects are followed fine, but anything that needs auth headers, a browser session, or a cookie isn't going to work with a bare requests.get.
Where you'd actually use it
- Feed a generated image URL from the Image Generation node's
urlsoutput back into an img2img or upscale pass. - Grab a reference image from the web (a stock photo, a frame you saw) and drop it into a ControlNet or IP-Adapter workflow.
- Pull the start frame for image-to-video.
Installing it
Part of the ComfyUI-AI-CustomURL pack:
cd ComfyUI/custom_nodes
git clone https://github.com/bowtiedbluefin/ComfyUI-AI-CustomURL
cd ComfyUI-AI-CustomURL
pip install -r requirements.txt
Or ComfyUI Manager → search "AI CustomURL", restart. No model downloads; the pack's requests and pillow deps are what power this node, and both are almost certainly already installed.
Honest limitations
This is a bare-bones loader, and that's the trade. It won't handle authenticated downloads, it has no retry logic beyond the pack's shared API client (this node uses a plain requests call, not the client), and a 30-second timeout means slow CDNs can trip it. For straightforward public URLs it's perfectly fine; for anything picky, the built-in Load Image with a manually downloaded file is still the more reliable path. A small utility node in a small pack - but it closes a real gap.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| url | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |