Nodes/ComfyUI MotionDiff/Empty Motion Data
ComfyUI Node

Empty Motion Data

Empty Motion Data

By Fannovel16·Created 3 years ago·Updated 2 years ago· 212
Empty Motion Data
    • MOTION_DATA
    frames196

    Empty Motion Data looks like a node that does nothing, and in one sense it does: it produces a blank motion sequence. But it's also the node that decides how long your generated motion will be, which makes it a quiet but essential part of every text-to-motion graph in this pack. Think of it as the motion version of EmptyLatentImage - the empty canvas the diffusion sampler starts from and slowly fills in with movement.

    In the standard pipeline, it goes like this: Empty Motion DataMotionCLIP Text Encode (which bakes your prompt and this blank sequence into conditioning) → MotionDiff Simple Sampler. The sampler denoises the blank into actual joint positions, and the length of that blank is the length of the finished motion.

    How it works

    Motion diffusion works in a joint-coordinate space rather than image latents, but the mechanism is the same shape: you start from noise - here, an "empty" motion of the right length - and iteratively denoise toward something that matches your text conditioning. The single input sets how many frames that blank has, which caps the output length at the same number.

    The input that matters

    • frames - how many frames of motion to generate, default 196, max 196, min 1. The cap isn't arbitrary: every model in the pack was trained on the HumanML3D dataset, which records at 20 fps, so 196 frames is roughly 9.8 seconds of movement. That's the practical ceiling for a single generation pass.

    The MOTION_DATA output feeds both MotionCLIP Text Encode and MotionDiff Simple Sampler.

    Installation

    Part of Fannovel16/ComfyUI-MotionDiff. Install the pack via ComfyUI Manager (search "ComfyUI MotionDiff") or clone it into ComfyUI/custom_nodes and install requirements, then restart. It's a heavyweight pack - smplx, pyrender, spacy, timm - and models auto-download from HuggingFace on first use.

    Gotchas

    The frames cap is the thing that trips people up. If you need a longer clip, don't fight the max - generate a few batches (the README and the community both recommend 20–196 frame batches) and either sample every other frame or stitch them in a video editor. That's exactly the approach used for the "Pony SDXL MotionDiff Txt2Vid" music videos you'll see floating around.

    One subtle gotcha: because the length is fixed at creation time and baked into the conditioning, changing frames after wiring up the graph means re-running the text encode too, or your conditioning and your blank disagree. Set the length first, then prompt.

    CategoryMotionDiff

    Inputs (1)

    NameTypeDefaultDescription
    framesINT1961–196

    Outputs (1)

    NameTypeDescription
    MOTION_DATAMOTION_DATA