Nodes/ComfyUI-HY-Motion1/HY-Motion Generate
ComfyUI Node

HY-Motion Generate

Where your sentence becomes a 3D animation

By jtydhr88·Created 8 months ago·Updated 5 days ago· 307
HY-Motion Generate
  • network
  • conditioning
  • motion_data
duration3.0
seed42
cfg_scale5.0
num_samples1

This is the node that actually does the work. Everything else in jtydhr88's HY-Motion pack is either feeding it text or carrying away what it makes - Load Network hands it the diffusion model, Encode Text hands it the conditioning, and whatever comes out the other end gets previewed, saved, or exported. If you're new to the pack, start here and treat the rest as plumbing.

Under the hood it's Tencent's HY-Motion 1.0, a billion-parameter Motion Diffusion Transformer trained with flow matching - the same diffusion-plus-flow family that runs your image and video models, just pointed at a skeleton instead of pixels. The pack wires it into ComfyUI as an ODE solve: the node takes noise, walks it toward the motion described by your text over 50 Euler steps, and decodes the result into rotations and translation. None of that is visible to you. What you get is a motion_data blob carrying keypoints, per-joint rotations, and root translation that the Preview and Export nodes all understand.

The inputs that matter

  • network and conditioning - plug straight in from Load Network and Encode Text. Nothing to think about.
  • duration - 0.5 to 12 seconds, default 3. It gets converted to frames at 30fps and clamped to the network's 360-frame window, so 12s is the hard ceiling.
  • seed - plain old determinism dial. Same seed, same text, same duration, same motion.
  • cfg_scale - classifier-free guidance, default 5. This is your "how literally should it follow the prompt" knob, and it only kicks in above 1.0. Crank it if the motion ignores your instruction; back off if it looks stiff and overfit.
  • num_samples - 1 to 4. Generates several motion variants in one pass, each seeded from seed + i. Handy for picking the best take, but it multiplies VRAM, so don't max it out on a small card.

The single output, motion_data, is the value that every downstream node in the pack consumes.

The workflow around it

Minimally: Load Network → Load LLM → Encode Text → this node → Preview. The recommended version inserts Load Prompter → Rewrite Prompt first, which hands Encode Text a cleaned-up English description and hands this node a sensible duration estimate - that's the one the README pushes, and it's a genuine quality bump for anything you write casually.

Install & the honest VRAM story

Install the pack (ComfyUI Manager, search "ComfyUI-HY-Motion1", or git clone https://github.com/jtydhr88/ComfyUI-HY-Motion1 into custom_nodes/, then pip install -r requirements.txt), and download the network weights to ComfyUI/models/HY-Motion/ckpts/tencent/HY-Motion-1.0/ (config.yml + latest.ckpt, from huggingface.co/tencent/HY-Motion-1.0).

The trap nobody warns you about on the way in: this node is only a few GB of the budget. The full network wants ~8GB of VRAM on top of the ~16GB a full Qwen3-8B encoder eats, and people promptly started a thread going "24GB is overkill" after the December 2025 launch. The pack's answer is HY-Motion-1.0-Lite (~4GB) plus a quantized encoder (int4/bnb-4bit/AWQ or GGUF) - that combination is how you actually fit this on a 12GB card. If generation fails with an OOM, that's almost never the diffusion model's fault; it's the encoder sitting next to it in memory. Start with num_samples at 1 and the Lite weights before you blame the node.

CategoryHY-Motion

Inputs (6)

NameTypeDefaultDescription
networkHYMOTION_NET
conditioningHYMOTION_COND
durationFLOAT3.00.5–12
seedINT420–2147483647
cfg_scaleoptFLOAT5.01–15
num_samplesoptINT11–4

Outputs (1)

NameTypeDescription
motion_dataHYMOTION_DATA