ModelArk Seedream Images (Soze)
Image Gen and Editing Via BytePlus ModelArk
- image_batch
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_8
- image_9
- image_10
- images
- image_urls
- image_count
- model_id
- status
Seedream is ByteDance's answer to the "I want a hosted flagship image model without renting a cloud GPU" problem, and this node is a single entry point to four generations of it: 4.0, 4.5, 5.0 Lite, and 5.0 Pro. Text-to-image is the headline, but the real trick is that it's also an editing node - connect reference images and the model blends, edits, or reworks them according to your prompt, all through BytePlus ModelArk's hosted API. Like the other API nodes in this pack, it needs no local model and no VRAM; it needs an ARK_API_KEY and a tolerance for paying per call.
The inputs that matter
model_version- the dropdown:seedream-4.0,seedream-4.5,seedream-5.0-lite(default),seedream-5.0-pro. Bigger number isn't automatically better for your job; Lite is cheap and fast, Pro is the expensive one you reach for when you need it.prompt- the whole job.negative_promptis optional.size- presets from 1024×1024 up to 4K. Two escape hatches if the presets don't fit your aspect:size_overridetakes an arbitrary string like2048x1152, andmodel_id_overridelets you paste a specific dated model id from your BytePlus console when ByteDance ships a new revision your preset doesn't know about yet. Those overrides are the "the API moved on, this node didn't" insurance.num_images- 1 to 15, maps to the API'sn.seed- 0 means ModelArk picks; anything up to 2^32 is honored.watermark- off by default. On if you need the branded output; most people leave it off.response_format-url(default) orb64_json. Unless you specifically need base64, leave it onurl.
Reference editing lives on the optional side: image_1 through image_10 (individual slots, they override) or image_batch (auto-fanned, capped at ten). Connect one or more and the node uploads them to FAL's CDN so ModelArk can fetch them - which, as with the Seedance node, means reference runs also need FAL_KEY in addition to ARK_API_KEY. Text-only generation doesn't need it; the moment you plug an image in, you do.
Outputs
images (a real IMAGE batch you can save or feed onward), image_urls, image_count, model_id (the resolved model id, so you can see which dated revision actually ran), and status.
Honest notes
There's a guidance_scale (0–20) where 0 means "use the server default" (typically ~7.5) - most people should leave it at 0 and not fight the platform defaults. And sequential_image_generation with auto lets the model emit multiple images sequentially; pair it with num_images if you want that behavior. The two failure modes that actually bite are the missing FAL key on reference runs and a blank prompt - the latter short-circuits cleanly without spending a call, so at least one of them is friendly.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/SozeInc/ComfyUI_Soze.git
pip install -r ComfyUI_Soze/requirements.txt
Then export ARK_API_KEY (and FAL_KEY for editing runs). If you're coming from the pack's other BytePlus node, the billing model and key are the same - one account, one key, Seedream for images and Seedance for video both behind it.
Inputs (23)
| Name | Type | Default | Description |
|---|---|---|---|
| model_version | COMBO | seedream-5.0-lite | 4 options: seedream-4.0, seedream-4.5, seedream-5.0-lite, seedream-5.0-pro |
| prompt | STRING | — | |
| size | COMBO | 2K | Preset or use model_id_override + a custom size_override. |
| num_images | INT | 11–15 | Maps to `n` (and sequential_image_generation_options.max_images). |
| seed | INT | 00–4294967296 | 0 = let ModelArk choose. Max 4294967296 (2^32) per ModelArk API. |
| watermark | BOOLEAN | false | — |
| response_format | COMBO | url | 2 options: url, b64_json |
| model_id_overrideopt | STRING | Paste a specific dated model id (e.g. seedream-4-0-250828). Overrides model_version. | |
| size_overrideopt | STRING | If set, replaces `size`. e.g. '2048x1152' for a custom aspect. | |
| guidance_scaleopt | FLOAT | 0.00–20 | 0 = use server default (typically ~7.5). |
| negative_promptopt | STRING | — | |
| sequential_image_generationopt | COMBO | disabled | auto = let model emit multiple images sequentially. |
| image_batchopt | IMAGE | Optional IMAGE batch (capped at 10 frames). Ignored if any image_N slot is connected. | |
| image_1opt | IMAGE | Reference image slot 1. Overrides image_batch when connected. | |
| image_2opt | IMAGE | Reference image slot 2. Overrides image_batch when connected. | |
| image_3opt | IMAGE | Reference image slot 3. Overrides image_batch when connected. | |
| image_4opt | IMAGE | Reference image slot 4. Overrides image_batch when connected. | |
| image_5opt | IMAGE | Reference image slot 5. Overrides image_batch when connected. | |
| image_6opt | IMAGE | Reference image slot 6. Overrides image_batch when connected. | |
| image_7opt | IMAGE | Reference image slot 7. Overrides image_batch when connected. | |
| image_8opt | IMAGE | Reference image slot 8. Overrides image_batch when connected. | |
| image_9opt | IMAGE | Reference image slot 9. Overrides image_batch when connected. | |
| image_10opt | IMAGE | Reference image slot 10. Overrides image_batch when connected. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| image_urls | STRING | — |
| image_count | INT | — |
| model_id | STRING | — |
| status | STRING | — |