Load GroundingDINO Model (SDPose)
The optional GroundingDINO loader that gives SDPose a text-prompted person detector
- GROUNDING_DINO_MODEL
This is the least glamorous node in the SDPose-OOD pack, and honestly that's fine. It doesn't estimate anything. It just loads GroundingDINO - an open-set object detector - so the pack's Run SDPose Estimation node has a third way to find people in an image. If you only ever pose single characters in simple images, you can skip this node entirely and never miss it.
GroundingDINO's superpower is that it detects by text. Instead of a fixed class list, you give it a phrase - the default in this pack is person . - and it returns bounding boxes for whatever that phrase means. That matters for the specific problem this pack exists to solve: DWPose and the classic OpenPose preprocessors go blind on anime and cartoon art, spitting out empty or black pose maps. SDPose-OOD itself handles illustration fine, but it still needs to know where the person is before it can pose them. GroundingDINO is the detector you reach for when the default YOLO models - trained mostly on real photos - are the weak link.
What it does
One input, one output. You pick a model, it downloads it if it's not already cached, and it hands you a GROUNDING_DINO_MODEL that you wire into the processor node's grounding_dino_model input. That's the whole job.
model_name-GroundingDINO_SwinT_OGC (694MB)orGroundingDINO_SwinB (938MB). SwinT is the one you actually want. SwinB is more accurate and twice as hungry; you're just finding people to pose, not grading a benchmark.- Output
GROUNDING_DINO_MODEL- feeds thegrounding_dino_modelsocket onRun SDPose Estimation. The text prompt and the detection threshold live on the processor, not here.
Mechanically it pulls the .pth checkpoint plus its .cfg.py config from ShilongLiu/GroundingDINO on Hugging Face into ComfyUI/models/grounding-dino/, builds the model through the groundingdino Python package, and wraps it for the pack. It also needs the bert-base-uncased tokenizer bits that GroundingDINO rides on, so the first run does a little extra downloading.
The detection hierarchy
Here's the part people trip over. If you connect multiple detectors to the processor, it doesn't combine them - it picks one. From the source: Florence2 data wins, then GroundingDINO, then YOLO. So GroundingDINO is effectively your mid-tier option: better on anime than the stock YOLO models, but it loses to data_from_florence2 if you happen to have that wired in. If you don't connect any detector, the processor just poses the whole image as one person - the right call for single-subject frames.
Install
It ships with the pack, so install the pack and you're done:
cd ComfyUI/custom_nodes
git clone https://github.com/judian17/ComfyUI-SDPose-OOD
cd ComfyUI-SDPose-OOD
pip install -r requirements.txt
The dependency that matters here is groundingdino-py, which is in that requirements file. On Windows, set PYTHONUTF8=1 before installing it - the package has encoding-related build quirks that get grumpy otherwise. ComfyUI Manager handles all of this if you'd rather not get your hands dirty.
When to reach for it
Anime character in a busy scene, or a character reference where YOLO keeps missing them? Add this loader, keep the default person . prompt, and let the processor run with it. Real-photo work with one subject? Leave it unplugged and save yourself the VRAM.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | 2 options: GroundingDINO_SwinT_OGC (694MB), GroundingDINO_SwinB (938MB) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| GROUNDING_DINO_MODEL | GROUNDING_DINO_MODEL | — |