Skip to content
Node packVerifiedExternal
Open source

ComfyUI-mesh2motion

A ComfyUI custom node that embeds a heavily-modified fork of Mesh2Motion as an interactive 3D editor directly inside a node.

Maintainer@jtydhr88A · adoptiongrade

Package profile

Status
Verified
Publisher
@jtydhr88
Source
GitHub

README

ComfyUI-mesh2motion

English | 简体中文

A ComfyUI custom node that embeds a heavily-modified fork of Mesh2Motion as an interactive 3D editor directly inside a node. Pick a rig, pick a camera move, tune the shot, and the node emits an IMAGE (single frame) + VIDEO (rendered camera move) that flow into the rest of your ComfyUI graph.

https://github.com/user-attachments/assets/11b87a68-32d7-45ba-b59c-4a6bb950310b


What changed vs. upstream

This is a deep rework of the original plugin. If you used an earlier version, expect the following:

  • One primary node. Node-embedded editing routes through a single Mesh2Motion Explore node; the old Create / Preview / Save variants are gone.
  • Right-click / top-menu open a separate "window" editor. The lightweight dialog path is back (1.1.0+) but it now loads its own pages (index-comfyui-window.html / create-comfyui-window.html), kept off the node-mode code path so the two never fight over DOM / bridge state. No Vue / PrimeVue runtime anymore — plain DOM modal.
  • All node-mode UI moved into the iframe. Skeleton picker, camera preset browser, tuning controls, timeline — every control the user needs is inside the embedded editor.
  • Full state persistence. Everything the user picks or tunes is saved inside node.properties, so reloading the workflow restores the exact shot.
  • Video output is first-class. The node outputs a VIDEO directly (webm decoded server-side via PyAV), no separate frame-list node needed.

Installation

cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyUI-mesh2motion.git

Restart ComfyUI. No extra Python dependencies — everything else is either bundled or already in ComfyUI.


The Mesh2Motion Explore node

Node inputs and outputs

Widgets

WidgetTypePurpose
show_skeletonboolDraws the bone helper on top of the mesh
mirror_animationsboolMirrors the animation around the rig's symmetry plane
preview_outputboolOverlays a crop rectangle matching width/height so you can see what'll actually be captured
checker_roomboolWraps the scene in a checkered room for more "AI-friendly" rendering
width / heightintOutput resolution for both IMAGE and VIDEO
fpsintFrame rate written into the VIDEO (the timeline plays at the preset's native cadence; this only sets the encoded rate)

Outputs

OutputWhen it's filled
IMAGEAlways — one screenshot of the viewport at the current playhead position
VIDEOWhen a camera preset is active — a rendered webm of the whole camera move

Usage guide

1. Drop the node and open the editor

Add Mesh2Motion Explore from the node menu (category 3d/mesh2motion). The node renders an interactive 3D editor in place — no separate window or modal.

2. Pick a skeleton (left side)

Skeleton panel

The left activity bar has a button that opens the Skeleton panel. Two sections:

  • Primitives — cube, sphere, capsule, cylinder, torus, cone. Useful for testing a camera path without loading a character, or for background elements.
  • Character rigs — Human, Fox, Bird, Dragon etc. Each rig ships with a set of compatible animations.

Selecting a character loads its rig, its default mesh, and its animation library (right panel → Animations).

3. Pick an animation (right side → Animations)

Animations panel

Opens via the right activity bar's first button. Animations are filtered to the active skeleton type. Clicking one loads it into the mesh and adds an animation track on the timeline.

4. Pick a camera preset (right side → Camera Presets)

Camera preset picker

Second b

Nodes in this pack

1 node
  • Mesh2MotionExplore

Sources

3 sources
GitHubSource
github.com/jtydhr88/ComfyUI-mesh2motion

Verified Nov 3

GitHubSourceVersion 11fe6b7aaa5eac60afa3d726389cd9dd870ed1f6
github.com/jtydhr88/ComfyUI-mesh2motion

Verified Oct 19

Source excerpts

1 excerpt

Source context: Repo jtydhr88/ComfyUI-mesh2motion