Nodes/ComfyUI-UniWorld-jd17/UniWorld Encoder (Qwen2.5VL)
ComfyUI Node

UniWorld Encoder (Qwen2.5VL)

Your prompt encoder is now a vision-language model

By judian17·Created about a year ago·Updated about a year ago· 21
UniWorld Encoder (Qwen2.5VL)
  • image
  • t5_conditioning
  • siglip_vision_output
  • CONDITIONING
uniworld_model_dirpath/to/your/uniworld_hf_model_directory
model_precisionbf16
prompt
no_joint_with_t5false
unload_model_after_usefalse

This is the node that makes the whole pack worth installing. Instead of a plain T5 or CLIP text encoder, UniWorldEncoderNode runs a fine-tuned Qwen2.5-VL vision-language model that takes your edit instruction and your reference image and produces the conditioning tokens FLUX samples from. It's the heart of ComfyUI-UniWorld-jd17, an unofficial ComfyUI port of the image-editing part of PKU-YuanGroup's UniWorld-V1. If you've ever wished a prompt could just look at the picture it's talking about, this is that idea.

What's actually happening

UniWorld-V1's trick is replacing the text encoder with a VLM. A Qwen2.5-VL model is fine-tuned to output "denoising embeddings" - tokens in FLUX's 4096-dim text-embedding space - from a conversation that includes both the instruction text and the image. So "remove the glass in the foreground, keep the reflection" isn't a string; it's an image-plus-text input that the model conditions on. That's why this node looks like a text encoder but has an IMAGE socket.

Mechanically, it builds a Qwen chat message from your prompt and image, applies the model's chat template, smart-resizes the image to the 28px grid with pixel budgets (the qwen-vl-utils resize logic, reimplemented inline - the pack comments out the real qwen-vl-utils dependency), runs a forward pass with output_type="denoise_embeds", then optionally concatenates T5 prompt embeddings and/or injects SigLIP vision embeddings from the pack's companion nodes.

Inputs a beginner actually sets

  • uniworld_model_dir - a path to a local, extracted Hugging Face-style directory of the Qwen2.5VL weights. There's no ComfyUI model dropdown; you type the path. If the folder doesn't exist you get a FileNotFoundError.
  • model_precision - bf16 or nf4. Must match the weights you extracted. NF4 exists because the bf16 Qwen2.5VL is heavy; it needs bitsandbytes installed.
  • prompt - the edit instruction. Empty is legal: for image-only passes the node returns conditioning anyway.
  • no_joint_with_t5 - skip concatenating the T5 conditioning. The author's own workflow note says the graph runs fine without the T5/CLIP encoder wired in, which is equivalent to setting this true; expect slight output differences.
  • unload_model_after_use - offloads the VLM from VRAM after each run. Turn it on if you're juggling models.

The three optional inputs - image (your reference), t5_conditioning (from the pack's UniWorld T5/CLIP Encoder), and siglip_vision_output (from the pack's UniWorld Siglip Encoder) - are exactly what the shipped workflow feeds it. The single CONDITIONING output goes into FluxGuidanceBasicGuiderSamplerCustomAdvanced, like a normal FLUX conditioning but produced by a VLM.

Install - the real cost of this pack

Installing the node is trivial (Manager, search "ComfyUI-UniWorld-jd17", or git clone into custom_nodes and restart). The cost is the weights. You need the UniWorld Flux UNet (fp8 or bf16, via UNETLoader) and the Qwen2.5VL encoder model extracted to a folder. The README links pre-processed weights on ModelScope, or you can extract them yourself from the official UniWorld-V1 model with the included scripts. The catch: the extracted folder's config.json must match your precision - the pack ships separate configs under assets/bf16 and assets/nf4 that you drop in. transformers==4.50.0 is pinned for a reason; the author reports 4.52.3 breaks it.

Common issues

The top failure mode is a precision/config mismatch: nf4 weights with a bf16 config, or a config.json you forgot to swap. Next is the transformers pin breaking other nodes. And honestly, this is niche software - the author is upfront that the nodes were written with Gemini's help and "probably" implement the feature correctly, so treat outputs as experimental. Community signal on this exact V1 port is thin; the project has since moved to UniWorld V2 (the Qwen-Image-Edit-2509 route), which is a different architecture with its own guides. If you're choosing fresh, that's worth knowing before you sink a download into this one.

Categoryconditioning/UniWorld

Inputs (8)

NameTypeDefaultDescription
uniworld_model_dirSTRINGpath/to/your/uniworld_hf_model_directory
model_precisionCOMBObf162 options: bf16, nf4
promptSTRING
no_joint_with_t5BOOLEANfalse
unload_model_after_useBOOLEANfalse
imageoptIMAGE
t5_conditioningoptCONDITIONING
siglip_vision_outputoptCLIP_VISION_OUTPUT

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING