> ## Documentation Index
> Fetch the complete documentation index at: https://mvnt.studio/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Use MVNT inside ComfyUI

> Install the comfyui-mvnt custom node package, connect your MVNT API key, and build an audio-to-dance workflow directly inside ComfyUI.

The `comfyui-mvnt` package adds MVNT motion generation as native nodes inside ComfyUI. Once installed, you can wire audio files through a chain of MVNT nodes to produce a 3D preview and a dance video — no separate API client or scripting required. The source repository is at [github.com/mvnt-app/ComfyUI-MVNT](https://github.com/mvnt-app/ComfyUI-MVNT).

## Install the package

Choose whichever method fits your ComfyUI setup.

<Tabs>
  <Tab title="ComfyUI Manager">
    1. Open ComfyUI Manager from the ComfyUI interface.
    2. Search for **MVNT**.
    3. Select `comfyui-mvnt` from the results and click **Install**.
    4. Restart ComfyUI when the install completes.
  </Tab>

  <Tab title="Comfy Registry">
    Run the following command from your terminal, then restart ComfyUI:

    ```bash theme={null}
    comfy node registry-install comfyui-mvnt
    ```
  </Tab>

  <Tab title="Manual">
    Clone the repository into your ComfyUI custom nodes directory, install the Python dependencies, then restart ComfyUI:

    ```bash theme={null}
    cd ComfyUI/custom_nodes
    git clone https://github.com/mvnt-app/ComfyUI-MVNT.git comfyui-mvnt
    cd comfyui-mvnt
    python3 -m pip install -r requirements.txt
    ```
  </Tab>
</Tabs>

## Set up your API key

You can provide your MVNT API key in two ways.

**Environment variable** — set this before launching ComfyUI:

```bash theme={null}
export MVNT_API_KEY=mvnt_live_xxxxxxxxxxxx
```

**Node field** — paste your key directly into the `api_key` field on any MVNT node in the ComfyUI canvas.

You can create and manage API keys in [MVNT Studio Platform](https://www.mvnt.studio/platform).

<Warning>
  Never export or commit a workflow JSON file that contains an API key. ComfyUI workflow exports can embed node field values, including the `api_key` field. If a key appears in a workflow file, logs, or Git history, revoke it immediately in [MVNT Studio Platform](https://www.mvnt.studio/platform) and generate a new one. Use the environment variable approach to keep keys out of workflow files entirely.
</Warning>

## Build a basic workflow

This section shows how to generate 3D dance motion from music using the ComfyUI toolbox. The workflow is a node-based pipeline where each chained node prepares, submits, and previews the audio-to-motion generation result.

<img src="https://mintcdn.com/mvntinc/pdfoH5VjTuRLISHr/images/overview.png?fit=max&auto=format&n=pdfoH5VjTuRLISHr&q=85&s=1ab2334333f8b3d57a061084d51479bc" alt="Complete MVNT ComfyUI workflow overview" width="2178" height="1554" data-path="images/overview.png" />

<Steps>
  <Step title="Load Audio">
    <img src="https://mintcdn.com/mvntinc/pdfoH5VjTuRLISHr/images/load-audio.png?fit=max&auto=format&n=pdfoH5VjTuRLISHr&q=85&s=cf5992bfc84111836096b495585dd4fd" alt="Load Audio node in ComfyUI" width="480" height="398" data-path="images/load-audio.png" />

    Add a **Load Audio** node and point it to your input audio file. Currently, only .wav files are supported. This node is a standard ComfyUI node that passes audio data downstream.
  </Step>

  <Step title="MVNT Audio Segment">
    <img src="https://mintcdn.com/mvntinc/pdfoH5VjTuRLISHr/images/audio-segment.png?fit=max&auto=format&n=pdfoH5VjTuRLISHr&q=85&s=3a89aaf1b452eaaa0316202fdc2aa7e2" alt="MVNT Audio Segment node in ComfyUI" width="482" height="396" data-path="images/audio-segment.png" />

    Connect the audio output to an **MVNT Audio Segment** node. This node trims or segments the audio to a range suitable for dance generation.

    * `start_sec`: The segment start time, in seconds.
    * `duration_sec`: The duration of the generated audio segment, in seconds. Defaults to 10 seconds, supports up to 40 seconds, and can be adjusted in 0.1-second increments.
  </Step>

  <Step title="MVNT Generate Dance">
    <img src="https://mintcdn.com/mvntinc/pdfoH5VjTuRLISHr/images/generate-dance.png?fit=max&auto=format&n=pdfoH5VjTuRLISHr&q=85&s=abda294ce967dd5deec16f6792fded3f" alt="MVNT Generate Dance node in ComfyUI" width="478" height="394" data-path="images/generate-dance.png" />

    Wire the segmented audio into an **MVNT Generate Dance** node. This node submits the audio to the MVNT API and returns the generation outputs when the job completes. This node uses the MVNT model to generate 3D motion from music. By default, generation uses the MVNT original character. To generate with a custom character, see the [Character control section](#character-control).

    1. Choose the desired motion style in the `style` field.
    2. Enter your issued API key in `api_key`.
    3. Optional advanced input: set a seed value. The default is `-1`.

    You can now preview or save the generated output.
  </Step>

  <Step title="MVNT Preview Dance 3D">
    <img src="https://mintcdn.com/mvntinc/pdfoH5VjTuRLISHr/images/preview-dance-3d.png?fit=max&auto=format&n=pdfoH5VjTuRLISHr&q=85&s=50df9da1069d8f9cd5bc579f79b08818" alt="MVNT Preview Dance 3D node in ComfyUI" width="1040" height="966" data-path="images/preview-dance-3d.png" />

    Connect the generation output to an **MVNT Preview Dance 3D** node to view the result in the ComfyUI canvas.
  </Step>

  <Step title="MVNT Render Dance Video">
    <img src="https://mintcdn.com/mvntinc/pdfoH5VjTuRLISHr/images/render-dance-video.png?fit=max&auto=format&n=pdfoH5VjTuRLISHr&q=85&s=2a59b614d4c56e4fbe7d5ab5fcf68690" alt="MVNT Render Dance Video node in ComfyUI" width="510" height="400" data-path="images/render-dance-video.png" />

    Render the generated output as a 2D video. For 2D video control using the kling `video_profile`, see the [Video control section](#video-control).

    * `video_profile`: Specify the rendering settings to use. The default is `Video Reference`.
  </Step>

  <Step title="Save Video">
    <img src="https://mintcdn.com/mvntinc/pdfoH5VjTuRLISHr/images/save-video.png?fit=max&auto=format&n=pdfoH5VjTuRLISHr&q=85&s=8a2dc2c8f3f380820eb00a991deb49ee" alt="Save Video node in ComfyUI" width="1066" height="970" data-path="images/save-video.png" />

    Use `filename_prefix`, `format`, and `codec` to configure the file name and rendering information. When generation completes, you will find two output files in your ComfyUI output directory:

    ```text theme={null}
    mvnt_<job_id>.motion.glb
    mvnt_<job_id>.dance.mp4
    ```
  </Step>
</Steps>

## Character Control

Use character control when you want the generated dance to run on your own character instead of the MVNT original character. **MVNT Generate Dance** accepts an optional `character_glb` input. When a compatible character GLB is connected, MVNT generates the motion first, then retargets that motion to the supplied character. The `dance_3d` output becomes the animated custom-character GLB.

<Steps>
  <Step title="Load Image">
    <img src="https://mintcdn.com/mvntinc/pdfoH5VjTuRLISHr/images/load-image.png?fit=max&auto=format&n=pdfoH5VjTuRLISHr&q=85&s=d26adb6678147ebca8f881e63cf1ab0a" alt="Load Image node in ComfyUI" width="434" height="200" data-path="images/load-image.png" />

    Add a **Load Image** node and select a clear, full-body character image. A front-facing image with the full body visible works best for creating a clean character reference.
  </Step>

  <Step title="MVNT Image-to-T-pose">
    <img src="https://mintcdn.com/mvntinc/pdfoH5VjTuRLISHr/images/image-to-tpose.png?fit=max&auto=format&n=pdfoH5VjTuRLISHr&q=85&s=dcb944ff74f1ca8323afea50122a3be1" alt="MVNT Image to T-Pose node in ComfyUI" width="600" height="216" data-path="images/image-to-tpose.png" />

    Connect the image to an **MVNT Image to T-Pose** node. This node converts the source character image into a front-facing T-pose image that can be used by a compatible character or rigging workflow.
  </Step>

  <Step title="Animate a custom character with Tripo">
    Use Tripo's [model generation workflow](https://docs.comfy.org/tutorials/partner-nodes/tripo/model-generation) to turn the T-pose character image into a rigged GLB that MVNT can animate.

    * Add Tripo's **Image to Model** and **Rig Model** nodes.
  </Step>
</Steps>

## Video Control

Use video control when you want the MVNT model to drive motion in a 2D image-to-video workflow. Generate dance motion with **MVNT Generate Dance**, use the `kling` video profile output as the motion reference, then follow Kling's [Motion Control workflow](https://docs.comfy.org/tutorials/partner-nodes/kling/kling-motion-control) to animate your target image.

* `reference_image`: Upload the image you want to animate.
* `reference_video`: The `kling` video profile output from **MVNT Generate Dance** is used automatically.
