Nodes/comfyui-qwen-image-edit-node/Wuli Qwen Image Edit 2.0
ComfyUI Node

Wuli Qwen Image Edit 2.0

The newest Qwen image model, without the 20B weights on your GPU

By panyicast·Created 5 months ago·Updated 5 months ago· 0
Wuli Qwen Image Edit 2.0
  • ref_image_1
  • ref_image_2
  • ref_image_3
  • ref_image_4
  • images
  • urls
  • record_id
api_token
prompt
negative_prompt
modeauto
model_nameQwen Image 2.0
aspect_ratio1:1
resolution2K
n1
optimize_prompttrue
seed-1
poll_interval3.0
timeout_seconds300

The name is a small lie and it's a good one: Wuli Qwen Image Edit 2.0 doesn't run Qwen Image 2.0 on your machine - it can't, because those weights don't exist for download. Qwen-Image-2.0 launched API-only in February 2026, and this node is your door into it from inside a ComfyUI graph. You type a prompt, optionally wire in up to four reference images, and the node talks to the Wuli platform (wuli.art), which hosts Qwen Image 2.0 and Qwen Image Turbo for you, then drops the finished images back into your workflow as a normal IMAGE tensor.

That makes this the cleanest possible example of the API-wrapper-node pattern: no GPU needed, no model download, no weights to quantize. If you've been watching the 20B Qwen-Edit line (2509, 2511) eat your VRAM, this is the "what if someone else ran it" version. It's a hosted service, though, so the usual tradeoffs come with it - per-call cost, your prompts and reference images leaving the machine, and a content filter you can't argue with. The node even has a REVIEW_FAILED status baked into its failure states, which tells you the platform reviews jobs server-side. Treat it as a tool for the model you can't run locally, not a replacement for local generation.

How it works

Peek at the source and the flow is short and honest: your reference images get encoded to PNG, uploaded to Wuli's object storage through a getUploadUrl call, then the node submits a generation task with your modelName, prompt, aspectRatio, and resolution. It polls the task status every poll_interval seconds until it hits SUCCEED, then tries to fetch a no-watermark URL for each result before downloading everything back into a batch tensor. Under the hood it's just urllib, PIL, and numpy - nothing that isn't already in ComfyUI.

Because generation happens on a remote server, the node blocks until the job finishes. The default timeout_seconds of 300 is plenty for a single image but tight for four 4K renders; if your queue times out, raise it toward the 1800 max rather than assuming it broke.

The inputs that actually matter

Most of the fields are self-explanatory, and only a few need real thought:

  • api_token - paste your Wuli key here, or leave it empty and set the WULI_API_TOKEN environment variable (the README's PowerShell example uses $env:WULI_API_TOKEN = "wuli-your-token"). No token, no run - the node raises immediately.
  • mode - auto is the sane default: no refs wired in means text-to-image, refs present means image-to-image. Force img2img if you want to guarantee it, but remember it errors without at least one ref_image.
  • ref_image_1ref_image_4 - the whole "edit" in the name. Wire in up to four images and Qwen 2.0 will treat your prompt as an instruction applied to them: restyle, edit, swap, combine. They're uploaded as-is, so size and number add latency.
  • model_name, aspect_ratio, resolution - model (2.0 or Turbo), the 1:1-to-21:9 ratio list, and 2K/4K output. 4K is the one that will cost you more and take longer.
  • n - 1 to 4 outputs per call.

Outputs: images (IMAGE, the batch to wire into a save/upscale/preview node), urls (one hosted URL per line, handy for logging), and record_id (the Wuli task id, useful if you need to chase something with their support).

Installing it

No model files, no pip dependencies - this is a self-contained wrapper. Either grab it from ComfyUI Manager (search "comfyui-qwen-image-edit-node") or:

cd ComfyUI/custom_nodes
git clone https://github.com/panyicast/comfyui-qwen-image-edit-node

Then restart ComfyUI. The README's alternate path is literally copying the folder in by hand, but the clone does the same job. Set your token, restart, and the node appears under the Wuli category.

Where people get burned

The setup is trivial; the gotchas are all about it being remote. Missing token is the most common first-run error - the api_token input and the env var are the only two ways, and an empty input isn't an override, it's a fallback. img2img with no refs is an instant error; auto sidesteps it. Timeouts - raise timeout_seconds before blaming anything else. And remember the moderation reality: a REVIEW_FAILED status means the platform rejected the job, and since the model is hosted, that's not something any local setting will fix. Wuli itself is a real but small player (a handful of threads on Reddit, best known for the team's Qwen turbo LoRAs), so if you want a zero-maintenance path to the newest Qwen image model and you have a token, this is the shortest one in ComfyUI - just keep the cloud tradeoffs in view.

CategoryWuli

Inputs (16)

NameTypeDefaultDescription
api_tokenSTRINGWuli API token. Leave empty to use WULI_API_TOKEN env var.
promptSTRING
negative_promptSTRING
modeCOMBOauto3 options: auto, txt2img, img2img
model_nameCOMBOQwen Image 2.02 options: Qwen Image 2.0, Qwen Image Turbo
aspect_ratioCOMBO1:19 options: 1:1, 4:3, 3:2, 16:9, 21:9, 3:4, +3
resolutionCOMBO2K2 options: 2K, 4K
nINT11–4
optimize_promptBOOLEANtrue
seedINT-1-1–2147483647-1 means random seed
poll_intervalFLOAT3.01–15
timeout_secondsINT30010–1800
ref_image_1optIMAGE
ref_image_2optIMAGE
ref_image_3optIMAGE
ref_image_4optIMAGE

Outputs (3)

NameTypeDescription
imagesIMAGE
urlsSTRING
record_idSTRING