Nodes/ComfyUI-WanVideoWrapper/TextImageEncodeQwenVL
ComfyUI Node Runs on cloud

TextImageEncodeQwenVL

Encode a text-plus-image prompt through Qwen-VL

By kijai·Created about a year ago·Updated 2 months ago· 6,650
TextImageEncodeQwenVL
  • clip
  • image
  • qwenvl_embeds
prompt

This is a conditioning encoder for models that speak Qwen-VL - Qwen's vision-language model. The point of a vision-language encoder is that it takes both a text prompt and, optionally, a reference image, and understands them together. So instead of "here's my text, here's my image, good luck," you get a single embedding that fuses "this is what I wrote about this picture." Models in the wrapper that expect Qwen-VL conditioning read that embedding.

If you've used a plain text encode node, this is the multimodal cousin: same idea, but it can fold an image into the prompt understanding.

How it works

You give it a clip (a Qwen-VL encoder loaded upstream), your prompt text, and optionally an image. It runs them through the Qwen-VL model and produces a QWENVL_EMBEDS object - the conditioning the downstream sampler consumes. With no image, it's a text-only encode. With an image, the text is interpreted in the context of that image, which is what makes it useful for reference-driven or edit-style prompts where the words describe a change or relationship to the picture rather than a scene from scratch.

The Qwen family is a big deal in this space right now - Qwen-Image and Qwen-Image-Edit put Qwen-VL-style multimodal conditioning on a lot of people's radar - and this node is how a Wan-wrapper workflow taps that style of prompt.

The inputs and outputs that matter

  • clip (CLIP) - the Qwen-VL text/vision encoder, from a loader node. Required, and it has to be the Qwen-VL one; a generic CLIP won't produce the right embeds.
  • prompt (STRING, multiline) - your text. Because Qwen-VL is instruction-capable, you can write it more like a description or instruction than a bag of tags.
  • image (IMAGE, optional) - the reference. Add it when your prompt refers to a picture ("the person in the image, now …"); leave it out for pure text conditioning.

Output: qwenvl_embeds (QWENVL_EMBEDS) → the conditioning input on the model/sampler that expects it.

How to install it

ComfyUI Manager → search ComfyUI-WanVideoWrapper, install, restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-WanVideoWrapper
pip install -r ComfyUI-WanVideoWrapper/requirements.txt

then restart. The dependency that matters is the Qwen-VL encoder weights - this node encodes through that model, so it needs to be downloaded and loaded by a CLIP/encoder loader in your graph. Qwen-VL is a sizeable model; it takes real memory on top of whatever you're generating with.

Common issues & troubleshooting

Type mismatch on clip. This node wants a Qwen-VL encoder specifically. Feed it a standard SD/SDXL CLIP and it won't work - the embeds are a different shape. Load the correct Qwen-VL encoder.

The image seems ignored. The image input is optional and its influence depends on how you prompt. If the text describes a fresh scene, the model has little reason to lean on the reference. Write the prompt so it relates to the image - reference it, describe an edit - to get the multimodal behavior.

Downstream node won't accept the output. QWENVL_EMBEDS is a specific conditioning type; only nodes built to consume it will take it. If your sampler expects ordinary CONDITIONING, this isn't the encoder for that model.

OOM after adding it. You've added a whole vision-language model to the graph. Offload other models, use a quantized Qwen-VL build if available, and encode before loading the heavy generator.

CategoryWanVideoWrapper

Inputs (3)

NameTypeDefaultDescription
clipCLIP
promptSTRING
imageoptIMAGE

Outputs (1)

NameTypeDescription
qwenvl_embedsQWENVL_EMBEDS