Grounding Model (down)Loader
19 Detection Models Behind One Dropdown
- model
This node is the pack's whole pitch in one dropdown: 19 bounding-box detection models - GroundingDINO, MM-GroundingDINO, OWLv2, Florence-2, and YOLO-World - with zero install per model and a cache that makes switching between them nearly free. It loads whatever you pick, auto-downloads the weights on first use, and hands a ready-to-go GROUNDING_MODEL to the Grounding Detector node.
Why would one person need 19 detectors? Mostly to stop reinstalling node packs every time a better model drops. The author's stated reason for building the pack was chasing down failure rates in background-removal pipelines - trying every grounding/SAM2 combination until one nails the object. With a single loader, you can A/B five models in one session without rewiring anything.
Which one to pick
- Florence-2: Base is the default, and it's a sensible default: small (0.23B params), fast, and competent at descriptive prompts. If you just want boxes, start here.
- GroundingDINO SwinT is the classic lightweight choice; SwinB is heavier but more accurate. Both are ~700–940MB.
- MM-GroundingDINO models print their mAP right in the dropdown - the "Large All Datasets (60.3 mAP)" is the accuracy king here if you can afford the VRAM and the download.
- YOLO-World v8s/m/x are the speed picks, trading some semantic understanding for near-real-time detection.
The honest framing: bigger name almost always means bigger VRAM footprint and a slower first download. There's no reason to start with OWLv2 Large when Florence-2 Base does the job.
The inputs
Just two. model (the dropdown, with keep_model_loaded as an optional toggle that defaults to true). When it's on, the model parks in VRAM so every subsequent detection is instant - the pack's smart cache keys each model in memory, so even switching models mid-workflow is cheap. Turn it off if you're sharing the GPU with something heavy like Flux; the README's advice is blunt: it offloads to CPU after each detection, slower but far more memory-friendly.
Output is the single model wire, which feeds GroundingDetector. That's it - this node doesn't detect anything itself.
Installing it
Same pack install as everything else in ComfyUI-Grounding:
cd ComfyUI/custom_nodes/
git clone https://github.com/PozzettiAndrea/ComfyUI-Grounding
cd ComfyUI-Grounding
pip install -r requirements.txt
Then restart ComfyUI (or install via Manager by searching "Grounding"). The first time you select a model it downloads from Hugging Face - expect a wait, and expect the bigger MM-GroundingDINO / OWLv2 large variants to be the slow ones. YOLO-World weights come from Ultralytics' own release assets instead.
Where people get burned
- Dependency weight - the pack pulls in
transformers,timm,einops, andultralytics. Most are already in a modern ComfyUI, but if you see import errors in the console on startup, it's usually a broken version of one of these. - The Ultralytics history - YOLO-World's dependency had a well-known December 2024 supply-chain compromise that reached ComfyUI users through Impact Pack. Buy your ultralytics from PyPI, keep it pinned, and don't chase random prebuilt wheels.
- First-run confusion - the dropdown shows all 19 models, but nothing downloads until you actually select and run one. A quick "why is it hanging?" during first run is just the model downloading; it's cached after that.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | Florence-2: Base (0.23B params) | 19 options: GroundingDINO: SwinT OGC (694MB), GroundingDINO: SwinB (938MB), MM-GroundingDINO: Tiny O365+GoldG (50.4 mAP), MM-GroundingDINO: Tiny O365+GoldG+GRIT (50.5 mAP), MM-GroundingDINO: Tiny O365+GoldG+V3Det (50.6 mAP), MM-GroundingDINO: Base O365+GoldG+V3Det (52.5 mAP), +13 |
| keep_model_loadedopt | BOOLEAN | true | Keep model in VRAM after loading. Disable to free VRAM after each detection (slower but uses less memory) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | GROUNDING_MODEL | — |