Nodes/ComfyUI-HY-Motion1/HY-Motion Save NPZ
ComfyUI Node

HY-Motion Save NPZ

The boring node that speaks every 3D tool's language

By jtydhr88·Created 8 months ago·Updated 5 days ago· 307
HY-Motion Save NPZ
  • motion_data
  • STRING
output_dirhymotion_npz
filename_prefixmotion

The least glamorous node in the pack and quietly one of the most important. HY-Motion Save NPZ writes your generated motion to the .npz format - a compressed NumPy archive - that the broader text-to-motion ecosystem actually uses. When you see motion datasets and retargeting scripts elsewhere, NPZ is usually the file format they expect. This is the node that makes your HY-Motion output portable instead of trapped inside ComfyUI.

Here's the thing: every other node in the pack consumes motion_data directly because they're all in the same pack. The moment you want to take that motion somewhere else - feed it to a retargeting script, a custom renderer, a training pipeline, another pack - you need a file, and this is the format those tools understand. It's the "save your work" node, and it's the one you'll reach for when the demo is over and you actually need the data.

What it saves

Per generated sample, one .npz containing the raw motion arrays: keypoints3d (the 3D joint positions), rot6d (per-joint 6D rotations), transl (root translation), and root_rotations_mat, plus the source text, the duration, and the seed as metadata. That's the complete motion representation the pack works with - save it and you can recreate or re-export the exact same animation.

Inputs

  • motion_data - from HY-Motion Generate.
  • output_dir - subfolder under ComfyUI's output/, default hymotion_npz.
  • filename_prefix - default motion. Files land as motion_<timestamp>_<id>_<index>.npz (the index is the sample number if you generated multiple).

The node returns a single STRING with the newline-separated paths, relative to the output folder, so you can see exactly where everything went. It's an output node, so it also marks the end of the graph.

Notes and gotchas

There's nothing to configure, which is the point - three inputs, one repeatable result. A few practical things: if you generated num_samples > 1 on Generate, you get one NPZ per sample, each carrying its own seed; keep them straight by the index in the filename. And while the .txt-sidecar habit of the FBX/GLB exporters stores the prompt separately, here the text is inside the archive, which is nicer for round-tripping. Don't mistake this for a Blender-importable format, though - it's the raw motion representation, not a scene file. Blender imports the FBX/GLB outputs; NPZ is for scripts and pipelines. If you only ever want one file format, pick based on where the motion is going next, not on which node sounds fancier.

CategoryHY-Motion

Inputs (3)

NameTypeDefaultDescription
motion_dataHYMOTION_DATA
output_dirSTRINGhymotion_npz
filename_prefixSTRINGmotion

Outputs (1)

NameTypeDescription
STRINGSTRING