Seedream4.0 - Edit
Give it your image and a sentence, keep the character
- image_urls
- image
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
This is the most useful node in the Seedream family, and the reason is a shift that happened across the whole field. For years, keeping a character consistent meant encoding a face and injecting it at generation time - IP-Adapter, FaceID, InstantID, PuLID, a LoRA on top, weight tuning between 0.3 and 0.6. Then the community figured out the cheaper move: don't regenerate the character, edit the image you already approved. The model never re-invents the identity because it's looking at it while it works. Seedream 4.0 Edit is the hosted version of exactly that, and it's what the 2026 consistency workflows point at.
So the mental model is different from every other image node here. You're not writing a description of a picture. You're giving instructions about an existing one.
Inputs, and one of them is required
image_urls is required, and it's an IMAGE socket - connect one image or a batch, and the pack uploads them to KIE for you. Multiple inputs are the interesting case: the docs' own prompt example refers to a logo and asks for five branded items - a bag, a hat, a carton, a wristband and a lanyard - arranged in one showcase. That's reference-driven composition, and it's how you get a product from one asset and a scene from another.
prompt is the instruction, multiline and capped at 5,000 characters by the docs. Write it as a direction, not a description: "keep the face and hair exactly, change the wardrobe to a winter coat and move her to a snowy street at dusk" beats any list of adjectives, because the whole value of an edit model is that it preserves what you didn't mention.
image_size gives you nine aspect options (square_hd, square, portrait_4_3, portrait_3_2, portrait_16_9, landscape_4_3, landscape_3_2, landscape_16_9, landscape_21_9), and image_resolution sets 1K, 2K or 4K. As on the text-to-image node, aspect and scale multiply - 4:3 at 4K is 4096 × 3072. max_images caps output count at 1–6, with the same warning in the author's tooltip: the run composes the set in one pass, so you must state the number in the prompt too.
seed defaults to a fixed value here rather than 0, which is convenient for iterating an edit. nsfw_checker defaults to true, and turning it off disables KIE's check - ByteDance's model still has opinions of its own.
Outputs: image, url, all_urls_json, task_id, raw_json, credits_consumed, credits_left.
The character-consistency workflow this unlocks
Three nodes in this pack snap together into something genuinely coherent, and it's worth setting up once.
Approve a portrait. Save it as a versioned Character Pack. Load it with KIE • Load Character Pack, pull one view out of it with KIE • Character Reference - that gives you both the reference_image and a character_prompt carrying your identity description, visual style and continuity rules - then wire the image into this node's image_urls and the prompt into prompt, adding whatever scene change you want. New pose, new outfit, new location, same face, because the model is transforming your approved image instead of casting a new one from text.
Two honest caveats. First, no reference image is a universal identity lock: the same reference through a loosely-conditioned video endpoint will give you a cousin, not the character, which is why KIE • Character Consistency Test Plan exists - eight fixed cases so you find out where a given model breaks before you build a campaign on it. Second, faces are the point of this workflow and uploading a real person's likeness is a legal question, not just a stylistic one. The pack's save node has a real-person flag and requires you to confirm permission; use it.
Install
Manager → search KIE.ai Nodes Next (publisher id felipeosilva) → install. If Manager finds nothing - registry publishing is still described as prepared in the README - do it by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
pip install -r ComfyUI-KIE-Nodes-Next/requirements.txt
Restart ComfyUI. Dependencies are requests, Pillow, numpy, PyYAML; there are no model files, because the model isn't on your machine. Windows users can run the .vbs installer in dist/. Then set the key once under Settings → KIE.ai Nodes Next → Connection - validated before it replaces a saved key, masked in the UI, never written into workflow JSON. KIE_API_KEY wins on servers.
Gotchas
Say what to preserve. Edit models drift wherever your instruction is silent. If the identity matters, name it in the prompt as well as attaching the reference; the pack's Character Reference node already builds that sentence for you.
Cost and privacy are the standing price. Every edit is metered, and your source images - including the faces - go to a third party. Local instruction-edit models exist and are the reason this technique spread, so if the workload is private, that's the other path.
Fields look wrong for the node? Run KIE • Refresh Model Catalog. Node definitions come from KIE's live docs, so a doc revision shows up as changed widgets.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Refer to this logo and create a single visual showcase for an outdoor sports brand named ‘KIE AI’. Display five branded items together in one image: a packaging bag, a hat, a carton box, a wristband, and a lanyard. Use blue as the main visual color, with a fun, simple, and modern style. | The text prompt used to edit the image (Max length: 5000 characters) |
| image_urls | IMAGE | — | |
| image_sizeopt | COMBO | square_hd | The size of the generated image. |
| image_resolutionopt | COMBO | 1K | Final image resolution is determined by combining image_size (aspect ratio) and image_resolution (pixel scale). For example, choosing 4:3 + 4K gives 4096 × 3072px |
| max_imagesopt | FLOAT | 1.001–6 | Set this value (1–6) to cap how many images a single generation run can produce in one set—because they’re created in one shot rather than separate requests, you must also state the exact number you want in the prompt so both settings align. (Min: 1, Max: 6, Step: 1) (step: 1) |
| seedopt | INT | 80960659-2147483648–2147483647 | Random seed to control the stochasticity of image generation. |
| nsfw_checkeropt | BOOLEAN | true | Defaults to false. You can set it to false based on your needs. If set to false, our content filtering will be disabled, and all results will be returned directly by the model itself. Note: There is no guarantee that everything can be filtered out; if you are not satisfied with the results, you will need to make your own arrangements. |
| timeout_secondsopt | INT | 120030–7200 | — |
| callback_urlopt | STRING | Optional KIE callback URL. Leave empty for normal ComfyUI use. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| url | STRING | — |
| all_urls_json | STRING | — |
| task_id | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| credits_left | FLOAT | — |