QwenVL TryOn
Three photos in, one outfit-swap prompt out
- image_person
- image_top
- image_bottom
- RESPONSE
The QwenVL TryOn node is the pack's odd one out, and it's the one that makes the others make sense. It takes three photos - a person, a top, and a bottom - and uses Qwen's vision model to describe each one, then stitches those descriptions into a single ready-made "TRYON" prompt you can feed to an image model. It doesn't generate anything itself; it's a prompt-assembly node that turns visual reference material into words, and the words do the work.
How it works
Under the hood it's the same Qwen3-VL engine as the pack's Advanced node - same model list, same quantization, same attention_mode and use_torch_compile options - but the flow is different. It runs the vision model three times in a row, once per image, each time with a deliberately strict instruction that forces a short answer. The person shot gets told to ignore clothing and pose entirely and describe only physical features ("young woman with long dark wavy hair") in under ten words. The top and bottom images get told to describe just the garment in question - and the bottom prompt explicitly says to ignore shirts and jackets, which is a nice piece of prompt hygiene for keeping the outfit description honest. Then it composes the final string: something like TRYON [person]. Replace the outfit with [top] and [bottom] as shown in the reference images. The final image is a full body shot.
The three description fields - person_description, top_description, bottom_description - are your fallback and your guardrail. If you pass an image for a slot, the model writes the description and your text is folded into the instruction. If you don't pass an image, your text is the description. So you can run it fully visual (three images, defaults), fully manual (three texts, no images), or mixed - which is the flexible shape that makes this useful for clothing pipelines where you often have a garment shot but not a clean person shot.
The inputs that matter
- image_person / image_top / image_bottom - the three reference photos; each is optional if you fill in its text field.
- person_description / top_description / bottom_description - your textual descriptions, or the instruction context when an image is present.
- model_name / quantization - the usual Qwen3-VL size and precision trade; 4B at 8-bit is plenty for describing garments.
Output is a single RESPONSE string - the final TRYON prompt - and this node is an output node, so the prompt appears in the UI. From there it's yours: feed it to a CLIP encoder on a model that understands long instructions and swap outfits to your heart's content.
Getting it
Standard pack install - ComfyUI Manager, search "ComfyUI-QwenVL", or:
cd ComfyUI/custom_nodes
git clone https://github.com/aistudynow/ComfyUI-QwenVL
First run downloads the selected Qwen3-VL weights into models/LLM/Qwen-VL, same as every transformer node in this pack.
Where people get burned
Because it runs the vision model three times, the first run is three downloads-of-context and a 4B will eat a couple of GB of VRAM for the whole run - the node even catches OOM explicitly and returns a "try a smaller model" message, which is a friendlier failure than most. Second, the strict ten-word instructions mean the person description can come back stripped of anything useful if the photo is low quality or off-angle; that's what the person_description field is for - pre-fill it and the model takes direction. Third, and this is the real one: the node's job stops at the prompt. It doesn't check that your target model can actually do a full-body outfit swap, so a mediocre TRYON prompt into a weak model gives you a mediocre result that has nothing to do with this node. The KB's honest framing applies here too - a local captioner is a convenience that removes the blank page, not a guarantee. But for turning three reference photos into a coherent, typed outfit-swap instruction in one run, it's a genuinely handy shortcut that would otherwise be several minutes of writing and guessing.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | Qwen3-VL-4B-Instruct | 18 options: Qwen3-VL-2B-Instruct, Qwen3-VL-2B-Thinking, Qwen3-VL-2B-Instruct-FP8, Qwen3-VL-2B-Thinking-FP8, Qwen3-VL-4B-Instruct, Qwen3-VL-4B-Thinking, +12 |
| quantization | COMBO | 8-bit (Balanced) | 3 options: 4-bit (VRAM-friendly), 8-bit (Balanced), None (FP16) |
| person_description | STRING | Describe short info of the person in this image | — |
| top_description | STRING | Describe the top outfit in this image | — |
| bottom_description | STRING | Describe the bottom outfit in this image | — |
| max_tokens | INT | 102464–2048 | — |
| temperature | FLOAT | 0.60.1–1 | — |
| top_p | FLOAT | 0.900–1 | — |
| num_beams | INT | 11–10 | — |
| repetition_penalty | FLOAT | 1.200–2 | — |
| frame_count | INT | 161–64 | — |
| device | COMBO | auto | 4 options: auto, cuda, cpu, mps |
| use_torch_compile | BOOLEAN | false | — |
| keep_model_loaded | BOOLEAN | true | — |
| seed | INT | 11–18446744073709550000 | — |
| attention_mode | COMBO | auto | 4 options: auto, sage, flash_attention_2, sdpa |
| image_personopt | IMAGE | — | |
| image_topopt | IMAGE | — | |
| image_bottomopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| RESPONSE | STRING | — |