Nodes/ComfyUI-ProportionChanger/(Down)Load Mascot Pose Model
ComfyUI Node

(Down)Load Mascot Pose Model

The loader for the mascot pose model that DWPose can't do

By grmchn·Created about a year ago·Updated 3 months ago· 102
(Down)Load Mascot Pose Model
    • mascot_pose_model
    urlhttps://huggingface.co/grmchn/mascot-pose-detect/resolve/main/keypoint/dinov2_vitpose_l_v2/model.onnx
    cudatrue
    warmuptrue

    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_v2 variant (a DINOv2-backed ViTPose keypoint model). The url dropdown also offers the older dinov2_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 Detector can 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) - CUDAExecutionProvider when 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.

    CategoryProportionChanger

    Inputs (3)

    NameTypeDefaultDescription
    urlCOMBOhttps://huggingface.co/grmchn/mascot-pose-detect/resolve/main/keypoint/dinov2_vitpose_l_v2/model.onnx2 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
    cudaBOOLEANtrueUse CUDAExecutionProvider when available.
    warmupoptBOOLEANtrueRun a small dummy inference after loading.

    Outputs (1)

    NameTypeDescription
    mascot_pose_modelMASCOT_POSE_MODEL