Run Real-Time Detection (RT-DETR)
Find people, cars and teddy bears in a frame — 80 COCO classes, no text needed
- model
- image
- bboxes
You don't always need a 270,000-concept open-vocabulary model to find a cat. Sometimes you need a fast, boring, reliable detector that answers "is there a person in this frame, and where" - and that's exactly what this node is. It runs RT-DETR v4, a real-time object detector from Baidu, covering the 80 COCO classes: person, car, dog, cat, bottle, chair, cell phone, and so on. Since March 2026 it ships in ComfyUI core, so you no longer need a YOLO/Ultralytics pack - with its AGPL licence and its supply-chain incident - just to get bounding boxes.
The community never posts about RT-DETR on its own terms, and that's the tell. It's infrastructure: the quiet dependency underneath other tools (OmniGen leans on it), and the workhorse when a workflow needs to find "all the people" before doing something to them. If a workflow calls for detecting specific things by name with no model card reading, this is the node.
How it works
RT-DETR is a transformer-based detector - no anchor boxes, no non-maximum-suppression tuning like YOLO. The image is resized to 640×640, run through a CNN backbone (HGNetv2) and a detection transformer head, and out come boxes, class labels and confidence scores, processed in batches of up to 32 frames. It's fast enough for video-frame work, and accurate enough that it's the default generic detector in several ComfyUI pipelines.
The inputs and outputs that matter
- model - the RT-DETR weights via
UNETLoader, frommodels/diffusion_models/. Grabrt_detr_v4-x-hgnet_fp16.safetensors(fp32 is the 250MB alternative if fp16 gives you trouble); it's ~124MB, so it loads fast and leaves your VRAM alone. - image - the frame(s) to scan.
- threshold - confidence cutoff, default 0.5. Lower it (0.3-ish) to catch small or partially-occluded objects, at the cost of more false positives.
- class_name - filter to one class, e.g.
person. Defaultallkeeps everything. This is the drop-down that turns "detect everything" into "only people". - max_detections - cap per image, default 100, sorted by confidence. Drop it if you're seeing a wall of boxes.
The bboxes output is a list of boxes per frame, each carrying x, y, width, height, plus label and score - a plain BOUNDING_BOX that everything in ComfyUI can consume.
Where it fits
See the boxes with DrawBBoxes, crop them, or use them as gating - "skip this frame because no person detected." Combined with a segmentation step it feeds the detect-crop-refine loops that detailer workflows are built on. Compared to SAM3_Detect: SAM3 can name anything and gives you masks, but it's heavier and slower. RT-DETR is the fast, fixed-menu detector - same idea, 80 classes, no text encoder, no drama. If a workflow just needs "where are the people," reach for this one first.
One thing to remember: it detects categories, not specific objects. Ask it for person in a crowd and you get every person. If you need "the person in the red jacket," that's SAM3's open-vocabulary territory.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| image | IMAGE | — | |
| threshold | FLOAT | 0.50 | — |
| class_name | COMBO | all | Filter detections by class. Set to 'all' to disable filtering. |
| max_detections | INT | 100 | Maximum number of detections to return per image. In order of descending confidence score. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| bboxes | BOUNDING_BOX | — |