Nodes/ERPK Collection/Bytedance Seedream V5.0 Pro Edit
ComfyUI Node

Bytedance Seedream V5.0 Pro Edit

Ten reference images, one prompt, and a batch-vs-URL trap

By eRepublik-Labs·Created 11 months ago·Updated about 22 hours ago· 1
Bytedance Seedream V5.0 Pro Edit
  • images
  • client
  • image
prompt
image_url
aspect_ratioauto
resolution1k
seed-1
output_formatjpeg
prompt_optimization_modestandard
enable_sync_modefalse
enable_base64_outputfalse

Bytedance Seedream V5.0 Pro Edit is the one you'll actually use more often than the text-to-image node. Same cloud model, same WaveSpeed call, but now it looks at up to ten images of yours and changes them according to a prompt. Local img2img still wins when you want latent-level control with a denoise slider. This is for the other job: "here's what I've got, here's what I want, just do the edit."

It's also the shortest path to reference-driven work - character pulled from a couple of angles, an outfit from a screenshot, a lighting reference from a photo - without training a LoRA or wiring a PuLID-style identity stack. Ten reference slots is a lot of context for a model to look at.

Two ways in, and the batch wins

prompt is required (an empty one refuses to run). Then you feed images one of two ways:

  • images - a normal ComfyUI IMAGE input. Each slice of the batch becomes one input image, up to 10. The node base64-encodes them and sends them inline, so there's no upload step and no expiring URL to babysit.
  • image_url - a text field, one URL per line or comma-separated, up to 10. Ignored entirely if images is connected.

The gotcha is that an IMAGE batch in ComfyUI is one tensor with one shape, so every slice is the same size. Mixed-size references - a landscape photo and a portrait crop - can't share a batch. Send those through image_url instead, or resize them first.

Over the limit, you get an error naming the count rather than a silent cut to ten. That's deliberately correct: nobody should discover halfway through a render that references 11 and 12 were never shown to the model. If neither input has an image, it stops with "Connect images or enter at least one image URL."

What you set on top

aspect_ratio defaults to auto, which lets the API pick the supported ratio closest to your first image - right answer most of the time. The other 15 options force an output shape, which is how you ask for a wide crop of a square photo.

resolution is 1k, 1.5k or 2k, and it's where the bill lives: $0.045 at 1k or 1.5k, $0.09 at 2k, plus $0.003 for every input image after the first. Nine references on a 2k run is $0.114. Not much individually, but it's the kind of thing that quietly triples the cost of a comparison sweep.

prompt_optimization_mode (standard/fast) and output_format (jpeg/png) are the same as the text-to-image node: fast rewrites your prompt far quicker and follows intricate instructions less closely. And seed, again, is not sent to the API - it's ComfyUI cache control. -1 re-runs every queue; a fixed value replays the cached image and doesn't bill you.

Output is one image (IMAGE). Save it, upscale it, or chain it into another edit pass; the node's result also previews inline so you don't have to wire a preview node just to eyeball it.

Install

Manager → search erpkERPK Custom Nodes → restart. 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

Nothing to download, no checkpoints. You need a WaveSpeed API key - right-click canvas → ERPK Settings, or Settings → ERPK → API Keys. The client input is optional; without a key anywhere the node raises "No API key found" and lists your three options.

Troubleshooting

"Seedream accepts at most 10 input images, got N." You batched too many. Split them or move to URLs.

A mixed-size batch. Connect a landscape and a portrait slice and ComfyUI itself will complain before the node does - that's the tensor shape, not the API.

It looks frozen. The client submits the job, then polls status once a second for up to 30 minutes. Editing with ten references is the slow case. Cancel is handled properly mid-poll, so if you've changed your mind you don't have to wait it out.

"Unauthorized: Invalid API key." Wrong or expired key; the resolution order is ComfyUI Settings, then the node's own field, then wavespeed/config.ini.

Remember what this actually is: a closed model on someone else's hardware. Your reference images and prompt go to WaveSpeed and then to ByteDance, and whatever the model refuses, it refuses - there are no weights to patch. For casual edits that's a fine trade. For anything you'd rather not upload, keep it local.

CategoryERPK/WaveSpeedAI

Inputs (11)

NameTypeDefaultDescription
promptSTRINGText description of the desired modifications
image_urlSTRINGImage URL(s) to edit, one per line or comma separated. Up to 10. Ignored when `images` is connected.
aspect_ratioCOMBOautoAspect ratio of the result. auto follows the first image.
resolutionCOMBO1kOutput resolution tier. 1k and 1.5k cost $0.045, 2k costs $0.09, plus $0.003 per input image after the first.
seedINT-1-1–2147483647Cache control only, not sent to the API. -1 generates again every run.
imagesoptIMAGEImages to edit as a ComfyUI IMAGE batch. Each slice is one image, up to 10. Takes precedence over `image_url`. Sent inline as base64, no upload.
clientoptWAVESPEED_AI_API_CLIENTWaveSpeed API client (optional if API key is configured in Settings)
output_formatoptCOMBOjpegOutput image format
prompt_optimization_modeoptCOMBOstandardThe model rewrites the prompt first. fast is several times quicker but follows long or intricate prompts less closely.
enable_sync_modeoptBOOLEANfalseWait for result generation before returning response
enable_base64_outputoptBOOLEANfalseReturn BASE64 encoded output instead of URLs

Outputs (1)

NameTypeDescription
imageIMAGE