YOLO/Pose Inference (AnotherUtils)
Detect People, Poses and Boxes Inside ComfyUI, No Separate Repo
- images
- model
- bboxes
- keypoints
- mask
- labels
- debug_image
Sometimes you need a computer-vision pass before the generative pass: find the person in this frame, get their pose keypoints, draw a box around every face. That's YOLO territory, and most people assume it means installing a whole separate detection node pack. AnotherYOLOInference says no - it runs Ultralytics YOLO (v8 or v11, detection or pose models) natively inside AnotherUtils, with the weights auto-downloaded on first use. Feed it images and a model, get bounding boxes, keypoints, labels, a mask, and a debug image all at once.
How it works
You load a YOLO model through the pack's loader (AnotherLoadYOLO), which downloads the weight file into models/ultralytics on first run if it's missing, then instantiates the Ultralytics model. Inference runs per image through the standard YOLO predict path, with your threshold set as the confidence cutoff. The clever part is the outputs: everything comes back as structured types - BBOX (boxes), KEYPOINTS (pose landmarks for pose models), MASK (per-object masks for segmentation models), labels (class names as a string), plus a debug_image with boxes and skeletons drawn on, which is your instant visual sanity check. That debug image alone is worth it: you can SEE whether detection is working before you build anything downstream.
The inputs
images- your image batch. It loops per frame, so video works.model- theANOTHER_MODELfromAnotherLoadYOLO. That loader is where you pick the weight (e.g.yolov8m.pt,yolo11n.pt, pose or seg variants).threshold- confidence cutoff, default 0.25. Lower to catch weak detections (and more false positives); raise to 0.5+ for precision.
What comes out
bboxes- the detection boxes, ready to feedAnotherBBoxToPoints(converts boxes to SAM2 points) or the pack'sSEGStoBBox.keypoints- pose landmarks for pose models, COCO-style topology, consumable byAnotherPoseToPoints(which has dropdowns likeface,left_arm,both_legs_onlyto select body parts to point at).mask- per-detection masks when you use a segmentation model.labels- class labels as a string, for logging or prompt building.debug_image- the annotated frames with boxes and skeletons. The node you'll actually look at.
Installing it
Standard AnotherUtils install:
cd ComfyUI/custom_nodes
git clone https://github.com/marcoc2/ComfyUI-AnotherUtils.git
Restart ComfyUI, or search "AnotherUtils" in ComfyUI Manager. The YOLO path needs the ultralytics pip package; weights download automatically into models/ultralytics on first run.
Where people get burned
Model-type mismatches are the usual failure: a pose model outputs keypoints but no masks, a box model outputs neither keypoints nor masks, and the node only populates what the model provides - so check the loader's model choice matches what you're wiring downstream. Also remember detection happens per-frame, so on video the boxes can flicker between frames; that's YOLO being YOLO, and the fix is usually a higher threshold or post-processing, not this node. And the BBOX/KEYPOINTS types are pack-private - they plug into the pack's SAM2 bridging nodes, not into arbitrary other packs. If your target is feeding points into SAM2 tracking, that's exactly the intended path.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| model | ANOTHER_MODEL | — | |
| threshold | FLOAT | 0.250–1 | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| bboxes | BBOX | — |
| keypoints | KEYPOINTS | — |
| mask | MASK | — |
| labels | STRING | — |
| debug_image | IMAGE | — |