Nodes/Comfyui-zhenzhen/zhenzhen-qwen-image-global-2.1(文生/图像编辑)
ComfyUI Node

zhenzhen-qwen-image-global-2.1(文生/图像编辑)

Using the Qwen image model you can't download

By T8mars·Created about a year ago·Updated 3 days ago· 749
zhenzhen-qwen-image-global-2.1(文生/图像编辑)
  • image1
  • image2
  • image3
  • image4
  • image5
  • image6
  • image7
  • image8
  • image9
  • image10
  • api_config
  • image
  • image_url
  • task_id
  • response
◄prompt►
◄resolution2k►
◄ratio3:4►
◄seed-1►
◄skip_errorfalse►

Here's the thing about the Qwen-Image family: the part everyone actually uses is the open part. Qwen-Image-Edit is the default open instruction editor, Apache 2.0, endless LoRAs, no licence drama. Then Qwen-Image-2.0 showed up in February 2026 as a 7B unified generation-and-editing model and launched API-only, no weights. So if you want the 2.x line, you are calling somebody's endpoint. That's what this node is for.

zhenzhen-qwen-image-global-2.1(文生/图像编辑) (T8Zhenzhen_Qwen_Image_Global_21_LowPrice) calls the qwen-image-global-2.1 model through Zhenzhen's low-price channel: text-to-image, or image editing with up to ten reference images, at 1k / 2k / 4k. It runs nothing on your GPU.

Why you'd reach for it

Three honest reasons. You don't have the VRAM - the open 20B base is admired far more than it's run. You want the newer line, which has no weights to install no matter how much VRAM you own. Or you want an editing step cheaply inside an otherwise local graph: relight this, restyle this, then keep working locally.

Where it is not the tool: surgical edits. The Edit line re-emits the whole frame, so pixels nobody asked about move and faces drift across a chain of edits - and this node gives you no mask input. Bake the mask into the image you upload, or accept the drift. For "change one thing and leave the rest alone," a local masked workflow still wins.

How it works

Plain, boring, reliable HTTP. Your prompt, resolution and ratio go into a payload shaped like this:

{"model": "qwen-image-global-2.1",
 "prompt": "...",
 "metadata": {"ratio": "3:4", "resolution": "2k", "seed": 12345},
 "images": ["https://.../uploaded.png", ...]}

With no images connected it's text-to-image and the images key is simply absent. Connect any of image1 … image10 and each one is PNG-encoded, uploaded, and appended in index order - that's the editing path. Then it submits the task, polls with a progress bar, grabs the first URL from the result, downloads it, and returns an IMAGE. There's an image_url, the raw task_id and response alongside it, so you can chase a job on the website if ComfyUI times out first. Note what's missing: no num_images. One run, one image - which is why the pack ships a concurrent submit twin for this node.

The inputs that matter

  • prompt - required, multiline, and it really must not be empty: the node validates strictly and refuses a blank prompt.
  • resolution - 1k, 2k, 4k, default 2k. And ratio - 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9, default 3:4. Those eight are the whole list; there's no "custom" escape hatch here like the sibling nodes have.
  • image1 … image10 - the editing references, all optional, consumed in order. Each socket must carry exactly one image. Feed one of them a batch of four and the node errors with image1 must contain exactly one IMAGE. If you have a batch, split it.
  • seed - -1 default. The tooltip is precise: -1 lets the API pick randomly, and 0 is a valid fixed seed, so it does get sent. -1 means every run is a fresh paid render; a fixed seed with an unchanged prompt means ComfyUI may just hand you the cached image back.
  • api_config - the ZHENZHEN_SEEDANCE2_CONFIG socket from the pack's Settings node. Optional only in the "you can use env vars instead" sense: no key wired and no SEEDANCE_API_KEY set, and the node stops with a clear message.
  • skip_error - flip it on and a failure returns a 512×512 placeholder image plus a JSON error blob in response instead of killing the graph. Useful when it's slot six of ten and you don't want to lose the batch.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-zhenzhen
# or search "Comfyui-zhenzhen" in ComfyUI Manager, then restart

No model files, no checkpoints, no chatgpt-key-on-the-side. ComfyUI Manager installs the pack's requirements.txt for you (aiohttp, requests, Pillow, numpy, opencv-python and a few more). You need an API key from Zhenzhen's shop - domestic api.seedance.nz, overseas ai.t8star.org - and the pack's own ApiKey JS button is the fastest route to where it goes.

Where people get burned

Region and network. It's an overseas endpoint, and the README's standing notice is that the site needs a working VPN (its words: TUN mode, plus turning off aggressive local firewalls) or you'll just get connection and 443 errors. The code helps where it can: result downloads get a 120-second minimum timeout, and a stale proxy env var that breaks the CDN connection triggers a retry through a session that ignores environment proxies.

Don't trust the pack README for field docs. It's essentially a Chinese changelog with store links and no install section, so the authoritative list of inputs is the node itself - the tooltips in its schema, which is what this article is drawn from.

Categoryzhenzhen/Seedance2 Low Price

Inputs (16)

NameTypeDefaultDescription
promptSTRING—
resolutionCOMBO2k3 options: 1k, 2k, 4k
ratioCOMBO3:48 options: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, +2
seedINT-1-1–9007199254740991-1 uses a random API seed; 0 is a valid fixed seed.
image1optIMAGE—
image2optIMAGE—
image3optIMAGE—
image4optIMAGE—
image5optIMAGE—
image6optIMAGE—
image7optIMAGE—
image8optIMAGE—
image9optIMAGE—
image10optIMAGE—
api_configoptZHENZHEN_SEEDANCE2_CONFIG—
skip_erroroptBOOLEANfalse—

Outputs (4)

NameTypeDescription
imageIMAGE—
image_urlSTRING—
task_idSTRING—
responseSTRING—