🟣 Deploy on RunPod 🟡 Deploy on Vast.ai

QwenImageEdit21
The Only Workflow You Will Need
🎨 Wildcard Edits | Multi-Reference | GGUF Support
ComfyUI-QwenVL-Mod — Qwen Image Edit 2.1 with Wildcard-driven auto-prompting
🎯 What Is This?
A Qwen Image Edit 2.1 workflow pack built for reference-driven editing — swap faces, heads, outfits, poses, expressions, backgrounds and more using natural-language edit prompts pulled from a curated wildcard library.
The prompt pipeline:
WildcardProcessor.processed_text → QwenVL_Unified.prompt
QwenVL_Unified.RESPONSE → PixaromaShowText → TextEncodeQwenImage21.prompt
Load Image 1 / Load Image 2 → QwenVL_Unified + TextEncodeQwenImage21
🎲 Wildcard edits: type
__qwen21/sheet__and a full professional editing prompt appears — no prompt-writing skill needed🧠 QwenVL auto-enhance: the enabled QwenVL Unified node uses the dedicated
IMG › Qwen Editpreset to rewrite and polish the expanded edit instruction before it reaches the text encoder🖼️ Multi-reference:
<image1>and<image2>inside wildcards bind to the two connected images, in order💾 GGUF support: run the Qwen Image diffusion model in GGUF (Q8_0 → Q3_K_M) on low-VRAM GPUs or Apple Silicon
📦 Required Models
Drop into ComfyUI/models/ — pick one diffusion model, one text encoder, the VAE:
diffusion_models
qwen_image_2.1_bf16.safetensors — full quality
qwen_image_2.1_int8_convrot.safetensors — lighter
text_encoders
qwen3vl_8b_bf16.safetensors — full
qwen3vl_8b_int8_convrot.safetensors — lighter
qwen3vl_8b_w4a8.safetensors — smallest, low VRAM
vae
🐋 GGUF option (low VRAM / Mac)
From Abiray/Qwen-Image-2.1-GGUF — drop in models/diffusion_models/ and load with Unet Loader (GGUF):
Repo: Comfy-Org/Qwen-Image-2.1 · ModelScope mirror
loras (optional — for __qwen21/enhance__)
elusarcas-qwen2-1-detailer-v1.safetensors →
models/loras/— detail enhancement, creative upscale, photo restoration. Only ~80MB; add a Load LoRA node between the diffusion model loader and the sampler.
🎲 Wildcard Edit Library
Type __qwen21/<name>__ for a specific edit, or __qwen21/*__ for a random one. <image1> and <image2> are the two connected reference images, in order.
__qwen21/sheet__(1 img) — quick character sheet: front / side / back + headshot__qwen21/prosheet__(2 img) — pro reference sheet, image2 as extra detail ref__qwen21/newscene__(1 img) — subject into a new random scene (location wildcard)__qwen21/background__(2 img) — replace background of image1 with image2__qwen21/enhance__(1 img) — detail enhance / restore / creative upscale — pairs with the detailer LoRA (optional, see below)__qwen21/faceswap__(2 img) — face of image2 ← identity from image1__qwen21/headswap__(2 img) — head + hair of image2 ← head from image1__qwen21/eyeswap__(2 img) — eyes of image2 ← eyes from image1__qwen21/hairswap__(2 img) — hair of image2 ← hair from image1__qwen21/outfit__(2 img) — dress image1 subject with the outfit from image2__qwen21/pose__(2 img) — copy pose from image2 onto image1__qwen21/expression__(2 img) — copy expression from image2 onto image1__qwen21/multiedit__(1 img) — applies every edit you describe at once__qwen21/timeweather__(1 img) — change time/weather to what you describe__qwen21/removeobject__(1 img) — remove the object you name + inpaint__qwen21/insertobject__(1 img) — insert the object you describe__qwen21/textedit__(1 img) — replace visible text with yours__qwen21/novelview__(1 img) — camera angle you describe__qwen21/anime2real__(1 img) — anime → photorealistic human__qwen21/real2anime__(1 img) — photo → manhwa / webtoon illustration
How It Works
The WildcardProcessor node (TagForge) sits before the QwenVL enhancer
At queue time each
__wildcard__token is replaced by the matching entry fromwildcards/pmp/qwen21.yamlThe expanded text goes through QwenVL Unified →
PixaromaShowText→TextEncodeQwenImage21Different seed = different wildcard picks — pin the seed for reproducible results
⚠️ Keep QwenVL Unified enabled
The workflow ships with QwenVL Unified enabled and the dedicated IMG › Qwen Edit preset selected. The node receives the expanded wildcard instruction and both source images, then returns an edit prompt that preserves the <image1> / <image2> bindings for TextEncodeQwenImage21.
Do not bypass QwenVL Unified in this workflow. Because the node has IMAGE inputs and a STRING output, ComfyUI's generic bypass can forward an image tensor to PixaromaShowText instead of the generated text. If Show Text displays Tensor shape=(...), re-enable QwenVL Unified and confirm that IMG › Qwen Edit is selected.
The preset requires ComfyUI-QwenVL-Mod 2.9.8 or newer. Update to the current 2.10.2 release, restart ComfyUI completely, and refresh the browser if the preset is missing.
Tips
Image order matters: for faceswap/headswap/outfit, image1 is the source (identity/outfit), image2 is the target photo
Edits that need a target: for
removeobject,insertobject,textedit,novelview,timeweather,multiedit— describe what to change next to the wildcard, e.g.a red parked car, __qwen21/removeobject__Combine with text:
__qwen21/background__, dramatic moodworks fine — wildcards expand inlineAdd your own: drop a
.txtinComfyUI/models/wildcards/(one prompt per line) → becomes__filename__; YAML files support nested keys like__name/subkey__
Required Custom Nodes
ComfyUI-TagForge — WildcardProcessor + wildcard library: huchukato/ComfyUI-TagForge
ComfyUI-QwenVL-Mod 2.9.8+ (2.10.2 recommended) — QwenVL Unified enhancer node with the
IMG › Qwen Editpreset: huchukato/ComfyUI-QwenVL-ModComfyUI-GGUF (optional, for GGUF quants): city96/ComfyUI-GGUF
🌟 Why This Pack?
Zero prompt-writing: production-grade edit prompts selected with a single wildcard token
Identity-safe edits: prompts are written to preserve face, proportions and style across swaps
Flexible: BF16, INT8 ConvRot, W4A8 text encoder or full GGUF — scales from 24GB cards down to unified-memory Macs
Extensible: your own
.txt/.yamlwildcards plug straight in
📋 Credits
Qwen Image 2.1 — Qwen Team / Alibaba
GGUF quants — Abiray/Qwen-Image-2.1-GGUF
Base template — Comfy-Org official editing workflow
TagForge + QwenVL-Mod — huchukato
Built with ❤️ for the ComfyUI community
Description
v1.3 — T2I workflow + Edit cleanup
New:
- QwenImage21-T2I-Wildcards-Qwen3.5 — dedicated text-to-image workflow:
tag-style prompt → WildcardProcessor (pmp/* wildcards) → QwenVL prompt
enhancer with selectable style tags → Qwen Image 2.1. No input images
needed — wildcards and plain text both work.
Fixed / Improved:
- QwenImageEdit21 reworked — the generation stack now lives in a clean
subgraph; removed leftover scaffolding (ComfySwitch, Fast Groups
Bypasser, duplicate LoraLoader). The elusarcas detailer LoRA now loads
through a single LoraLoaderModelOnly.
- Corrected node wiring and model references in both workflows — the
wildcards, enhancer and detailer chain now patch and execute correctly
end-to-end.
Note: the QwenVL enhancer is active by default in both workflows — in
the Edit workflow you can still bypass it via the group switch to send
edit wildcards to the encoder verbatim.
FAQ
Comments (25)
How do I swap the face? The workflow only uses wildcards; what should the prompt be to swap the face from Image 2 onto the character in Image 1?
The "QwenVL Unified (HF/GGUF) node loads in with NaN for some inputs for me. What default settings do you rec for this node?
CAND THIS WORKFLOW DO THIS ?https://www.youtube.com/watch?v=ZtYBksmD9Qk
Didn't test the LoRa yet
Now it can. Added also a preset wildcard for enhancement
@huchukato BRO YOU ARE THE BEST!!!!
@gigcamellos2023710 you are welcome <3
@huchukato hope we can have the same for krea2
@gigcamellos2023710 Yawn ahahha I will check ;)
Tried to generate a character sheet, but it only removes the background, and did nothing more than that. Not the 4 poses which were expected.
For some reason, the workflow doesn't work at all.
Use the wildcards, there are 2 for char sheet qwen21/sheet and qwen21/prosheet, you can disable the qwen node or use the IMG > Qwen Edit preset to enhance the prompt
@huchukato The Qwen node was the issue, solved it! Thanks.
Though, I am not able to utilize the character sheet for generating images in the workflow. The results have been lackluster when we use the character sheet as the image1.
@morbidflood962 You have to first generate a character, Qwen 2.1 or with Pony or where you want, than use the chat sheet preset, that is an img2img operation
Does not seem to follow any of the wildcard prompts, and my own prompts.
I always get random combinations of my reference images.
If you enable the Qwen Node be sure to select the IMG > Qwen Edit preset, or disable the Qwen Node and go straight with the wildcard. Pay attention of what image is the "giver", usually image1 receive and image2 give
@huchukato Ok, I managed to get it to work with Git cloning the QwenVL node manually.
Now it follows the prompt.
Having an issue with the workflow on ComfyUI Portable 0.37 - odd interaction with the QwenVL Unified node, as it seems to be missing the Img > Qwen Edit preset from the Present Prompt section altogether. Even when the node is bypassed though, the expanded wildcard doesn't actually trigger correctly; the Show Text Pixaroma node shows some Tensor text:
Tensor shape=(1, 1920, 1080, 3) dtype=torch.float32 min=0.0000 max=1.0000
This doesn't seem to do much of anything except remove the background from the reference image. I know this workflow works, as I've deployed it on Runpod before, but locally it doesn't seem to work. What could be interfering with the prompt data passing from the Wildcard Processor node to the Show Text Pixaroma node? ComfyUI version mismatch?
The QwenVL node is the culprit.
Had the same error with the WF not following the prompt.
Update the node manually or do a Git clone for the latest version.
It worked for me after doing this.
@Bbird Trying that, but it's stuck on the pip requirements install - for some reason, despite pip being installed on the same external drive as the rest of ComfyUI (wanted to save space on my main PC, so I used ComfyUI Portable to ensure it all worked cleanly on there), it keeps throwing errors about pip not being recognized by PowerShell on Windows 11. Not sure what to make of this, but admittedly I'm not very used to command line Python operations...
For the time being, just gonna bypass the QwenVL Mod node; for most of my operations the Wildcard Processor and manual prompting should be enough



