Skip to content
,

WeVisOne-VL in ComfyUI: Cut Out, Detect and Read Anything From One Prompt

8–11 minutes
Excited woman cutting a subject out of a photo on her monitor, WEVISONE card, hook cut out anything one prompt

Cutting a person out of a photo, boxing every car in a street scene or reading the text on a sign used to take three different models in ComfyUI.

WeVisOne-VL, Tencent’s new WeChat Vision model, does all of it from one prompt, and as of 9 November it runs in ComfyUI core with no custom node pack.

You type what you want (“the woman in the red coat”, “all cars”, “read the sign”) and it returns boxes, points, soft alpha mattes or text. This guide covers the files, the folder, the one-node setup, every task mode, a background-removal workflow, the benchmarks and the limits you should know before relying on it.

TL;DR

  • What: Tencent WeVisOne-VL, 2B and 4B vision models (Qwen3-VL fine-tunes plus a 9.6M-parameter mask decoder) for detection, segmentation with alpha mattes, pointing, counting and OCR.
  • ComfyUI: native node WeVisOne-VL Detect (added in PR 17632). Needs ComfyUI master: tag v0.44.2 does not have it yet.
  • Files: from Comfy-Org/WeVisOne-VL into ComfyUI/models/text_encoders/: 4B int8 is 5.3 GB, 2B int8 is 2.9 GB.
  • Load it with: CLIPLoader, type stable_diffusion, into the node’s clip input.
  • Licence: Apache-2.0 on the ComfyUI repack.
  • Limits: single images only (no video tracking), fine edges can drift on transparent or hidden subjects, one label per line.

What WeVisOne-VL Is

WeVisOne-VL comes from Tencent’s WeChat Vision team. It is built on Qwen3-VL, the vision-language model family, and adds a small 9.6M-parameter mask decoder so it can output pixel masks, not just words.

That combination is the point. A normal vision chatbot can tell you there is a dog in a photo. WeVisOne-VL can tell you where it is, draw a box round it, give you a soft-edged cut-out of it, and count how many there are, all from a plain-English request.

There are two sizes:

  • 4B: the stronger model, and the one behind the benchmark numbers below.
  • 2B: smaller and lighter, for 8 GB cards or quick previews.

The original weights are at tencent/WeVisOne-VL-4B and tencent/WeVisOne-VL-2B, but ComfyUI needs the Comfy-Org repack, which is the version that loads in the native node.

Files, Sizes and Folder

All four files go in the same folder: ComfyUI/models/text_encoders/. You only need one.

File Size Pick it when
wevisone_vl_4b_bf16.safetensors 9.7 GB 16 GB+ card, best quality
wevisone_vl_4b_int8_convrot.safetensors 5.3 GB The sensible default for 8 to 12 GB cards
wevisone_vl_2b_bf16.safetensors 4.9 GB Smaller model at full precision
wevisone_vl_2b_int8_convrot.safetensors 2.9 GB Low-VRAM cards, or running next to a big image model

Neither Tencent nor Comfy-Org publishes a VRAM figure. My “pick it when” column is a sizing rule from the file sizes, not a measured result: leave a few GB above the file size for the image and the decoder.

If you plan to run it in the same graph as a large image or video model, the 2B int8 file is the safe choice. Our ComfyUI VRAM guide explains how models share the card.

Setup in ComfyUI

  1. Update ComfyUI to master. The node landed on 9 November. The latest tagged release at the time (v0.44.2) does not include it, so the desktop app and Comfy Cloud will get it with the next stable release. On a git install, run git pull in the ComfyUI folder. On the portable build, run the update script in the update folder. See our ComfyUI install guide if you are unsure which build you have.
  2. Download one model file from Comfy-Org/WeVisOne-VL into ComfyUI/models/text_encoders/.
  3. Restart ComfyUI and refresh the browser.
  4. Add a Load Image node with your photo.
  5. Add a CLIPLoader node. Set type to stable_diffusion and pick the WeVisOne file.
  6. Add WeVisOne-VL Detect (search for it, or find it under image/detection). Connect the image and connect the CLIPLoader output to its clip input.
  7. Pick a task, type your query, and queue.

The node has four outputs:

  • masks: the soft alpha mattes.
  • bboxes: the boxes, as JSON in pixel coordinates.
  • points: points, as JSON in pixel coordinates.
  • the raw answer text, useful for OCR and counting.

Turn on individual_masks if you want one mask per box. Leave it off for a single combined mask of everything that matched.

Every Task Mode Explained

Task What it returns Example query
segmentation Boxes plus soft alpha mattes person
detection Boxes for each label car (new line) bicycle
referring The one object a phrase describes the woman holding the blue umbrella
point A point on each match door handle
count_box / count_point A count, with boxes or points apples
ocr The text in the image (no query needed)
ocr_grounding Text plus where each line sits (no query needed)
visual_prompt Matches guided by a visual hint depends on your hint
freeform A free text answer what is the person doing?

One detail catches people out: detection and point expect one label per line. If you type “car, bicycle, bus” on one line, the model reads it as a single strange phrase and may find nothing.

The model is also good at saying “not there”. On WeRef-Bench, which tests whether a model wrongly finds objects that are absent, the 4B scored 96.4 against 73.0 for the best open baseline. So if it returns nothing, the object most likely is not in the image or your phrase does not match it.

