Seedream 5.0 Pro
ByteDance's Seedream 5.0 Pro — great text rendering, huge canvas, zero local VRAM
- referenceImages
- advancedFeatures.watermark.image
- image
Seedream is ByteDance's image model family, and the reason anyone seeks it out specifically is text rendering. Seedream has been the standout for putting readable words into images - signage, posters, product mockups, anything where the text has to come out right. Seedream 5.0 Pro is the flagship tier, and this node serves it through Runware's cloud. Type a prompt, get a native IMAGE back, no local model, no GPU requirements.
It's also unusually flexible on canvas size. The width/height widgets here go up to 8191px (default 1024, step 16), which is poster territory. For a model that's genuinely good at both legible typography and large compositions, that combination is the reason to pick this node over the other image entries in the Runware pack.
How it works
Same pattern as every node in this pack: it sends an imageInference request to the Runware API and converts the returned image into a ComfyUI IMAGE tensor. This node is refreshingly uncluttered - there's no scheduler, no CFG, no steps. The model handles the sampling internally, and you get the knobs that matter: prompt, size, references, and output encoding. Less to fiddle with, fewer ways to break it.
Inputs worth setting
positivePrompt(required) - the description. For Seedream's text-rendering strength, be explicit about the words you want: quote them ("a neon sign readingCafe Aurora") - the model treats quoted text as content to render.width/height- 256–8191px, default 1024. This is the standout control. Want a 4K-tall poster? Set it. Want an ultra-wide banner? Set it. Most image models top out far lower; Seedream 5.0 Pro doesn't.referenceImages- anIMAGEinput for editing/reference work. Seedream's edit capabilities are strong, so if you're iterating on a design, wire your last render back in.numberResults(1–20) - seed variations. Because this is a paid cloud call, don't default to 20 - do 2–4 and pick.watermark- a typed socket for the Runware Watermark builder if you want a watermark stamped into the output.safety/safety.checkContent- both off by default (model's own moderation applies). Turn on to have Runware run an explicit content check and flag the result. Seedream is a fairly guarded model anyway - if that's the reason you came here, you may be disappointed.outputFormat/outputQuality- JPG (default), PNG, WEBP, and a compression quality slider (20–99, default 95). For text-heavy work, PNG or high-quality JPG - compression eats crisp lettering first.
The single output is image → wire it to Preview Image or Save Image.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Or ComfyUI Manager → search Runware → install → restart. API key via ComfyUI Settings → Runware API key, RUNWARE_API_KEY, or runware auth login. No model downloads - it's cloud inference.
The honest caveats
This is a closed model served as a black box - no weights, no offline mode, and ByteDance's moderation policies travel with it. And while big canvases are nice, they're also more expensive per call, and a 8191px image from a cloud API is going to take a moment. If your use case is "readable text in images without fighting for hours," this node earns its place. If you need unrestricted generation, Seedream is not the model for that - look at the Grok or local options instead. One more thing: the title bar shows each run's cost, and on big canvases that number is worth watching.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| referenceImagesopt | IMAGE | — | |
| advancedFeatures.watermark.imageopt | IMAGE | — | |
| widthopt | INT | 1024256–16383 | Width of the generated media in pixels. |
| heightopt | INT | 1024256–16383 | Height of the generated media in pixels. |
| 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. | |
| 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 | — |