Nodes/KIE.ai Nodes Next/Wan 2.7 Image
ComfyUI Node

Wan 2.7 Image

A video model doing your stills, bounding boxes included

By felipederosilva·Created about a month ago·Updated a day ago· 3
Wan 2.7 Image
  • input_urls
  • image
  • url
  • all_urls_json
  • task_id
  • raw_json
  • credits_consumed
  • credits_left
◄promptTransform the food photo by replacing the marked ingredients with sliced red chili pieces while preserving the bowl, lighting, steam, camera angle, and overall realism.►
◄aspect_ratio1:1►
◄enable_sequentialfalse►
◄n4►
◄resolution2K►
◄thinking_modefalse►
◄color_palette[]►
◄bbox_list[ [] ]►
◄watermarkfalse►
◄seed0►
◄nsfw_checkerfalse►
◄timeout_seconds1200►
◄callback_url►

The Wan family was always secretly good at stills - people have been running single frames out of Wan 2.1 and 2.2 for image generation since 2025, and the community's summary was that video training gives the model a better feel for 3D space than a photo model has. Wan 2.7 Image is the same idea as a dedicated, closed-weight endpoint: text-to-image, plus editing when you give it an image.

Two things make it more than a novelty in ComfyUI. It generates up to four images per call (twelve in sequential mode), and it takes a bounding-box list so you can point at the part you want changed instead of describing it and hoping.

How it works

prompt is the only required field. input_urls is an optional IMAGE socket - feed it images and the node becomes an editor, leave it empty and it's text-to-image. The node uploads anything you connect, POSTs to KIE's marketplace /api/v1/jobs/createTask with model wan/2-7-image, polls /api/v1/jobs/recordInfo until the job resolves, then downloads the result image(s), archives them under ComfyUI/output/KIE-Results/images, and returns a ComfyUI IMAGE tensor.

Inputs that matter

  • prompt - up to 5000 characters.
  • input_urls - the source image(s) for editing. Leave it empty for pure text-to-image.
  • n - how many images. Default 4; the range is 1-4 normally and 1-12 when enable_sequential is on. Note the default: run once and you pay for four. Set it to 1 while testing.
  • resolution - 2K (default), 1K, 4K. The cost gradient is steep and non-linear.
  • aspect_ratio - 1:1, 16:9, 4:3, 21:9, 3:4, 9:16, 8:1, 1:8. Only used when there's no image input.
  • bbox_list - JSON, one inner list per input image, max two boxes each, each box [x1, y1, x2, y2]. This is how you say "change this region" precisely.
  • enable_sequential - off by default; on, it does sequential/group image sets.
  • thinking_mode - off. Only meaningful when enable_sequential is off and input_urls is empty; the schema says the frontend disables it otherwise.
  • color_palette - JSON, 3-10 colours (8 recommended), only when sequential mode is off. A quiet way to force a consistent look across a set.
  • watermark (off), seed, plus nsfw_checker, timeout_seconds, callback_url - the pack's standard trio.

Outputs

image is the deliverable - a normal IMAGE tensor, so SaveImage, PreviewImage, an upscaler, or a batch-splitter all work as usual. (Multiple results come back as a batch, which is what all_urls_json is for when you need to see what was actually returned.) Beside it: url, task_id, raw_json, and credits_consumed / credits_left, with the on-node receipt after each run.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
cd ComfyUI-KIE-Nodes-Next && pip install -r requirements.txt

Restart ComfyUI and look under KIE Next / Image / Wan. The pack ships no weights - requests, Pillow, numpy and PyYAML is it, since the model is entirely server-side.

Key, once: Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key; it validates first, then shows ✅ CONNECTED and a masked fingerprint. KIE_API_KEY for headless installs, and it takes priority. KIE is a pre-paid credit marketplace with no subscription.

Common issues

Four images when you wanted one. n defaults to 4. Set it explicitly.

The edit ignored your bounding box. bbox_list is JSON, and the outer list has to line up with input_urls - one entry per image, [x1,y1,x2,y2] per box, two boxes max. Malformed JSON is the usual culprit (the node will tell you it isn't valid JSON).

aspect_ratio does nothing. It only applies with no image input; an image sets the ratio.

4K takes a long time and costs a lot. Draft at 1K or 2K and only finish the winner at 4K.

thinking_mode seems ignored. By design - it only applies to plain text-to-image with sequential mode off.

Nothing saved to disk. It's an IMAGE output; wire it to a save node.

CategoryKIE Next/Image/Wan

Inputs (14)

NameTypeDefaultDescription
promptSTRINGTransform the food photo by replacing the marked ingredients with sliced red chili pieces while preserving the bowl, lighting, steam, camera angle, and overall realism.Prompt for image generation or editing. This field supports both Chinese and English, with a maximum length of 5000 characters as per Alibaba Cloud documentation.
input_urlsoptIMAGE—
aspect_ratiooptCOMBO1:1(Optional) Output aspect ratio when no image input is provided.
enable_sequentialoptBOOLEANfalseWhether to enable sequential/group image mode. Default is false.
noptINT4-2147483648–2147483647Number of images to generate. Range is 1-4 when `enable_sequential=false` (default: 4); range is 1-12 when `enable_sequential=true` (default: 12).
resolutionoptCOMBO2KOutput resolution. The current project uses `resolution` as a wrapper field corresponding to the underlying resolution parameter.
thinking_modeoptBOOLEANfalseWhether to enable thinking mode. Only available when `enable_sequential=false` and `input_urls` is empty; the frontend will automatically disable it in other cases.
color_paletteoptSTRING[](Optional) Custom color theme. Only available when `enable_sequential=false`. Requires 3-10 colors, 8 recommended.
bbox_listoptSTRING[ [] ](Optional) Interactive editing bounding box areas. The outer list length should match `input_urls`; maximum 2 boxes per image; single box format is `[x1, y1, x2, y2]`.
watermarkoptBOOLEANfalseWhether to add watermark.
seedoptINT00–2147483647Random seed, range 0-2147483647.
nsfw_checkeroptBOOLEANfalseDefaults 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—