Seedream 4.0 Edit (fal)
ByteDance's multi-image 4K editor in ComfyUI
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_8
- image_9
- image_10
- IMAGE
Seedream is ByteDance's image line, and like everything ByteDance actually charges for, it's API-only - no weights, no local checkpoint, no chance of loading it with a normal Load Checkpoint node. ByteDance runs a strict two-track posture: the components (SDXL-Lightning, PuLID, Depth Anything) ship open and become load-bearing infrastructure, while the products - Seedream for image, Seedance for video - stay closed on the API. If you want Seedream 4.0's editor in a ComfyUI graph, a bridge like this is the only route.
What makes the "Edit" endpoint interesting is that it eats up to ten input images and outputs up to 4K. That's a compositor as much as an editor: pull a subject from one shot, a background from another, a style reference from a third, and describe how they combine. It's the reach-for-it node when you're merging several real images into one clean, high-res result rather than editing a single picture.
What it actually does
Your images and prompt go to fal.ai, fal runs Seedream 4.0 Edit, and you get a native IMAGE back - no VRAM, no downloads, billed per generation. The multi-image conditioning is the point: the model reasons across all the references you feed it, which is where the high-resolution compositing quality comes from.
The inputs that matter
- prompt (required): describe the composite/edit - what comes from where, and the final scene.
- image_1 (required): your primary/anchor image.
- image_2 … image_10 (optional): additional references. Wire in as many as the job needs.
- image_size: a preset or
custom; oncustom, thewidth/heightfields drive it - and note the defaults are big (3840×2160), which is the whole selling point. - num_images: 1–6 outputs per run, each billed.
There's a seed (-1 random), max_images, and safety/sync_mode toggles; defaults are fine. The single output is a native IMAGE - straight into Save Image, a preview, or downstream nodes.
Installing it
ComfyUI Manager → search ComfyUI-fal-API → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/gokayfem/ComfyUI-fal-API.git
cd ComfyUI-fal-API
pip install -r requirements.txt
Restart ComfyUI. No model file in models/; you need fal-client and a fal API key - config.ini under [API], or the FAL_KEY env var.
Where people get burned
Two Seedream-specific things. First, resolution drives cost hard - a 4K, six-image output is at the top of the bill, so prototype the composition at a smaller image_size and only crank it once the layout's right. Second, more input images isn't automatically better: feed it ten conflicting references and you get mush. Give it the two or three that actually matter and describe the relationship clearly.
The rest is standard: no FAL_KEY, no output; and if a run errors, read fal's real message - content-policy refusals and validation issues both come through as readable text rather than a silent blank. Identical calls are served free from the pack's cache, so any change is a fresh charge.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| image_1 | IMAGE | — | |
| image_size | COMBO | square_hd | 7 options: square_hd, square, portrait_4_3, portrait_16_9, landscape_4_3, landscape_16_9, +1 |
| width | INT | 38401024–4096 | — |
| height | INT | 21601024–4096 | — |
| image_2opt | IMAGE | — | |
| image_3opt | IMAGE | — | |
| image_4opt | IMAGE | — | |
| image_5opt | IMAGE | — | |
| image_6opt | IMAGE | — | |
| image_7opt | IMAGE | — | |
| image_8opt | IMAGE | — | |
| image_9opt | IMAGE | — | |
| image_10opt | IMAGE | — | |
| num_imagesopt | INT | 11–6 | — |
| max_imagesopt | INT | 11–6 | — |
| enable_safety_checkeropt | BOOLEAN | true | — |
| sync_modeopt | BOOLEAN | false | — |
| seedopt | INT | -1-1–4294967295 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |