CV Object Detector
It returns boxes as data, not pixels — that's the whole trick
- model
- image
- image
- detections
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'sdetectionsinput 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
detectionsinto 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
yolov8nand, 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.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model | CV_MODEL | — | |
| image | IMAGE | — | |
| confidence | FLOAT | 0.500–1 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| detections | CV_DETECTIONS | — |