Upload to ImgBB (JPG)
Get a shareable URL for a frame, no hosting setup
- image
- image_url
ImgBBUploadJPG does one thing ComfyUI genuinely doesn't do natively: take an image and hand you back a public URL for it. You feed it an IMAGE tensor, it JPEG-encodes the first frame, uploads it to ImgBB (a free image host), and returns image_url - a string you can paste into Discord, Reddit, a page, or a preview node.
Why you'd reach for this: the whole workflow-in-the-PNG convention means sharing a ComfyUI output usually means sharing a file with the graph embedded. But when you just want someone to see a frame - a mid-iteration check, a sample you're asking for feedback on, a thumbnail for a video you're assembling - a URL beats an attachment every time. ImgBB is the lowest-friction option: free tier, no account auth flow beyond one API key, no bucket setup. For a pack whose whole point is iterating on video frames, a "give me a link to this frame" node is a genuinely reasonable addition.
What you set
image(IMAGE) - your tensor. Note it uploadsimage[0], the first frame of the batch, not the whole batch. Feed it a single frame for a predictable result.api_key(STRING) - a free ImgBB API key. Get one from your ImgBB account settings (no charge, just an account).jpeg_quality(INT, default 90) - JPEG quality for the upload. Lower it if you want smaller payloads for quick sharing.expire(BOOLEAN) andexpiration_time(INT, default 60 seconds, max 15,552,000) - self-destruct option for the link. Leaveexpireoff for permanent uploads, on if you're sharing a temp preview. The max of 15,552,000 seconds is 180 days.
Output: image_url (STRING).
How it works
It converts the first frame to a PIL image, encodes to JPEG at your quality, base64s it, and POSTs to ImgBB's /1/upload endpoint. Success returns the URL; any failure - missing key, bad key, ImgBB down - raises a clear error instead of silently returning garbage. Worth knowing: it does not preserve the ComfyUI workflow metadata. A JPEG can't carry the PNG text chunks anyway (the KB's metadata essay covers this - JPEG re-encoding strips the graph), so this is for sharing pixels, never for sharing an editable workflow.
Install & the key-warning
Same pack, same install: Manager search "videoclipgenerator", or git clone https://github.com/lazniak/videoclipgenerator into custom_nodes + pip install -r requirements.txt, restart. Depends on requests, which is in the pack's requirements.
The standard API-node caution applies and it's worth stating plainly: this node holds an API key and reaches the network every run, by design. That's exactly the shape of custom node that's already been weaponized once in this ecosystem (the LLMVISION incident), so install it as part of the pack you've read, keep the key in the widget rather than scattering it, and treat unexpected network behavior as a red flag. Fine to use - just know what you plugged in.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| api_key | STRING | — | |
| jpeg_quality | INT | 901–100 | — |
| expire | BOOLEAN | false | — |
| expiration_time | INT | 6060–15552000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image_url | STRING | — |