Nodes/ComfyUI-MVNT/MVNT Render Dance Video
ComfyUI Node

MVNT Render Dance Video

When the Dancer Needs to Leave ComfyUI as an MP4

By mvnt-app·Created 5 months ago·Updated 3 months ago· 3
MVNT Render Dance Video
    • dance_video
    dance_3d
    video_profileMVNT Original

    Previewing a dancing GLB in 3D is great until you want to actually use it - post it, edit it, or feed it into a video model. That's the gap MVNT Render Dance Video fills. It's the pack's optional second step: after MVNT Generate Dance has produced a dance_3d GLB, this node asks MVNT's servers to render a proper MP4 from it and hands you a VIDEO you can wire into ComfyUI's video preview or save nodes.

    The word "optional" is doing real work here. The motion generation already costs credits; a server-side video render costs more, and you don't need one just to look at the dance. The README's main flow makes the order explicit: generate → preview in 3D (free) → render the MP4 only once you've decided the dance is a keeper.

    How it works

    The clever part: this node has no API key widget and no job-id input. It figures out which generation you mean by parsing the GLB filename - mvnt_<id>.motion.glb - and pulls the job id out of it. It also reads the sidecar file Generate Dance wrote alongside the GLB to recover the character GLB and audio path, so a retargeted character shows up in the MP4 instead of the default mannequin. It then asks MVNT's server to render the scene (render-internal-scene-video, via the /render-mp4-lda endpoint), and if that path fails it falls back to simply downloading the server's existing preview MP4. Either way you get mvnt_<id>.dance.fetch.mp4 in ComfyUI/output/.

    The inputs

    • dance_3d (STRING, required) - connect the dance_3d output from MVNT Generate Dance. Don't rename the GLB; the node's whole trick is inferring the job id from that filename.
    • video_profile (enum) - two choices, and this is where the Kling workflow comes from:
      • MVNT Original - the "pretty" profile, a toon studio look. Use this when the MP4 is the final product.
      • Video Reference - the "kling" profile: a deterministic mannequin-style render meant to be a motion reference for Kling motion-transfer video. Use this when the MP4 is an input to something downstream.

    One output: dance_video (VIDEO), which connects to ComfyUI's video viewer or a save node.

    Installing it

    Part of ComfyUI-MVNT. ComfyUI Manager → search MVNT → install, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/mvnt-app/ComfyUI-MVNT.git comfyui-mvnt
    cd comfyui-mvnt
    pip install -r requirements.txt
    

    Restart ComfyUI. Dependencies are the pack's usual light set (requests, numpy, soundfile, Pillow). There's no key widget here because it reuses the MVNT_API_KEY environment variable that Generate Dance used - set it once at launch (export MVNT_API_KEY=mvnt_live_xxxxxxxxxxxxx) and both nodes pick it up.

    Gotchas

    The error people actually hit: "Could not infer job id from dance_3d." That means the GLB got renamed, or you wired something that isn't a mvnt_<id>.motion.glb path - connect the output directly and don't rename it. Second, this node needs a ComfyUI build that has the Comfy Video API; on an older build it errors out about the video API being unavailable, so update ComfyUI. Third, remember the division of labor: this node only produces the reference MP4. Kling motion transfer itself stays downstream, and the Tripo/Kling nodes are separate packs entirely - the README's "advanced" character workflows need those installed on top of this one.

    CategoryMVNT

    Inputs (2)

    NameTypeDefaultDescription
    dance_3dSTRING
    video_profileoptCOMBOMVNT Original2 options: MVNT Original, Video Reference

    Outputs (1)

    NameTypeDescription
    dance_videoVIDEO