Zhiyang Guo, Jinxu Xiang, Kai Ma, Wengang Zhou, Houqiang Li, Ran Zhang
git clone https://github.com/jasongzy/Make-It-Animatable --recursive --single-branch
cd Make-It-Animatable
# For training
conda create -n mia python=3.10
conda activate mia
pip install -r requirements.txt
# For demo with different dependencies
conda create -n mia-demo python=3.11
conda activate mia-demo
pip install -r requirements-demo.txtWhy have two environments?
We have to split the environments of training and demo for now because of the following dependency conflict:
- Blender
bpy==4.0that requirespython==3.10works fine for trainingbpy>=4.1that requirespython==3.11has bugs and will raiseSegmentation faultin dataset loading whennum_workers>1(tested withbpy==4.3.0, still buggy)
- 3DGS Render Blender Addon required by the demo app only supports
bpy>=4.2
Hope this can be resolved by future updates of Blender.
First of all, get the Git LFS placeholder files (only metadata, won't download the actual data content):
git lfs install
GIT_LFS_SKIP_SMUDGE=1 git -C data clone https://huggingface.co/datasets/jasongzy/Mixamo
# git -C data/Mixamo submodule update --init
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/jasongzy/Make-It-Animatable /tmp/hf-data # can be deleted laterNow download some data required for both training and demo:
git -C data/Mixamo lfs pull -I 'bones*.fbx,animation'Download the pretrained models:
git -C /tmp/hf-data lfs pull -I output/best/new
mkdir -p output/best && cp -r /tmp/hf-data/output/best/new output/best/Download the example data:
git -C /tmp/hf-data lfs pull -I data
cp -r /tmp/hf-data/data/* data/Download some tools:
wget https://github.com/facebookincubator/FBX2glTF/releases/download/v0.9.7/FBX2glTF-linux-x64 -O util/FBX2glTF
chmod +x util/FBX2glTFDownload the training dataset:
git -C data/Mixamo lfs pull -I 'bones*.fbx,animation,animation_extra,character_refined,character_rabit_refined'Download the pretrained weights of AE (only for training from scratch):
git -C /tmp/hf-data lfs pull -I output/ae
cp -r /tmp/hf-data/output/ae output/About the online pairing of FBX files
During training, we do online pairing of characters and animations (skeletal motion sequences) using Blender to reduce the storage size of dataset while ensuring the diversity of training samples.
This basically includes the following steps (implemented using Blender's bpy API):
- Sample a character and a motion sequence, apply the motion to the character to create animated sequences, and optionally do retargeting for better poses.
- Sample some frames from the animated sequences to get the training samples of the current iteration.
- Extract the necessary ground-truth data (blend weights, bone positions, poses, etc.) for all sampled frames.
- Sample some points from the surface of the animated mesh as the input shape representation.
So if you want to get rid of the Blender dependency during training, you can iterate through the entire dataset in advance and store the results (may take a lot of storage space).
conda activate mia-demo
python app.pyAn online demo is also available at Hugging Face Spaces.
conda activate mia
bash train.shTips:
- For the flexibility and efficiency during training, the models for predicting weights, bones, and poses are trained separately. If you wish to train them jointly and share decoder parameters across them, just modify the
train.shscript by enabling all--predict_*flags. - The hyperparameters in
train.share set for training on A100 80G GPU. To reduce the VRAM usage, consider decreasing the--batch_sizeand--sample_framesvalues.
- The dual-quaternion representation adopted in learning pose-to-rest transformations is replaced by a more effective rotation representation ortho6d along with the joint positions.
- Some samples from the 3DBiCar Dataset proposed in RaBit (rigged by Mixamo) are included in training to improve the generalization to characters with unusual head-body ratio.
@inproceedings{Guo_2025_CVPR,
author={Guo, Zhiyang and Xiang, Jinxu and Ma, Kai and Zhou, Wengang and Li, Houqiang and Zhang, Ran},
title={Make-It-Animatable: An Efficient Framework for Authoring Animation-Ready 3D Characters},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2025},
}