SMPL Shape Parameters
SMPL Shape Parameters
- smpl
- SMPL
Text-to-motion models give you the choreography, but they don't much care what body is dancing it. That's where SMPL Shape Parameters comes in: it's a ten-dial character-sculptor for any SMPL body in the pack. You feed it a body, nudge sliders like size and muscle_mass, and get back the same body with different proportions - without touching the motion underneath. If you're rendering depth maps or OpenPose skeletons to drive ControlNet, this is how your generated "person" stops being a generic neutral mannequin.
The mental model is simple: SMPL models bodies as shape (who the person is - height, weight distribution) plus pose (what they're doing - joint angles over time). This node edits only the shape part, so the performance stays identical while the body that performs it changes.
How it works
SMPL's shape is controlled by a vector of "beta" coefficients - ten principal components in the standard 1.0.0 model - and each one bends the mesh in a specific way. The pack gives you friendly names instead of raw PCs: size, thickness, upper_body_height, lower_body_height, muscle_mass, legs, chest, waist_height, waist_width, and arms. When you adjust them, the node writes a shape_parameters list into the SMPL object's metadata, and it's applied at render time - Render SMPL Mesh passes it into the mesh builder when it converts parameters to vertices. The sliders run from -100 to 100 in steps of 0.01, defaulting to 0, which means "leave the body as the source gave it."
The inputs that matter
smpl- any SMPL body, usually fromSmplify Motion DataorSMPL Loader.- The ten shape sliders - honestly,
sizeandmuscle_massare the two you'll actually touch. The rest are for when you want a specific silhouette (longer legs, narrower waist) and don't mind fine-tuning.
The SMPL output is chainable, so you can stack several of these or run it straight into a render node.
Installation
Part of Fannovel16/ComfyUI-MotionDiff. Install the pack via ComfyUI Manager (search "ComfyUI MotionDiff") or cd ComfyUI/custom_nodes && git clone https://github.com/Fannovel16/ComfyUI-MotionDiff, then restart. It pulls heavy dependencies (smplx, pyrender, trimesh) and on Linux you'll want sudo apt-get install libglfw3-dev libgles2-mesa-dev freeglut3-dev before the render nodes work.
Gotchas
The big one: these sliders only affect rendering and export of the mesh. They don't retarget the motion, and the rendered body shape won't magically match your ControlNet skeleton better - the joints don't move, only the flesh around them. Also, the values are a friendly remap, not literal SMPL beta units, so don't expect scientific accuracy; treat them as "relative chubbiness" knobs. If a slider does nothing visible, check that the node actually sits between the source and your render node - the parameters only travel forward through the graph.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| smpl | SMPL | — | |
| size | FLOAT | 0.00-100–100 | — |
| thickness | FLOAT | 0.00-100–100 | — |
| upper_body_height | FLOAT | 0.00-100–100 | — |
| lower_body_height | FLOAT | 0.00-100–100 | — |
| muscle_mass | FLOAT | 0.00-100–100 | — |
| legs | FLOAT | 0.00-100–100 | — |
| chest | FLOAT | 0.00-100–100 | — |
| waist_height | FLOAT | 0.00-100–100 | — |
| waist_width | FLOAT | 0.00-100–100 | — |
| arms | FLOAT | 0.00-100–100 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SMPL | SMPL | — |