Nodes/PopNow/Wan 2.7 · Edit
ComfyUI Node

Wan 2.7 · Edit

Thinks first, then hands you four images

By popnow-ai·Created 23 days ago·Updated 7 days ago· 0
Wan 2.7 · Edit
  • image_urls
  • images
  • task id
◄prompt►
◄bounding_boxes►
◄aspect_ratiomodel default►
◄num_outputs1►
◄resolution1k►
◄color_palette►
◄seed0►

Wan 2.7 was not a popular release. The biggest thread about it in the corpus is 67 points of dunking - "Its shit tbh, compared to other closed source models" - and the one substantive comparison anyone ran (against HappyHorse, Veo 3.1 and Seedance on eight prompts) landed on "mixed": cleanest small-detail textures of the four on close-ups, but pose discontinuity when characters move hard.

Now read that finding again, because it explains this node. The place Wan 2.7 actually holds up is still images and slow, detailed work. Which is exactly what an edit node does. At 4.5 credits ($0.045) an image, with up to four outputs per prompt and a JSON colour palette for art direction, this is the most defensible use of the 2.7 family I can see.

It's also, like everything above Wan 2.2, closed-weight and API-only. No download, no local checkpoint, no "Wan 2.7 open source" guide that isn't lying to you.

How it works

The node is built from the model's own schema, so its widgets are the endpoint's real fields. image_urls is an autogrow socket - connect one source image, then another appears. Each image is uploaded when you queue. The run is quoted before credits are held, submitted with an idempotency key, polled with live progress on the node, and the results come back as a batched IMAGE (all four at once if you ask for four).

The summary says the model "thinks through the composition" before drawing. Whether that's literally a reasoning pass or marketing for a better-conditioned sampler, the observable behaviour is what matters: it tends to respect the instruction as a whole sentence rather than keyword-matching it, which is why the prompt wants to describe the image you want back, not just the delta.

The inputs that matter

prompt - describe the result: subject, composition, style, lighting. "Change the jacket to red" is a weaker instruction than "the same person, same pose, red wool jacket, same window light".

image_urls - your sources. Autogrow, so multi-reference edits are a matter of clicking another socket on. Order matters, because the prompt refers to them positionally.

Then the two fields nobody touches and everybody should:

  • bounding_boxes - a JSON string of rectangles in pixels from the top-left of each reference image, up to two per image. This is masked editing without a mask node: mark the region and the model treats it as the area to work on.
  • color_palette - JSON, 3 to 10 colours with optional percentage shares. It's the closest thing to art direction this pack offers, and for product or brand work it's genuinely useful.

resolution gives 1k or 2k; aspect_ratio defaults to model default, which follows the proportions of the last source image. num_outputs goes 1 to 4, billed per image returned - so four outputs is four images of cost, not one.

Outputs: images (a batch) and task id.

Installing it

Manager → search PopNow → Install → restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui

Add a key from popnow.ai/api/console/keys in Settings > PopNow, or export POPNOW_API_KEY, then restart so the catalog loads. No checkpoints, no ControlNets, no Python deps beyond ComfyUI's own. If you still have custom_nodes/popnow_api.py from the single-file era, remove it.

Where people get burned

The bounding_boxes and color_palette widgets are string fields expecting JSON arrays. They fail loudly if you paste malformed JSON, and if you're generating those values programmatically you'll want to build the string in a small node rather than by hand.

Batching surprises people: num_outputs 4 returns a four-image batch on one socket, which then flows into a Save Image and writes four files. That's usually what you want. It's four times the credits too.

Error-wise: 40201 = credits, 40004 = unsupported combination, 400 names a rejected field. Failed or refused runs are refunded. And interrupting a queue doesn't cancel the server-side task - it still completes and settles.

CategoryPopNow/Image/Alibaba

Inputs (8)

NameTypeDefaultDescription
promptSTRINGDescribe the image to produce from the source: subject, composition, style, and lighting.
image_urlsCOMFY_AUTOGROW_V3Source images that you are authorised to process.
bounding_boxesSTRINGRectangles marking the areas to edit, in pixels from the top-left corner of the reference image each one belongs to. Up to 2 per image. JSON. A list of objects with "image_index", "x1", "x2", "y1", "y2".
aspect_ratioCOMBOmodel defaultAspect ratio of the generated image. Omit it to follow the proportions of the last source image.
num_outputsINT11–4How many images to generate in one run.
resolutionCOMBO1kOutput resolution tier. With aspect_ratio omitted, the output follows the last source image's proportions at this tier.
color_paletteSTRINGCustom colour theme: 3 to 10 colours, each with an optional share of the image in percent. Leave the shares empty to split them evenly. JSON. A list of objects with "hex", "ratio"?.
seedINT00–2147483647Same seed and settings, same result. Set 'control after generate' to randomize to get a new result on every run; every run is billed.

Outputs (2)

NameTypeDescription
imagesIMAGE—
task idSTRINGThe PopNow task id, for the API console logs or support.