Seedream 4.5
ByteDance's flagship, minus the API plumbing
- referenceImages
- advancedFeatures.watermark.image
- image
Seedream is ByteDance's flagship image generation line, and it is aggressively, permanently closed - the entire Seedream family is an API product with no open weights, no local checkpoint, no "download the base model" moment. That's exactly why this node exists. If you want to use Seedream 4.5 inside ComfyUI without hand-rolling the API calls, the Runware pack is the on-ramp: one node, the model's real parameters as widgets, and a native IMAGE out the other end. It's the cleanest example in this pack of a node that isn't a convenience wrapper around something you could run locally - it's the only way in.
What's Seedream 4.5 good at, then? It's ByteDance's top-tier closed model, which in practice means very strong prompt following, great aesthetics, and big output: the size presets go to 2K and 4K, and the custom width/height fields run up to a staggering 16383 pixels. It's the node to reach for when you need the flagship closed look - hero shots, high-res detail, commercial-grade polish - and don't care that you can't peek under the hood.
What you set
positivePrompt(required) - plain-language prompt.referenceImages(optional) - reference images for editing or style transfer.size- the picker:None (model default),2K (from input),4K (from input), orCustom (set width and height). Only one of resolution or dimensions gets sent, per the tooltip.width/height- 256 to 16383 when you go custom. Fun fact: that max is effectively "whatever you can afford."providerSettings.bytedance.maxSequentialImages- Seedream's storytelling feature. Turn the toggle on and it generates a sequence of images (1-15) from one prompt, like a storyboard. Combined total of reference plus sequential images can't exceed 15, and the model may produce fewer than requested depending on prompt complexity.seed,numberResults(up to 20),watermark,outputFormat,outputQuality- standard.
Output is image (IMAGE).
How it works
Standard pack machinery: model AIR + taskType over REST via the Runware SDK, IMAGE downloaded back, cost on the title bar. No weights, no local model, no VAE - ByteDance keeps all of that. This is also the honest place to note the two-track reality: ByteDance releases open components (SDXL-Lightning, Hyper-SD, PuLID) while keeping every flagship generation product closed. Seedream is squarely on the closed track, and this node is your ticket to ride it from inside ComfyUI.
Installing
ComfyUI Manager → search Runware → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
No model downloads; dependencies are runware-sdk, pillow, soundfile. API key via Settings → Runware API key, RUNWARE_API_KEY, or runware auth login.
Troubleshooting
Key first, always. The cost trap is real here: at 4K or 16383px, a single run is a different price class than a 1024 square - check the title-bar cost before you queue a big batch. And if maxSequentialImages returns fewer images than you asked, that's documented behavior ("may generate fewer depending on prompt complexity"), not a bug - simplify the prompt.
Inputs (23)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| referenceImagesopt | IMAGE | — | |
| advancedFeatures.watermark.imageopt | IMAGE | — | |
| sizeopt | COMBO | Custom (set width and height) | Output size. Only one of resolution or dimensions is sent. |
| widthopt | INT | 1024256–16383 | Width of the generated media in pixels. |
| heightopt | INT | 1024256–16383 | Height of the generated media in pixels. |
| seedopt | INT | 00–2147483647 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| numberResultsopt | INT | 11–20 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| advancedFeaturesopt | BOOLEAN | false | Enable to set advancedFeatures. Off uses the model's default. |
| advancedFeatures.watermark.bgColoropt | STRING | Background color in hex format. | |
| advancedFeatures.watermark.displayPositionopt | COMBO | (default) | Watermark position. |
| advancedFeatures.watermark.fontColoropt | STRING | Text color in hex format. | |
| advancedFeatures.watermark.opacityopt | BOOLEAN | false | Enable to set advancedFeatures.watermark.opacity. Off uses the model's default. |
| advancedFeatures.watermark.opacity_valueopt | FLOAT | 0.100.1–1 | Watermark opacity. |
| advancedFeatures.watermark.textopt | STRING | Watermark text. | |
| providerSettings.bytedance.maxSequentialImagesopt | BOOLEAN | false | Enable to set providerSettings.bytedance.maxSequentialImages. Off uses the model's default. |
| providerSettings.bytedance.maxSequentialImages_valueopt | INT | 11–15 | Maximum number of sequential images to generate. Combined total of reference images plus sequential images cannot exceed 15. The model may generate fewer images than requested depending on prompt complexity. |
| safetyopt | BOOLEAN | false | Enable to set safety. Off uses the model's default. |
| safety.checkContentopt | BOOLEAN | false | Enable or disable content safety checking. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | JPG | File format for the generated image. |
| outputQualityopt | INT | 9520–99 | Compression quality of the output. Higher values preserve quality but increase file size. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |