WaveSpeed Upload Image
The bridge your local images have to cross
- image
- client
- single_image_url
- all_image_urls
What it's for
The WaveSpeed edit nodes (Seedream Edit, Qwen Edit, and friends) work from image URLs, not local tensors. Your ComfyUI canvas, meanwhile, holds images as tensors in your GPU's memory. This node is the bridge: it takes an IMAGE, uploads it to WaveSpeed, and hands back the URLs those API nodes want to see.
You reach for it whenever you've made something locally - a ComfyUI render, a crop, a composite - and want a remote model to edit it.
How it works
Feed an IMAGE (or a batch of them) into the image input. The node converts the tensor, uploads each frame to WaveSpeed, and returns two outputs:
single_image_url- the first image's URL, for nodes expecting exactly one image.all_image_urls- the full list (a JSON array string), for batch processing.
The client input is optional; if you leave it unconnected the node auto-builds a client from your key in ERPK Settings (right-click canvas → ERPK Settings → API Keys), same as every other WaveSpeed node.
The one thing that bites everyone
The URLs expire after a short time. The node description says it outright: these are short-lived upload URLs, not permanent storage. That means:
- Don't save the output and try to reuse it later in another session - it'll be dead.
- Do wire
single_image_urlorall_image_urlsstraight into the edit node'simage_urlinput in the same workflow run, and run them together.
The expiry window is a couple of hours in practice, which is plenty for a single queue, but it's the classic "worked an hour ago, fails now" trap when you re-run a saved workflow that baked the URL in.
Where it fits in a workflow
The classic chain is: local generation node → UploadImage → all_image_urls into a Seedream V5.0 Lite Edit Sequential node's image_url, with your edit prompt on the other side. The edit node accepts a single URL string or an array of up to 10, so a batch of reference shots travels through all_image_urls in one wire.
Installing the pack
Same steps as the rest of the ERPK Collection:
- ComfyUI Manager → Install Custom Nodes → search
erpk→ ERPK Custom Nodes → install → restart. - Or manually:
cd /path/to/ComfyUI/custom_nodes/
git clone https://github.com/eRepublik-Labs/comfyui-nodes-erpk.git erpk
cd erpk
pip install -r requirements.txt
No model files, no VRAM cost - the heavy lifting happens on WaveSpeed's servers. You only pay per image when an edit actually runs.
Gotchas
- Re-uploads on every run. Each queue re-uploads your image, so nothing about this is cached. That's expected; it's just upload traffic, not billed generation.
- Old workflows that referenced the pre-V3
"WaveSpeed Custom Upload Image"ID load into this node automatically, so your saved graphs don't break.
If a WaveSpeed edit node ever tells you it got a bad or expired image, re-run the upload node fresh rather than digging through saved URLs - that fixes the vast majority of cases.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | Image(s) to upload to WaveSpeed AI | |
| clientopt | WAVESPEED_AI_API_CLIENT | WaveSpeed API client (optional if API key is configured in Settings) |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| single_image_url | STRING | — |
| all_image_urls | STRING | — |