Seedream 4.0
ByteDance's Flagship Image Model, Without the Weights Problem
- referenceImages
- advancedFeatures.watermark.image
- image
ByteDance has a very consistent business model: everything it charges for stays on the API, and everything it gives away becomes the load-bearing infrastructure of the open ecosystem. Seedream is the flagship - it's never had open weights, it's an API product through and through, and it's widely read as one of the best pure image generators around. The Seedream 4.0 node is your way in from ComfyUI: the real model, running on ByteDance's cloud via Runware, coming back as a native IMAGE.
The "4.0" here is the current generation, and the feature that sets it apart from a plain text-to-image node is the reference handling. This is a model that's genuinely good at following a reference image - a subject, a style, a character - and the node exposes that directly.
The inputs that matter
Required: positivePrompt. Then:
- referenceImages - the headline feature. Feed it one or more images and Seedream keeps the subject/style consistent. This is where the model punches above the rest of the pack.
- providerSettings.bytedance.maxSequentialImages - the interesting one. It's a toggle (flip it on) with a
_valuefrom 1–15. This is Seedream's sequential-image mode: it generates a series of related images from your prompt and references - a consistent set rather than independent variations. The tooltip spells out the constraint: reference images plus sequential images can't exceed 15 total, and the model may produce fewer than requested depending on prompt complexity. - width / height - defaults at 1024².
- seed and numberResults (up to 20) for reproducibility and variation.
Output is one image (the set comes back through numberResults/sequential handling, so wire it into Preview Image or Save Image as usual).
Why this node exists
Because Seedream has no weights, the only way to use it is an API, and the only way to use an API from ComfyUI without writing a custom HTTP node is this pack. If you've got a workflow that's already hitting Runware for other things, adding Seedream is one search-and-drag away. And the reference-image strength is worth testing against your usual local model - for character consistency and style transfer, Seedream 4.0 is a legitimately strong contender, and you get to A/B it without downloading anything.
Install and gotchas
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Restart, find it under Runware/Image/bytedance, and set your API key (Settings → Runware API key, or RUNWARE_API_KEY). No weights download - that's the point.
The gotchas are the shared pack ones: every run bills your account (cost shows on the title bar), and the sequential-image toggle is easy to miss - if you wanted a consistent set but got a single image, providerSettings.bytedance.maxSequentialImages was off. Also keep the 15-total limit in mind; pasting ten references and asking for ten sequential images will get you clamped, not more output.
Inputs (21)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| referenceImagesopt | IMAGE | — | |
| advancedFeatures.watermark.imageopt | IMAGE | — | |
| sizeopt | COMBO | 1K (1:1) | Output size. Only one of resolution or dimensions is sent. |
| 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 | — |