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

Bytedance Seedream V5.0 Pro

Pick a ratio, pick a tier, pay by the tier

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

Nothing runs on your GPU here. You type a prompt, the node posts it to WaveSpeed's API, an image comes back, and ComfyUI treats it like any other IMAGE. That's the deal with Bytedance Seedream V5.0 Pro.

You need it because Seedream 5.0 Pro has no weights to download. ByteDance's posture is the strangest one in this space: Depth Anything, PuLID, SDXL-Lightning and Hyper-SD are Apache-2.0 and load-bearing for half the local ecosystem, while the entire Seedream image line and Seedance video line stay API-only. Components go free, products don't. So if you want this model in a graph, there is no local door - only an API call.

The upside of that is real: local upscalers, mask nodes and save nodes sit downstream exactly as they always do, and you don't fight VRAM. The cost is that every run is metered and your prompt leaves your machine. That's the trade, not a bug.

Sizing works differently than the other Seedream nodes

V4, V4.5 and V5.0 Lite take a width and height. V5.0 Pro doesn't - you pick an aspect_ratio (15 options, 1:1 through 21:9, default 1:1) and a resolution tier (1k, 1.5k or 2k). The tier is also the price: 1k and 1.5k cost $0.045 an image, 2k costs $0.09. Doubling your money for one step up in tier is the single most expensive click on this node, so draft at 1k and rerun the keepers at 2k.

Two more widgets matter. prompt_optimization_mode defaults to standard, where the model rewrites your prompt before generating; fast is several times quicker but follows long or intricate prompts less closely - fine for a throwaway composition, bad if your prompt is doing precise work. And output_format is jpeg or png (default jpeg), which is just what you save.

The seed widget is the trap-adjacent one: the endpoint takes no seed. Per the pack's own docs it's cache control only. Set it to -1 and the node always asks for a fresh generation. Set it to a fixed number and ComfyUI serves you the cached result without calling the API at all - handy when you're tuning the downstream graph and don't want to re-bill, and confusing as hell the first time you hit Queue and get the identical image back with no new charge.

The two optional booleans are mostly noise. enable_sync_mode asks the server to hold the response inline, but the node polls the job itself regardless. enable_base64_output gets forced to false by the client before the request goes out - the node downloads the result into an IMAGE either way, so leave both alone.

Inputs and output

Set prompt (empty refuses to run - "Prompt is required"), plus aspect_ratio and resolution. Everything else has a sane default. client is a WAVESPEED_AI_API_CLIENT input that's optional: the node falls back to your configured key.

Output is a single image. Wire it to SaveImage, to a local upscale pass, into a mask node, or into a PreviewImage if you just want to look.

Install

ComfyUI Manager → Install Custom Nodes → search erpk → install ERPK Custom Nodes → 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 downloads, nothing to put in models/. Do know that this is a monorepo, so the requirements file pulls requests, Pillow, pydantic, cryptography and the Claude, Gemini, OpenAI and xAI SDKs, whether or not you ever touch them. Then paste a WaveSpeed key: right-click the canvas → ERPK Settings, or Settings → ERPK → API Keys. Keys live in ComfyUI's per-user settings, not in your workflow JSON.

Where people get burned

The key resolution order is Settings → the api_key field on a WaveSpeed Client node → wavespeed/config.ini. Miss all three and you get a No API key found error listing the three places, which is at least honest. A wrong key returns Unauthorized: Invalid API key.

If the nodes don't appear, check the folder is custom_nodes/erpk/ containing wavespeed/, and look for [ERPK] Loaded <N> V3 nodes in the console on startup.

Runs are slower than a local sampler and the client waits up to 30 minutes per job, checking status every second, so a long wait is normal rather than hung. Cancel works properly - the poll loop checks ComfyUI's interrupt flag, so you won't be stuck watching a dead job bill you.

One naming aside worth knowing: searching "WaveSpeed" for help will mostly surface the first-block-cache inference trick people benchmarked on Flux, which has nothing to do with this platform. Different thing entirely.

CategoryERPK/WaveSpeedAI

Inputs (9)

NameTypeDefaultDescription
promptSTRINGText description of the image to generate
aspect_ratioCOMBO1:1Aspect ratio of the generated image
resolutionCOMBO1kOutput resolution tier. 1k and 1.5k cost $0.045, 2k costs $0.09.
seedINT-1-1–2147483647Cache control only, not sent to the API. -1 generates again every run.
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