ComfyUI Node

Upload to ImgBB (JPG)

Get a shareable URL for a frame, no hosting setup

By lazniak·Created 2 years ago·Updated 11 months ago· 7
Upload to ImgBB (JPG)
  • image
  • image_url
api_key
jpeg_quality90
expirefalse
expiration_time60

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 uploads image[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) and expiration_time (INT, default 60 seconds, max 15,552,000) - self-destruct option for the link. Leave expire off 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.

Categoryimage/upload

Inputs (5)

NameTypeDefaultDescription
imageIMAGE
api_keySTRING
jpeg_qualityINT901–100
expireBOOLEANfalse
expiration_timeINT6060–15552000

Outputs (1)

NameTypeDescription
image_urlSTRING