Automatic AI-powered 3D character rigging inside ComfyUI
Features • Installation • Requirements • Nodes • Parameters • Credits
ComfyUI-SkinToken wraps VAST-AI/SkinTokens into ComfyUI custom nodes, enabling fully automatic skeleton generation and skinning weight prediction for arbitrary 3D character meshes. Feed it a TRIMESH input and get back a production-ready rigged GLB/FBX — no manual bone placement required.
- 🦴 Automatic Skeleton Generation — Predicts joint positions, hierarchy, and bone lengths from mesh geometry alone
- 🎨 Skinning Weight Prediction — AI-generated vertex weights with configurable groups per vertex
- 🔄 Transfer Rigging — Transfer a generated rig back onto the original high-detail mesh
- 📐 Bottom Center Origin — Automatically align the skeleton origin to the bottom-center of the mesh bounding box
- 🧹 Auto Mesh Cleanup — Merge vertices by distance and shade smooth by angle before export
- 🏷️ Skeleton Templates — Rename bones to Mixamo or Unreal Engine 5 naming conventions
- 📦 Auto Model Download — Checkpoints are pulled from HuggingFace on first run
- 🖥️ Headless Blender Export — Works without a Blender GUI via background process
Search for ComfyUI-SkinToken in ComfyUI Manager and install.
cd ComfyUI/custom_nodes
git clone https://github.com/Rizzlord/ComfyUI-SkinToken.git
cd ComfyUI-SkinToken
pip install -r requirements.txt| Requirement | Details |
|---|---|
| GPU | CUDA-capable GPU (inference runs on GPU) |
| Blender | Blender 4.0+ on PATH or set SKINTOKEN_BLENDER_BIN env var |
| Python | Python 3.10+ (ComfyUI environment) |
| VRAM | ~4 GB for the default checkpoint |
transformers>=4.57.0
diffusers>=0.35.0
python-box
einops
omegaconf
lightning
addict
fast-simplification
trimesh
open3d
huggingface_hub
numpy>=1.26.0
scipy
Downloads the required model checkpoints from HuggingFace into ComfyUI/models/skintoken/.
| Output | Type | Description |
|---|---|---|
status |
STRING | Download result summary |
models_dir |
STRING | Path to the models directory |
The main rigging node. Takes a TRIMESH input and outputs a rigged mesh.
| Output | Type | Description |
|---|---|---|
trimesh |
TRIMESH | The rigged mesh |
rigged_path |
STRING | File path to the exported model |
asset |
SKINTOKEN_ASSET | Internal asset for chaining |
backend |
STRING | bpy or blender_headless |
| Parameter | Type | Default | Description |
|---|---|---|---|
ckpt_name |
dropdown | grpo_1400.ckpt |
Model checkpoint to use |
device |
dropdown | auto |
Inference device (auto / cuda) |
save_file |
bool | True |
Save output to the output directory |
filename_prefix |
string | 3D/SkinToken_ |
Output filename prefix |
file_format |
dropdown | glb |
Export format (glb / fbx) |
use_transfer |
bool | False |
Transfer rig onto the original mesh |
use_postprocess |
bool | False |
Apply voxel-based skin postprocessing |
group_per_vertex |
int | 4 |
Max bone influences per vertex |
bottom_center_origin |
bool | False |
Set skeleton origin to bottom-center of mesh |
smooth_angle |
float | 55.0 |
Angle threshold for shade smooth |
skeleton_template |
dropdown | Keep model names |
Bone naming convention |
top_k |
int | 5 |
Top-K sampling for generation |
top_p |
float | 0.95 |
Nucleus sampling threshold |
temperature |
float | 1.0 |
Sampling temperature |
repetition_penalty |
float | 2.0 |
Repetition penalty |
num_beams |
int | 10 |
Beam search width |
| Variable | Description |
|---|---|
SKINTOKEN_BLENDER_BIN |
Path to the Blender binary (overrides auto-detection) |
SKINTOKEN_FORCE_HEADLESS |
Set to 1 to always use headless Blender export |
[Load 3D Model] → [TRIMESH] → [SkinToken Rig] → [Rigged GLB/FBX]
- Load a 3D mesh as TRIMESH (using any mesh loader node)
- Connect to SkinToken Rig
- Configure skeleton template, export format, and generation params
- Execute — the node predicts skeleton + weights and exports through Blender
use_transfer = Trueproduces better results for detailed meshes — it transfers the predicted rig back onto the original geometry preserving all detailbottom_center_origin = Trueis recommended for game engine workflows (Unreal, Unity) where the pivot point should be at the character's feetskeleton_template = "Unreal Engine 5"maps bones to UE5 naming for direct Mannequin retargeting- Lower
temperatureand highernum_beamsproduce more deterministic skeletons - Increase
group_per_vertexfor smoother deformations at the cost of performance
- SkinTokens by VAST-AI — the underlying rigging model
- Qwen3-0.6B — language model backbone for token generation
This node pack wraps the SkinTokens model. Please refer to the SkinTokens repository for model licensing terms.
