FAL Seedream v4.5 Edit (Soze)
ByteDance's frontier editor, as a graph node
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_8
- image_9
- image_10
- image_batch
- images
- image_urls
- image_count
- seed
- status
Seedream is ByteDance's image generation family, and v4.5 is the version that made the hosted frontier models feel genuinely strong at editing - re-render an input image with a prompt, keep what should stay, change what shouldn't. FAL Seedream v4.5 Edit wraps fal-ai/bytedance/seedream/v4.5/edit in a single node: up to ten input images, a prompt, and the edited results come back into your graph as a real IMAGE batch.
Paid hosted API, like every FAL node in this pack. No local model, no VRAM pressure on your machine - the trade is that every run costs money and every run depends on fal's network being up.
How it works
The required inputs:
prompt- the edit instruction. Multiline.image_size- the notable option here isauto_2Kandauto_4Kalongside the usualsquare,portrait_16_9, etc. Auto sizes infer from your input images; 4K is the "I want the big one" pick and bills accordingly.num_images(1–8) - how many results to generate for the same edit.max_images(1–8) - set above 1 to enable multi-image generation (the API can produce several variant outputs in one call).enable_safety_checker- on by default. This is a hosted model with ByteDance's content filter in the loop; turn it off only if you're confident about what you're generating and you've read fal's terms.seed-0lets fal choose (and the node reports back the seed it used); any other value pins the result for reproducibility.
Reference inputs: ten image_N slots or an image_batch (capped at ten frames, individual slots winning). sync_mode makes fal return images as data URIs instead of public URLs.
Outputs: images (the IMAGE batch, aligned so ComfyUI handles them), image_urls (newline-joined), image_count, seed (the seed actually used - wire it into your logs), and status, with live progress on the node body.
When it's worth it
Seedream 4.5's edit quality is genuinely top-tier - this is the node you reach for when a local SDXL edit pipeline keeps mangling the thing you're trying to preserve, or when you want the "frontier model did it" look without renting your own A100. Text-in-image edits, coherent restyles, and multi-image variants are its strengths. If your edit is trivial (a small region inpaint), local models are cheaper and faster - this node earns its cost on the jobs where quality is the point.
Getting it running and gotchas
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/SozeInc/ComfyUI_Soze.git
pip install -r ComfyUI_Soze/requirements.txt
Then configure FAL_KEY - environment variable, .env in the pack root, or config.ini under [API]. Missing key = "FAL_KEY is not configured" on the node body.
The gotchas that actually bite: a blank prompt makes the node skip cleanly (returns a placeholder, no crash - but also no image, so don't mistake "ran fine" for "did something"), reference uploads can fail per-slot and show in status, and the max_images/num_images pair is easy to confuse - num_images is how many to render, max_images is the cap that unlocks multi-image mode. Set max_images back to 1 when you want a single result, or you'll keep getting variants you didn't ask for.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| image_size | COMBO | auto_2K | 8 options: auto_2K, auto_4K, square_hd, square, portrait_4_3, portrait_16_9, +2 |
| num_images | INT | 11–8 | — |
| max_images | INT | 11–8 | If >1, enables multi-image generation. |
| enable_safety_checker | BOOLEAN | true | — |
| seed | INT | 00–18446744073709550000 | 0 = let FAL choose. |
| image_1opt | IMAGE | Input image slot 1. Overrides image_batch when connected. | |
| image_2opt | IMAGE | Input image slot 2. Overrides image_batch when connected. | |
| image_3opt | IMAGE | Input image slot 3. Overrides image_batch when connected. | |
| image_4opt | IMAGE | Input image slot 4. Overrides image_batch when connected. | |
| image_5opt | IMAGE | Input image slot 5. Overrides image_batch when connected. | |
| image_6opt | IMAGE | Input image slot 6. Overrides image_batch when connected. | |
| image_7opt | IMAGE | Input image slot 7. Overrides image_batch when connected. | |
| image_8opt | IMAGE | Input image slot 8. Overrides image_batch when connected. | |
| image_9opt | IMAGE | Input image slot 9. Overrides image_batch when connected. | |
| image_10opt | IMAGE | Input image slot 10. Overrides image_batch when connected. | |
| image_batchopt | IMAGE | Optional IMAGE batch (capped at 10 frames). Ignored if any image_N slot is connected. | |
| sync_modeopt | BOOLEAN | false | If True, FAL returns images as data URIs instead of public URLs. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| image_urls | STRING | — |
| image_count | INT | — |
| seed | INT | — |
| status | STRING | — |