(Down)Load Mascot Pose Model
The loader for the mascot pose model that DWPose can't do
- mascot_pose_model
If you've ever tried to pose-detect a mascot, you know the problem: DWPose was trained on humans, and a person inside a cartoon character suit produces a skeleton that looks like it was assembled by a committee. DownloadAndLoadMascotDWPoseModel is the model-side fix for that - it downloads and loads a mascot-specific keypoint model so Mascot Pose Detector can estimate poses on suit characters and stylized bodies that a human detector will never understand.
How it works
The node pulls from grmchn/mascot-pose-detect on HuggingFace into ComfyUI/models/mascot_body_detect/ and loads everything into ONNXRuntime sessions. Two things are worth knowing about what it actually fetches:
- The default keypoint model is the
keypoint/dinov2_vitpose_l_v2variant (a DINOv2-backed ViTPose keypoint model). Theurldropdown also offers the olderdinov2_vitpose_l, so you can switch variants without hunting for files. - It silently pulls the bbox model as a sidecar too. The mascot keypoint model is top-down - it needs a body region-of-interest before it estimates joints - so this loader grabs both the bounding-box detector and the keypoint model in one shot. That's why
Mascot Pose Detectorcan be a single-input node even though it really runs two models.
As with the sibling bbox loader, it checks a .repo_id marker before re-downloading, so a stale or foreign model directory gets refreshed rather than silently reused.
The inputs
- url - enum of the two allowed keypoint model URLs. Defaults to the v2 variant.
- cuda (default on) -
CUDAExecutionProviderwhen available, CPU fallback otherwise. - warmup (default on) - one dummy inference after load so your first detection isn't a cold start.
Output is the mascot_pose_model handle, which feeds Mascot Pose Detector - and that's its only consumer.
Install and the real-world caveat
Same shared pack install - ComfyUI Manager search "ComfyUI-ProportionChanger", or clone + pip install -r requirements.txt + restart. The models download on first run, so give it network access once. The dependency to actually pay attention to is onnxruntime: the pack installs CPU-only onnxruntime by default, and cuda=true will quietly fall back to CPU. If your ComfyUI manages CUDA providers separately, install onnxruntime-gpu as the README suggests, or mascot detection stays slow.
One honest caveat before you get your hopes up: "mascot" here means a body with proportions DWPose can't estimate - think costume/suit characters, chibi-style, or otherwise stylized figures - and the model is trained to produce a human-like 25-point skeleton on those shapes. It's genuinely useful, but it's not magic: very low-light, heavily cropped, or deeply unnatural poses will still come back with a thin or empty skeleton. Render the output before you build a workflow around it.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| url | COMBO | https://huggingface.co/grmchn/mascot-pose-detect/resolve/main/keypoint/dinov2_vitpose_l_v2/model.onnx | 2 options: https://huggingface.co/grmchn/mascot-pose-detect/resolve/main/keypoint/dinov2_vitpose_l_v2/model.onnx, https://huggingface.co/grmchn/mascot-pose-detect/resolve/main/keypoint/dinov2_vitpose_l/model.onnx |
| cuda | BOOLEAN | true | Use CUDAExecutionProvider when available. |
| warmupopt | BOOLEAN | true | Run a small dummy inference after loading. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| mascot_pose_model | MASCOT_POSE_MODEL | — |