Load Image from URL (BillBum)
The glue node that turns API image URLs back into actual ComfyUI images
- IMAGE
Every node in BillBum's pack that generates an image returns a string - a URL or a base64 data URL - not a tensor you can preview or wire into a VAE decode. That's where Load Image from URL (BillBum) comes in. It's the last mile: take that string, hand it to this node, and get a real IMAGE out the other side that you can preview, save, upscale, or feed into the next node. If you use any of the pack's image API nodes, you'll be reaching for this constantly.
How it works
It's aggressively tolerant, which is the nice part. The url input accepts three things:
- A plain
http://orhttps://URL - it fetches it withrequests(10 second timeout, a few retries on connection hiccups). - A
data:URL - thedata:image/png;base64,....blobs that the pack's DALL-E, Flux, and Ideogram nodes hand you. - Raw base64 with no prefix at all. It just tries to decode it.
It decodes with PIL, converts everything to RGBA, and normalizes to the 0–1 float range ComfyUI expects. Two genuinely handy details: you can paste multiple URLs separated by newlines (or commas) and it returns a batch image, and it pads all images to the same size so the batch stacks cleanly. That's the kind of thing that usually breaks in hand-rolled nodes, so it's nice to have built in.
The inputs and outputs that matter
There's exactly one input, url (a STRING), and one output, IMAGE. That's the whole node. If the string is empty it returns None, so it's safe to leave dangling.
The output IMAGE plugs straight into a Preview Image, Save Image, or anything downstream that expects a tensor. In a typical workflow it sits between an API node like Custom Flux API Node (which outputs base64_url) and your preview/save stack.
Installing it
This is one of ~28 nodes in the AhBumm/ComfyUI_BillBum_APIset_Nodes pack, so you don't install it alone. ComfyUI Manager is the easy path: search "billbum" and install "Customizable API Call Nodes by BillBum". Or clone it manually:
cd ComfyUI/custom_nodes
git clone https://github.com/AhBumm/ComfyUI_BillBum_APIset_Nodes.git
cd ComfyUI_BillBum_APIset_Nodes
pip install -r requirements.txt
Then restart ComfyUI. Dependencies are light - requests, pillow, numpy, torch (which you already have), plus tenacity for retries. No model downloads, nothing heavy.
Common issues
The two things that bite people:
- The URL has to be directly fetchable. This node fetches server-side, so CORS doesn't matter, but a URL behind a login, an expiring presigned URL, or a hotlink-protected host will fail with an HTTP error. If you're pulling from a service that signed the URL, grab a fresh one.
- It's fetch-and-decide, not stream-and-preview. Big images take a moment; it downloads the whole thing before handing you a tensor. For normal sizes that's a non-issue.
One small trap: it retries on connection errors and timeouts but not on HTTP error codes, so a 403 comes straight back at you. That's correct behavior - a 403 won't fix itself - just don't expect it to power through auth failures.
If you already have base64 data rather than a URL, this same node handles it, but the pack also ships a dedicated Base64 URL to Image node if you want the explicit split. Either way, this is the node that makes the whole API-call-and-see-the-picture loop feel like it's part of ComfyUI instead of a detour to a browser.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| url | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |