BudgetPixel Upload Image
BudgetPixel Upload Image — the boring utility node that makes the rest work
- image
- url
This is the least glamorous node in the whole BudgetPixel pack, and it's also the one to keep in your back pocket. BudgetPixel Upload Image takes any IMAGE tensor and returns the temporary upload URL(s) for its frames - one per line - using the same POST /v1/uploads endpoint the rest of the pack uses internally. Each URL lives for 24 hours. There's no generation, no credits consumed, no model involved. It's a plumbing node, and plumbing nodes are what make the flashy ones usable.
Why you'd reach for it
Two honest use cases. First, debugging: the model nodes already serialize and upload your images for you, but they do it invisibly. When a job fails or a reference image comes back wrong, this node lets you see exactly what got uploaded and grab the URL to poke at it. Second, and more usefully, feeding image URLs into string parameters - any workflow where you're building payloads by hand, or testing against the raw API from another tool, wants a URL it can paste. The pack README frames it as "temporary URL for an image, e.g. for debugging payloads," and that's the honest scope: it's a tool, not a feature.
The inputs and output
- image - required, an IMAGE input. Batches matter: each frame of the batch gets its own upload and its own URL line, so a 4-frame batch returns 4 lines.
- url - output, a STRING with one URL per line (multiline).
How it works
Each frame is converted to PNG and pushed to POST /v1/uploads; the API returns a short-lived (24h) URL and the node joins them with newlines. That's the entire mechanism. No polling, no job, no waiting - it's one synchronous upload call per frame, so it's fast and cheap (it doesn't consume generation credits, just the upload).
Install and key setup
It ships with the rest of the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/budgetpixel-ai/comfyui-budgetpixel.git
pip install -r comfyui-budgetpixel/requirements.txt
Or via ComfyUI Manager → search BudgetPixel. Only dependency is requests. It needs a BudgetPixel API key like every node in the pack - BUDGETPIXEL_API_KEY env var or a budgetpixel.json in the pack folder, paid plan required.
Where people get burned
People expect these URLs to last. They don't - 24 hours, then dead links, so don't wire the output into anything that needs to survive overnight or get shared. The multiline output also trips people up: if you're expecting a single clean URL and get a batch, that's the batch being honest about how many frames you fed it. And since it's a one-way upload with no generation behind it, a rerun just re-uploads: ComfyUI's cache may even skip it, which is fine - the point is the URL, not the side effects.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| url | STRING | — |