FAL SeeDream4 Edit (fal.ai)
SeeDream 4 image editing, via fal and inside your graph
- image
- images
- description
SeeDream 4 is the previous ByteDance flagship, and while 4.5 gets the hype, v4 still does one thing many people care about: instruction-based image editing that actually listens. This node calls fal's fal-ai/bytedance/seedream/v4/edit endpoint - give it a source image and a sentence like "change the car to red, keep the lighting," and it re-renders the image to match.
It sits in a crowded lane. Nano Banana edits, Qwen-Image-Edit, Flux Kontext - the hosted edit space is packed. What SeeDream 4 brings to that party is ByteDance's consistency: the model tends to hold the parts of the frame you didn't mention more steady than some rivals. Whether that holds for your specific images is something you'll want to A/B test, because these models vary by subject matter more than by benchmark.
How it works
Mechanically it's the same pattern as the other fal nodes in this pack: your IMAGE batch gets split into frames, each base64-encoded as a data URI, and sent to the v4 edit endpoint with your prompt, size, seed, and output count. Results come back and are repacked into a ComfyUI IMAGE tensor.
Note the image_size selector is purely a UI convenience - the source is explicit that only width and height are actually passed to the API. So if you set image_size to square_hd but leave width/height at the default 1024×1024, you get 1024×1024. Set the numbers, not the label.
The inputs that matter
prompt- the edit instruction. Specific is better; "add a cup of coffee on the desk" beats "add a cup."image- what to edit. Batch input works; each frame becomes its own edit request.image_size,width,height- pick a preset if you like, but width/height are what actually ship. Range is 512 to 4096.seed- defaults to 0 (fixed, not random). Set a value to reproduce a result; change it to explore variations.num_images- 1 to 8 outputs per input.sync_mode- false by default; leave it.
Outputs: images (IMAGE) and description (STRING) - the endpoint can return a text caption of what it did, same as the fal Nano Banana node.
Installing it
Everything in this pack installs together:
cd ComfyUI/custom_nodes
git clone https://github.com/pvlprk/comfyui-pvl-api-nodes
Restart ComfyUI and set FAL_KEY in the environment before launching. No model downloads - SeeDream 4 is closed and runs on fal's servers; you're renting it.
Common issues
The image_size-vs-width/height disconnect is the trap here - plenty of people set square_hd and wonder why they're getting 1024×1024 instead of a "better" size. It's not broken; the preset just doesn't propagate. Second, remember every generation costs money on fal's account, and num_images multiplies that; an 8-way batch is 8 billings. Third, the edit-node failure mode: if your source image already has baked-in JPEG artifacts or a watermark, SeeDream tends to amplify rather than fix them - feed it the cleanest source you have. And as with every node in this pack, the image leaves your machine, so don't send anything you need to keep private.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| image | IMAGE | — | |
| image_size | COMBO | square_hd | 7 options: square_hd, square, portrait_3_4, portrait_9_16, landscape_4_3, landscape_16_9, +1 |
| width | INT | 1024512–4096 | — |
| height | INT | 1024512–4096 | — |
| seed | INT | 00–2147483647 | — |
| num_images | INT | 11–8 | — |
| sync_mode | BOOLEAN | false | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| description | STRING | — |