Doubao Seedream ImageGen API Node
Doubao Seedream images — the one API node that hands you a real IMAGE
- image
- image
- response_str
Every image node in this pack returns a URL string that you then have to convert. Not this one. Doubao Seedream ImageGen API Node is the exception that makes you feel spoiled: it talks to ByteDance's Seedream image API on Volcano Ark and hands you a ready-to-preview IMAGE tensor plus the raw response string. If you're building a workflow around ByteDance's closed image models - Seedream is the API-only line the community keeps measuring open models against - this is the cleanest entry point in the pack.
Seedream's calling card is strong text rendering, particularly Chinese text, plus an image-edit story mode. If your job involves Chinese signage or lettering that other models mangle, this is a genuinely good reason to have an Ark key.
How it works
The node POSTs a payload with model, prompt, size, and response_format: "b64_json" (so the image comes back inline as base64 - no URL round-trip). It decodes the base64 straight into an IMAGE tensor, batches multiple images if the API returns several, and returns that plus a nicely formatted response_str dump of the full request/response for debugging. It requests watermark: false by default - a small mercy.
Two provider behaviors worth knowing, straight from the source:
- Input image handling. For image-to-image it base64-encodes your optional
imageinput, downscaling large inputs to roughly 1536x1024 first so you don't blast the API with 4K PNGs. A batch input becomes multiple image parts. - Seedream 4.x quirks. For
doubao-seedream-4models,story_modemaps to asequential_image_generationfield:disabledexplicitly disables it,autoturns it on for consistent elements across generations (that's the "Story Mode" the tooltip describes, and it's 4.0+ only). And fordoubao-seedream-4-5models with size "1K", the node silently bumps you to "2K".
The inputs that matter
prompt- your text. This is aforceInputfield, so wire it from a text node rather than typing (typing still works in the widget, it just expects a connection).model- defaultdoubao-seedream-4-0-250828; versioned IDs drift, check the Ark console.size- 1K / 2K / 4K dropdown.story_mode-disabledorauto(Seedream 4.0+).image(optional IMAGE) - image-to-image input.api_url/api_key- Ark endpoint + an Ark API key from ByteDance's Volcano Engine console.
Outputs: image (IMAGE) and response_str (STRING, the debug/response dump).
Installing it
Part of AhBumm/ComfyUI_BillBum_Nodes. ComfyUI Manager search "billbum", or:
cd ComfyUI/custom_nodes
git clone https://github.com/AhBumm/ComfyUI_BillBum_APIset_Nodes.git
cd ComfyUI_BillBum_APIset_Nodes && pip install -r requirements.txt
Restart ComfyUI. Light deps, no local models, billed per call on Ark.
Where people get burned
- Not a generic key. Ark uses ByteDance's own console and key format; an OpenAI key won't authenticate.
- Failure mode is "empty image" + a string. If something goes wrong, the IMAGE output can come back as
Noneand the details live inresponse_str- read that string, it's the diagnostics. - Versioned model names.
-250828style suffixes get superseded; "model not found" usually means update the ID. - Costs. Text-rendering quality is the reason to pay for this; if you don't need it, local models are free.
- Unlike the sibling video node, this one returns tensors directly - don't add a URL loader after it, you'll be converting pixels to a URL and back for nothing.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| model | STRING | doubao-seedream-4-0-250828 | — |
| prompt | STRING | — | |
| size | COMBO | 1K | 3 options: 1K, 2K, 4K |
| api_url | STRING | https://ark.cn-beijing.volces.com/api/v3/images/generations | — |
| api_key | STRING | Input_your_API_key_here... | — |
| story_mode | COMBO | disabled | 2 options: disabled, auto |
| imageopt | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| response_str | STRING | — |