Motion Prompt
You write 20 words, it writes the 130 that hold the shot together
- layout
- prompt
- summary
This node is a text builder, and it's the one place in the pack where your words matter. You type what the character does. It writes the sentence that says the camera never moves, the panels never resize, and all the copies do it in unison - because if nobody says that, the video model has no reason to honour any of it.
If you're new to the pack: the whole trick is that three orthographic renders (front, side, back) get glued onto one wide canvas before an image-to-video model ever sees them. Panels inside one frame share the model's attention, so they stay in step for free. Three separate clips would drift apart within a few frames. That plan only works if the prompt keeps telling the model that it's looking at one sheet with a locked-off camera in each panel.
What it actually builds
The template lives in pipeline/prompt.py. Roughly 140 words come out, of which about 20 are yours.
Three things in it were arrived at by running the thing, not by taste:
The action goes first. With the layout constraints in front, an early "crouch and jump" prompt produced arms overhead and feet that never left the ground. Constraints are necessary, but they crowd out the motion when they lead. This is the same word-order effect the prompt-writing canon already knows - earlier tokens get more weight, so the thing you care about goes at the top.
Panels are named by position, not just by view. "left panel front view, centre panel side profile, right panel back view" holds. "three views of the character" does not - the model reorders them.
The background is described in words taken from the triptych's own layout. The default canvas is #E4E4E6, which averages 228 and reads as light grey. Calling it white invites the model to lighten the background, and a repainted background breaks the split step, which finds the panels by looking for everything that isn't the background colour.
One deliberate oddity: the standard advice is that prompts past ~75–100 effective tokens start to drift, and this one is far longer. Here the length is structural. You're spending the budget on constraints instead of description, which is a trade that only makes sense when the picture is already built and the model's only job is to not ruin it.
Inputs and outputs
action - the only thing you should think about. "raises its right arm and waves twice, then lowers it". No camera or layout instructions; those get added for you.
subject - how to refer to the character in the sentence: "clay toy character", "four-legged creature". Weirdly high leverage, because it's the noun the model binds the motion to.
loop - adds a clause saying the motion ends in exactly the pose it started in.
Optional: layout (wire Triptych Compose's output in and the view names and background come from the triptych that was actually built, so the prompt can't describe a canvas you didn't make), view_names (used only when no layout is connected), and extra (any further constraint, appended at the end).
Two outputs: prompt, which goes to your video node's prompt input, and summary - the action re-cased, deliberately the same string the prompt was built from so the manifest can't claim one motion while the clip shows another. Wire that into Save Keyframe Manifest's motion_description.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/meryboth/from-mesh-to-motion
# restart ComfyUI
Or ComfyUI Manager → search from-mesh-to-motion → install, or comfy node install from-mesh-to-motion. Dependencies are Pillow and numpy; torch comes from ComfyUI, so don't install a second one. No model downloads, no GPU - the whole graph is Pillow and numpy until the video node, and that one is a Comfy partner node billed per call. That key is unrelated to the registry publishing token, and the local half of the pipeline runs without it: bring your own clip and start at Triptych Register.
Where people get burned
Empty action raises No action given rather than sending a prompt without a motion in it - that's the node being kind.
The real trap is editing the scaffolding. Delete one clause out of the middle and nothing errors; you just get a sheet whose panels quietly disagree about where the arms are. That failure is exactly what this pipeline exists to prevent, so the ~120 words are not yours to edit. If you need more, use extra.
And if you changed the canvas colour in Triptych Compose but left layout unwired, the prompt will call your dark grey canvas "flat light grey". Wire the layout. It costs one link and removes a whole class of "why did the background change" confusion.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| action | STRING | raises both arms straight overhead, holds for a moment, then lowers them back down | Only what the character does. No camera or layout instructions -- those are added for you, in the order that was measured to work. |
| subject | STRING | clay toy character | How to refer to the character, e.g. 'clay toy character', 'four-legged creature'. |
| loop | BOOLEAN | false | — |
| layoutopt | FMM_LAYOUT | — | |
| view_namesopt | STRING | front,side,back | Used only when no layout is connected. |
| extraopt | STRING | Any further constraint, appended at the end. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| summary | STRING | — |