Nodes/ComfyUI-CVOverlay/CV Object Detector
ComfyUI Node

CV Object Detector

It returns boxes as data, not pixels — that's the whole trick

By joosthel·Created about a year ago·Updated about a year ago· 5
CV Object Detector
  • model
  • image
  • image
  • detections
confidence0.50

Most detection nodes in ComfyUI draw the boxes onto the image themselves and hand you a pretty picture. This one deliberately doesn't. CV Object Detector runs YOLOv8 and hands back structured detection data - bounding boxes, confidence scores, class names - as its own custom type. The drawing is somebody else's job, and in this pack that somebody is CV Aesthetic Overlay. Keep that division in mind and the whole pack clicks into place.

What it does

It's standard YOLOv8 object detection against the 80-class COCO vocabulary (person, car, dog, bottle, and so on), but as a data pass, not a rendering pass. You feed it a model from CV Model Loader and an image, and for every object it finds above your confidence cutoff it produces an entry with the [x1, y1, x2, y2] box, the confidence, and the class name.

The one input you'll actually tune is confidence (default 0.5). Lower it to catch more objects, at the cost of more false positives; raise it when it's grabbing garbage. It handles video too - the node loops over batched frames, so you can feed it frames straight from a VHS Load Video node and get a list of detections per frame.

The two outputs - and the trap

  • image - the original image, unchanged. This is the trap. People plug this into a preview, see no boxes, and think it's broken. It's not; it's a pass-through. There are no boxes on this output on purpose.
  • detections (CV_DETECTIONS) - the actual data. This is what you wire into CV Aesthetic Overlay's detections input to get the drawn result.

So the honest pipeline is:

CV Model Loader → CV Object Detector → CV Aesthetic Overlay → Preview

That image output existing at all is mostly a convenience so the overlay node can take your original image in one wire. Use it for that, not for looking at results.

Installing

Same pack as the rest of CVOverlay - four nodes total, MIT-licensed, by Joost Helfers, and it's new enough that there's zero community discussion of it yet. Install via ComfyUI Manager (search "ComfyUI-CVOverlay") or:

cd ComfyUI/custom_nodes
git clone https://github.com/joosthel/ComfyUI-CVOverlay.git

Then restart. Real dependency to watch: ultralytics, plus opencv-python, scipy, and the usual suspects. If it errors on load with "Missing dependencies," that means pip didn't run during install - on Windows portable installs this is routine - so do pip install ultralytics manually.

Troubleshooting

  • No boxes on the image output. By design, as covered. Wire detections into the overlay and look there.
  • Nothing detected at all. Raise the image quality or lower confidence. Stock YOLOv8n is trained on real photos; stylized, heavily-processed, or AI-generated images can genuinely confuse it. That's not a bug.
  • Slow on video. You're running inference per frame on CPU unless you have a GPU build of torch. Use yolov8n and, if it's still crawling, consider whether you actually need object detection - the pack's Blob Tracker path does motion-graphics-style tracking on bright spots with far less compute.

One more thing worth knowing: this is the only node in the pack that consumes the CV_MODEL type, and CV Model Loader is the only thing that produces it. If you don't want to deal with YOLO at all, the whole detector half of the pack is skippable - the blob tracker never touches it.

CategoryCV/Detection

Inputs (3)

NameTypeDefaultDescription
modelCV_MODEL
imageIMAGE
confidenceFLOAT0.500–1

Outputs (2)

NameTypeDescription
imageIMAGE
detectionsCV_DETECTIONS