Nodes/KIE.ai Nodes Next/Seedream4.0 - Edit
ComfyUI Node

Seedream4.0 - Edit

Give it your image and a sentence, keep the character

By felipederosilva·Created about a month ago·Updated a day ago· 3
Seedream4.0 - Edit
  • image_urls
  • image
  • url
  • all_urls_json
  • task_id
  • raw_json
  • credits_consumed
  • credits_left
◄promptRefer 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.►
◄image_sizesquare_hd►
◄image_resolution1K►
◄max_images1.00►
◄seed80960659►
◄nsfw_checkertrue►
◄timeout_seconds1200►
◄callback_url►

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.

CategoryKIE Next/Image/ByteDance/Seedream

Inputs (9)

NameTypeDefaultDescription
promptSTRINGRefer 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_urlsIMAGE—
image_sizeoptCOMBOsquare_hdThe size of the generated image.
image_resolutionoptCOMBO1KFinal 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_imagesoptFLOAT1.001–6Set 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)
seedoptINT80960659-2147483648–2147483647Random seed to control the stochasticity of image generation.
nsfw_checkeroptBOOLEANtrueDefaults 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_secondsoptINT120030–7200—
callback_urloptSTRINGOptional KIE callback URL. Leave empty for normal ComfyUI use.

Outputs (7)

NameTypeDescription
imageIMAGE—
urlSTRING—
all_urls_jsonSTRING—
task_idSTRING—
raw_jsonSTRING—
credits_consumedFLOAT—
credits_leftFLOAT—