Qwen Image Global 2.1 文生图/图像编辑
Alibaba's editor you can only call, never download
- image1
- image2
- image3
- image4
- image5
- image6
- image7
- image8
- image9
- image10
- api_config
- image
- image_url
- task_id
- response
What it is, and the annoying bit
The Qwen-Image family is why a lot of people stopped fighting Flux Kontext. The 20B base and the Edit line that followed (2509, then 2511) became the default open instruction-editing stack, all of it Apache 2.0 - which matters more than it sounds, because Apache 2.0 carries no anti-circumvention clause and so none of the takedown machinery aimed at NSFW fine-tunes. That's the moat.
Then February 2026: Qwen-Image-2.0 shipped as a 7B unified generate-plus-edit model, API-only, no weights, and the top comment on the announcement was a two-word review - "Not open, not interested" (+88). Qwen Image Global 2.1 is the follow-on in that closed line. You can't download it, only call it, which is precisely why this node exists.
So it's the API on-ramp for a model with no local substitute. If what you want is open weights you can LoRA and run offline, go use Qwen-Image-Edit locally and keep your money.
How it works
Single-model client node - qwen-image-global-2.1 - with no model dropdown. The mechanism is the standard four steps the pack shares:
- Any connected
image1-image10reference is converted to PNG and uploaded. - A payload goes to the image endpoint:
model,prompt,metadata: {ratio, resolution},imagesonly if you connected references,metadata.seedonly if the seed is 0 or higher. - The task is polled until done.
- The result downloads and returns as a ComfyUI
IMAGE.
The behaviour that trips people up: the node picks your mode for you. No references connected, it's text-to-image. Connect any of image1 through image10 and it becomes an editing request, in wired order. No mode switch, and no prompt-only path once a reference is attached.
The inputs that matter
prompt- required, multiline, and strictly validated. Empty prompt is an error, not a default.resolution-1k,2k(default),4k.ratio- eight options:1:1,2:3,3:2,3:4(the default),4:3,9:16,16:9,21:9. Note the default is portrait3:4; if your first test comes back tall and you wanted landscape, that's why.seed- this one is real, not cosmetic.-1omits the seed from the request entirely,0is a valid seed (a surprisingly common off-by-one), and any value ≥ 0 is sent. It's also your ComfyUI cache control:fixedreuses the cached image when nothing else changed, whilerandomize/increment/decrementfires a new call - and each call is billable.image1…image10- up to ten references, each one image. Batch a node's output into any of these and validation stops you; the pack requires exactly one image per socket.skip_error- swaps a failure for a placeholder image so a batch run keeps going.
Outputs: image (wire to Preview Image / Save Image), image_url, task_id, response.
One image per run. There's no n field here - if you want three candidates, run the node three times with different seeds, or reach for the concurrent submit version and let the pool do it.
Install
comfy node install seedance
or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/ComfyUI_Seedance.git
cd ..
python -m pip install -r custom_nodes/ComfyUI_Seedance/requirements.txt
The only dependency is requests. Restart ComfyUI; everything shows up under the Seedance category. Then add a Seedance API Config node (base_url = https://api.seedance.nz, plus your key) and connect api_config - or set SEEDANCE_API_KEY, or write a config/.env. examples/qwen-image-global-2.1文生图.json and ...图像编辑.json are drop-in starters with the key left blank.
Where people get burned
Nothing runs without the key, and a missing one surfaces as a config error rather than a nice message - the number one issue across this whole pack. Your references get uploaded. Ten PNGs leave your machine for every edit call; the pack is explicit that it sends prompts and connected media to the configured endpoint. Read the security section of external-api-nodes.md once - this category already shipped malware once, and the honest defence is "read what the pack does" plus "don't send what you can't afford to leak."
Then the mundane stuff. Custom nodes must live at ComfyUI/custom_nodes/ComfyUI_Seedance or they silently never load. On portable Windows builds with a busted certificate store you'll get TLS errors - pip install -U requests certifi, or point SEEDANCE_CA_BUNDLE at a CA file. Result links expire. And every execution is a paid call, which is exactly why fixed seed plus ComfyUI's cache is your friend while iterating on a prompt.
The take
For a greenfield text-to-image or a ten-reference composite edit, this is a clean node - three knobs and a prompt, no mode confusion, correct seed semantics. Just don't mistake it for the Qwen you can own. The open 20B lineage is still sitting on HuggingFace, and for a lot of editing jobs it's the better trade.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| resolution | COMBO | 2k | 3 options: 1k, 2k, 4k |
| ratio | COMBO | 3:4 | 8 options: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, +2 |
| seed | INT | -1-1–9007199254740991 | -1 omits API seed; 0 is valid | -1 不发送种子,0 是有效种子。 Fixed reuses the cached result while all inputs stay unchanged; randomize/increment/decrement starts a new execution. | Fixed 在输入不变时复用缓存;随机、递增或递减会触发新任务。 |
| image1opt | IMAGE | Reference image 1/10 | 参考图 1/10 | |
| image2opt | IMAGE | Reference image 2/10 | 参考图 2/10 | |
| image3opt | IMAGE | Reference image 3/10 | 参考图 3/10 | |
| image4opt | IMAGE | Reference image 4/10 | 参考图 4/10 | |
| image5opt | IMAGE | Reference image 5/10 | 参考图 5/10 | |
| image6opt | IMAGE | Reference image 6/10 | 参考图 6/10 | |
| image7opt | IMAGE | Reference image 7/10 | 参考图 7/10 | |
| image8opt | IMAGE | Reference image 8/10 | 参考图 8/10 | |
| image9opt | IMAGE | Reference image 9/10 | 参考图 9/10 | |
| image10opt | IMAGE | Reference image 10/10 | 参考图 10/10 | |
| api_configopt | SEEDANCE_CONFIG | Connect Seedance API Config or use SEEDANCE_API_KEY. | |
| skip_erroropt | BOOLEAN | false | Return a placeholder on failure | 出错时输出占位图。 |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| image_url | STRING | — |
| task_id | STRING | — |
| response | STRING | — |