Nodes/YOLOE-26 Open-Vocabulary Segmentation/YOLOE-26 Detection Metadata
ComfyUI Node

YOLOE-26 Detection Metadata

The YOLOE-26 node that gives you numbers instead of pictures

By Rinne414·Created 6 months ago·Updated 2 months ago· 11
YOLOE-26 Detection Metadata
  • model
  • image
  • metadata_json
  • detection_count
promptperson
conf0.10
iou0.70
max_det300
mask_threshold0.50
imgsz640

Same detection pass as YOLOE-26 Prompt Segment, but this node deliberately produces no images at all. It runs the segmentation and hands you a JSON blob of what it found: boxes, confidence scores, class names, and mask areas. That's it. For the beginner this sounds useless; for anyone doing automation, dataset prep, or anything that treats ComfyUI as a backend, it's exactly the node you've been missing.

The point is that images are expensive and numbers are cheap. If you're batch-processing a folder to figure out what your prompts actually match before committing to mask generation, or you want to log detections to a file, or you want a downstream script to make decisions from coordinates - you don't need an annotated PNG, you need data.

How it works

It's the same pipeline under the hood as the other segment nodes: your prompt is split into classes, text embeddings are computed via set_classes(), and YOLOE-26 runs a predict pass with native-resolution (retina_masks) masks. Then the node walks the result and extracts a record per detection - bounding box as xyxy, confidence, class id and name, mask area in pixels, plus the image and instance indices. Everything is serialized to JSON.

Inputs

Exactly the same family as Prompt Segment, and they mean the same things: model (from YOLOE-26 Load Model), image, prompt (comma-separated classes), then conf, iou, max_det, mask_threshold, and imgsz. Lower conf to catch more detections; that's the one you'll touch most. And yes, the mask_threshold quirk applies here too - it's used when measuring mask area, recent Ultralytics returns binary masks so values below 1.0 do nothing, and exactly 1.0 empties everything.

Outputs

  • metadata_json - a JSON string with one record per detection, including the box, confidence, class name, and mask area. It's structured so the pack's own nodes (Refine Mask, Select Best Instance) can parse it back, which makes it a useful bridge between steps.
  • detection_count - total detections across the whole input batch. Handy as a quick sanity check or to feed into routing logic.

Installing it

Part of the Rinne414/ComfyUI-YOLOE26 pack, so install once and you get all seven nodes. Through ComfyUI Manager, search YOLOE-26 and hit Install, or:

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

Restart after. Only dependency that matters is ultralytics>=8.3.200,<9.0.0. First run downloads the model weights and, on first text-prompt inference, the ~250 MB MobileCLIP text encoder - do that once online.

Where you'd actually use it

Realistically, most people will reach for Prompt Segment because they want the mask, not the spreadsheet. Reach for this node instead when you want to see whether your prompt is working across a batch without generating a wall of images, when you're building a workflow that logs detections as text, or when you're assembling a dataset where the detection records are the output. If you find yourself writing JSON to a file and parsing it with a script, this is the node that makes that painless.

One honest caveat: the metadata is only as good as the detection, so the same limitations apply - rare objects detect poorly and you'll want conf low. But for what it is, a structured, no-image detection output in five nodes' worth of code, it's a clean fit for ComfyUI automation.

CategoryYOLOE26

Inputs (8)

NameTypeDefaultDescription
modelYOLOE_MODEL
imageIMAGE
promptSTRINGpersonText prompt for open-vocabulary segmentation. Separate multiple classes with commas.
confoptFLOAT0.100–1Detection confidence threshold.
iouoptFLOAT0.700–1IoU threshold used by Ultralytics inference.
max_detoptINT3001–1000Maximum number of detections returned per image.
mask_thresholdoptFLOAT0.500–1Threshold used when measuring instance mask area. Recent Ultralytics releases already return binary masks, in which case values below 1.0 have no additional effect and exactly 1.0 empties every mask.
imgszoptINT64064–2048Inference image size.

Outputs (2)

NameTypeDescription
metadata_jsonSTRING
detection_countINT