Workflow: Background Removal With a Soft Matte

This is the job most people will want. Because WeVisOne-VL outputs a soft alpha matte rather than a hard mask, hair and fuzzy edges come out cleaner than a simple threshold mask.

  1. Load Image with your photo.
  2. CLIPLoader (type stable_diffusion) with the WeVisOne file.
  3. WeVisOne-VL Detect, task segmentation (or referring for one specific subject), query “person” or a precise phrase.
  4. Connect masks to an InvertMask node.
  5. Feed the image and the inverted mask into JoinImageWithAlpha.
  6. Save Image. ComfyUI saves it as a PNG with transparency.

The InvertMask step is needed because JoinImageWithAlpha treats the mask as the area to make transparent. The page that announced the node gives exactly this InvertMask plus JoinImageWithAlpha chain for cut-outs.

For anime art that you generate rather than cut out, Anima RGBA makes images with a real alpha channel from the start. For a CPU-only option outside ComfyUI, see our local background removal guide.

More Workflow Ideas

  • Inpainting masks from text: use referring with “the man’s jacket” and send the mask into your inpaint workflow, instead of painting the mask by hand.
  • Product photos: segmentation with the product name, then composite onto a new background.
  • Auto-crop: take a box from bboxes and crop to it before upscaling or editing.
  • Read text before editing it: run ocr on a sign, then use the exact text in an edit prompt for Qwen-Image 2.1 edit.
  • Counting: count_box on stock shelves, crowds or parking spaces, with the boxes to check the count.

Benchmarks

These are the 4B model’s scores against the strongest open baseline, as reported with the ComfyUI release.

Task Benchmark Best open baseline WeVisOne-VL-4B
Detection LVIS (F1) 50.7 55.3
Rejecting absent targets WeRef-Bench 73.0 96.4
OCR TotalText (F1) 43.3 52.0
Referring segmentation ReasonSeg (gIoU) 65.0 71.2
Box matting P3M-500-NP (MAD, lower is better) 15.4 7.3

The matting result stands out: its error is less than half the baseline’s. That lines up with the cut-out use case above.

WeVisOne-VL vs Other Masking Tools

Tool Strength Weak spot
WeVisOne-VL One model for boxes, mattes, points, counts and OCR from text; native in ComfyUI Single images only
SAM 3 (Meta) Strong promptable masks and video tracking No OCR or counting answers; a separate model to set up
A general vision LLM (for example Qwen3-VL) Rich descriptions and reasoning No pixel masks on its own
Classic background removers Very fast, tiny Cannot pick “which” subject from a phrase

If you need to track an object across video frames, WeVisOne-VL is not the tool, because its pixel decoder rejects video input. For picking out one described thing in a still image and getting a clean matte, it is now the simplest option in ComfyUI.

For general vision chat, see our list of local vision LLMs.

Limits

  • Still images only. The pixel decoder rejects video grids, so it is not a tracking node.
  • Hard edges. Fine alpha edges can drift on heavily hidden or transparent subjects, such as glass or veils.
  • Wording matters. Different phrasing can change the result. If a query misses, try a simpler or more specific phrase.
  • Label format. One label per line for detection and point.

Troubleshooting

I cannot find the WeVisOne-VL Detect node

Your ComfyUI is older than the 9 November master build. Update to the latest master. A tagged stable release (v0.44.2 or earlier) does not include it. If the node is still missing after updating, check the console for an import error.

The CLIPLoader does not list the file

The file must be in ComfyUI/models/text_encoders/, not checkpoints or diffusion_models. Press R in ComfyUI to refresh the model lists.

Error or nonsense output after loading

Check the CLIPLoader type is set to stable_diffusion, as the release notes say, and that you downloaded the Comfy-Org repack rather than the original Tencent files.

The node finds nothing

Put each label on its own line, use simple nouns, and check the object really is in the image. The model is tuned to reject absent objects rather than guess.

Hair or glass edges look wrong

That is a known limit. Try the 4B bf16 file, a tighter query, or a cleaner source image. For hard cases, touch up the mask in an editor.

Out of memory

Switch to the int8 file or the 2B model, and do not load it in the same run as a large video model.

FAQ

Is WeVisOne-VL free?

Yes. The Comfy-Org repack is listed under Apache-2.0.

Do I need a custom node pack?

No. It runs on ComfyUI core with the WeVisOne-VL Detect node, as long as you are on a recent master build. There are also community node packs, but you do not need them.

2B or 4B?

4B for quality, 2B for low VRAM or when it shares the card with a big model. The published benchmarks are for the 4B.

Can it remove backgrounds from video?

Not directly. It works on single images and rejects video input, so it cannot track a subject through a clip.

Does it read text in other languages?

The release lists OCR and OCR grounding but does not list languages. It comes from WeChat’s team, so test it on your own text before relying on it.

Why is it loaded as a text encoder?

ComfyUI loads vision-language models through the CLIP loader path. The file goes in text_encoders and plugs into the node’s clip input, even though it does vision work.

Sources

Free weekly email

Get new AI guides every week

One short weekly email with our newest local AI, ComfyUI and AI tool guides. No spam, no pop-ups, just the good stuff.

Free. Unsubscribe anytime in one click. We only use your email to send this newsletter. See our privacy policy.

Excited woman cutting a subject out of a photo on her monitor, WEVISONE card, hook cut out anything one prompt