Nodes/Melite Utility Nodes/๐Ÿ•บ HY-Motion Model (dropdown)
ComfyUI Node

๐Ÿ•บ HY-Motion Model (dropdown)

The wrapper directory that trips everyone up

By JayDataEngineerยทCreated 2 months agoยทUpdated 3 days agoยท 1
๐Ÿ•บ HY-Motion Model (dropdown)
    • model_path
    โ—„model_dir(no model directories found)โ–บ

    HY-Motion is Tencent's open motion model - one of the repos the Hunyuan program was still actively pushing through 2026, alongside the HunyuanWorld line. It hands you a .npz motion, which is exactly what you feed into a rig or an avatar pipeline. Its ComfyUI loader wants a model_path STRING, hand-typed, absolute. This node hands you the right one from a dropdown, including the part everyone gets wrong: the doubled directory name.

    The problem it solves

    Raw-STRING path inputs are the tax you pay for using other people's custom nodes. You copy an example workflow, it has /mnt/data/models/... in a text field, you edit it, you typo it, you get a loader error that tells you nothing about which of the four path-shaped fields is wrong. A dropdown removes the typo class of failure entirely and makes the workflow portable-ish, since the path is resolved from your machine's configuration rather than baked in.

    How it works

    The node scans the immediate subdirectories of your HY-Motion root and lists them as a dropdown - one entry per checkpoint variant. It skips hidden entries (dotfiles), so a .cache sitting next to your weights doesn't pollute the list.

    Then it does something the other directory pickers in this pack don't. The selected variant is expanded into a nested path: <root>/<variant>/<variant>. That's because HY-Motion's checkpoint layout drops the model into a same-named wrapper directory, so HY-Motion-1.0 the variant becomes .../tencent/HY-Motion-1.0/HY-Motion-1.0 on disk. If you've ever pointed a loader at the outer folder and gotten a "config not found" style error, that layout is why. Here you pick the variant once and the wrapper is handled.

    The root itself is HYMOTION_MODEL_ROOT if that environment variable is set, otherwise the pack's built-in default. It also re-runs when the root directory's mtime changes, so dropping in a new variant invalidates the node rather than serving you a stale path.

    Inputs and output

    model_dir - the dropdown. One row per variant under the root; a placeholder row if the folder is empty or unreadable. Pick the variant, not the weights file.

    model_path - a STRING: the fully expanded nested path. Wire it into HYMotionTextTo3D's model_path input. Because it's a plain STRING, it also drops into any other node that wants the same path.

    Installing it

    cd /path/to/ComfyUI/custom_nodes
    git clone https://github.com/JayDataEngineer/melite-utility-nodes.git
    

    Restart, or install Melite Utility Nodes through ComfyUI Manager. The pack's requirements.txt pulls matplotlib and av; this picker needs neither, but they come along.

    The node ships no models - you download HY-Motion yourself. Then point it at your root:

    export HYMOTION_MODEL_ROOT=/path/to/HY-Motion/ckpts/tencent
    

    Set that where ComfyUI actually reads its environment: the launcher script, a systemd unit, the Docker -e flag or an ENV line in your build. Setting it in a shell you don't launch ComfyUI from is the classic no-op.

    Note the layout: the root must be the folder containing the variants, not the variant folder itself. The pack's default assumes .../HY-Motion/ckpts/tencent with variants inside it.

    Where it bites

    • Empty dropdown. If the root doesn't exist or has no subdirectories, you get one placeholder row and the node refuses to run with a message naming the env var to set. That's the good failure - but it looks like a broken node until you read the text.
    • Off-by-one directory. Pointing HYMOTION_MODEL_ROOT at a variant rather than the containing folder gives you a list of that variant's subdirectories, and a nonsense nested path from there. If the dropdown contents look like internals, your root is one level too deep.
    • Only immediate children are listed. Deeper nesting is invisible; the picker is not a recursive search.
    • If you're new to HY-Motion, expect to figure it out yourself. There's essentially no ComfyUI community discussion of this model - no threads, no wrapper packs, no shared workflows - which is precisely why a first-party picker for it exists. The upside is that the README for this node is honest about what the path should look like, which is more than most 3D-era model repos manage.
    CategoryTechNoir/Utility

    Inputs (1)

    NameTypeDefaultDescription
    model_dirCOMBO(no model directories found)HY-Motion checkpoint variant. Resolves to the nested model path <root>/<variant>/<variant> expected by HYMotionTextTo3D.

    Outputs (1)

    NameTypeDescription
    model_pathSTRINGโ€”