Upload to ImgBB
An upload button that gives you a delete link
- image
- image_url
- delete_url
You generated something worth showing, and now you need it on the internet. Most upload nodes in ComfyUI are one-trick ponies - they dump the image somewhere and hand you a link you can't undo. This one hands you a delete link too, which turns out to be the feature you didn't know you wanted.
What it actually is
ImgBBUploader is an output-style node: you feed it an IMAGE tensor and it does the HTTP work of hosting the picture, then returns the public URL as a plain string. That string can go anywhere - into a Save Text node, a notification, a Discord bridge, whatever. It shares a pack with an LLM prompt generator (no, really), and here's the part that will bite you first: the pack is called "save image to imgbb", but the node's default platform is PhotoPrism, not imgbb. The name undersells the scope - this is a three-way uploader.
How it works
The node converts the image tensor to a PNG and embeds your workflow's prompt and extra metadata as PNG text chunks, so the "workflow included" culture survives the upload - anyone who downloads the hosted image can drag it back into ComfyUI and get your whole graph. For imgbb it base64-encodes that PNG and POSTs it to https://api.imgbb.com/1/upload with your key, retrying up to four times with exponential backoff when the network hiccups. On success you get two strings back: image_url and delete_url. That second one is the good part - it's the only way to unpublish an anonymous imgbb upload, and it means you can take a bad batch down instead of leaving it on the internet forever.
The inputs that matter
Three of them, really:
image- your IMAGE tensor, straight off the VAE decode.api_key- your imgbb API key (free, from imgbb.com). On the Uploadcare platform this field instead takespublickey|secretkeypipe-joined; on PhotoPrism it's used as the basic-auth password.platform- the trap. Switch it toimgbbor the node tries to talk to a PhotoPrism instance athost_addressthat you almost certainly don't have.
Leave host_address empty unless you're genuinely pointing at a PhotoPrism server - that's the third mode, where the node POSTs the PNG to {host}/upload. One flag before you use it: that branch disables TLS certificate verification (verify=False in the source). Fine on a home LAN, not something to aim at an untrusted host.
Install
It's a small pack - no model downloads, nothing heavy. In ComfyUI Manager, search "Comfyui_saveimage_imgbb" and hit install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/revirevy/Comfyui_saveimage_imgbb
then restart ComfyUI. One annoyance: the requirements (requests, pillow, pyuploadcare, and a completely unused opencv-python that drags a fat wheel into your environment) all install into your global Python env, and because the module imports pyuploadcare at the top, that library has to be present even if you only ever touch imgbb. If the node shows up red or missing after install, that import is the first suspect.
Gotchas
Error: No API key provided means you forgot the key - or left the platform on PhotoPrism, which has the same symptom. imgbb's free tier is fine for sharing but has size limits, so oversized upscaled batches can bounce. And a batch of images returns only the last image's URL, not a list. The quiet one: your API key lives in the workflow as a plain string, and workflows get embedded into every PNG this node uploads. Treat those keys as shareable and rotate them - the ecosystem has a real history of credentials leaking out of custom nodes.
Bottom line
For the "post this to the internet" job it works, and the delete_url makes it the one I'd reach for over uploaders that can't un-host your mistakes. Just flip the platform first.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| api_key | STRING | — | |
| platform | COMBO | PhotoPrism | 3 options: imgbb, Uploadcare, PhotoPrism |
| host_address | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image_url | STRING | — |
| delete_url | STRING | — |