Nodes/ComfyUI-fal-API/Seedream 4.0 Edit (fal)
ComfyUI Node

Seedream 4.0 Edit (fal)

ByteDance's multi-image 4K editor in ComfyUI

By gokayfem·Created 2 years ago·Updated 12 days ago· 220
Seedream 4.0 Edit (fal)
  • image_1
  • image_2
  • image_3
  • image_4
  • image_5
  • image_6
  • image_7
  • image_8
  • image_9
  • image_10
  • IMAGE
◄prompt►
◄image_sizesquare_hd►
◄width3840►
◄height2160►
◄num_images1►
◄max_images1►
◄enable_safety_checkertrue►
◄sync_modefalse►
◄seed-1►

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; on custom, the width/height fields 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.

CategoryFAL/Image

Inputs (19)

NameTypeDefaultDescription
promptSTRING—
image_1IMAGE—
image_sizeCOMBOsquare_hd7 options: square_hd, square, portrait_4_3, portrait_16_9, landscape_4_3, landscape_16_9, +1
widthINT38401024–4096—
heightINT21601024–4096—
image_2optIMAGE—
image_3optIMAGE—
image_4optIMAGE—
image_5optIMAGE—
image_6optIMAGE—
image_7optIMAGE—
image_8optIMAGE—
image_9optIMAGE—
image_10optIMAGE—
num_imagesoptINT11–6—
max_imagesoptINT11–6—
enable_safety_checkeroptBOOLEANtrue—
sync_modeoptBOOLEANfalse—
seedoptINT-1-1–4294967295—

Outputs (1)

NameTypeDescription
IMAGEIMAGE—