Nodes/ComfyUI-MagicDance/(Down)Load MagicDance Model
ComfyUI Node

(Down)Load MagicDance Model

The node that quietly drags in a 2.3GB checkpoint on your first run

By bombax-xiaoice·Created 2 years ago·Updated 2 years ago· 2
(Down)Load MagicDance Model
    • pipe
    configmodel_lib/ControlNet/models/cldm_v15_reference_only_pose.yaml
    modelpretrained_weights/model_state-110000.th

    Start here, because nothing else in the pack renders until this node finishes. (Down)Load MagicDance Model builds the entire pipeline - UNet, SD 1.5 VAE, text encoder, and the two ControlNet-style branches - and, if the weights aren't on disk yet, downloads them from HuggingFace. It's the reason your first run stalls for a while on a download bar before any of the interesting nodes do anything.

    The pack is a ComfyUI port of MagicPose (USC + ByteDance, Nov 2023), the research model that animates a single reference photo along a sequence of OpenPose poses. This loader is where the whole thing comes together, and it's the only node with a genuinely surprising behavior: "Load" is doing a lot of heavy lifting.

    What it actually does

    The node reads a yaml config that describes the SD 1.5-based architecture (model_lib/ControlNet/models/cldm_v15_reference_only_pose.yaml, bundled with the repo), then loads the checkpoint on top of it. Look at the source and you'll see a lazy fallback chain for the weights file: it checks the exact path you give, then relative to the pack, then relative to your ComfyUI install, then the default pretrained_weights/ folder, and only if all of those fail does it call snapshot_download and pull model_state-110000.th (~2.3GB) from Boese0601/MagicDance on HuggingFace into pretrained_weights/. Hence the "(Down)Load" in the display name - it's a downloader masquerading as a loader.

    You can skip the surprise download by grabbing the file yourself beforehand:

    cd ComfyUI/custom_nodes/ComfyUI-MagicDance
    wget https://huggingface.co/Boese0601/MagicDance/resolve/main/model_state-110000.th \
      -O pretrained_weights/model_state-110000.th
    

    (There's an hf-mirror.com variant of that URL in the README if you're in a region where HuggingFace is slow or blocked.)

    The inputs

    Both are plain text boxes, not ComfyUI file pickers - this is a port, and it shows.

    • config - path to the architecture yaml, defaulting to the bundled cldm_v15_reference_only_pose.yaml. Leave it alone. If the file's missing the node raises an error telling you to clone the original repo - that error only fires if the repo layout is broken.
    • model - the checkpoint, defaulting to pretrained_weights/model_state-110000.th. Leave it alone too. It's the fallback chain above that makes this work whether you pre-downloaded or not.

    Output and what comes next

    The single output is the pipe (MAGICDANCEPIPE), which you wire into all three other nodes in the pack: MagicDanceEncoder (reference image → latent), MagicDanceSampler (the actual generation), and MagicDanceDecoder (latents → frames). One pipe, one run - you load the model once and thread it through.

    Getting it installed

    ComfyUI Manager can install the pack (search "ComfyUI-MagicDance"), or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/bombax-xiaoice/ComfyUI-MagicDance
    pip install -r ComfyUI-MagicDance/requirements.txt
    

    Two gotchas worth knowing before the first run. The folder must be named ComfyUI-MagicDance - the code hardcodes that path for its imports, so renaming breaks it. And requirements.txt is the original MagicDance conda environment flattened into a giant pip list; most packages are already present in a stock ComfyUI install, and if one or two fail to build (looking at you, triton and xformers), it's usually fine to move on - ComfyUI brings its own. The README says the whole thing runs on an RTX 3070 8GB with components offloaded separately, so don't assume you need a big card.

    CategoryMagicDance

    Inputs (2)

    NameTypeDefaultDescription
    configSTRINGmodel_lib/ControlNet/models/cldm_v15_reference_only_pose.yaml
    modelSTRINGpretrained_weights/model_state-110000.th

    Outputs (1)

    NameTypeDescription
    pipeMAGICDANCEPIPE