SMPL Loader¶
Documentation¶
- Class name:
SMPLLoader
- Category:
MotionDiff/smpl
- Output node:
False
The SMPLLoader node is designed to load and process SMPL model data from specified files, facilitating the integration of SMPL models into motion analysis and synthesis workflows.
Input types¶
Required¶
smpl
- Specifies the file name of the SMPL model to be loaded. This file contains essential data for motion synthesis, including pose parameters.
- Comfy dtype:
COMBO[STRING]
- Python dtype:
str
smpl_model
- Determines the specific SMPL model to be used, affecting the interpretation of the loaded SMPL data.
- Comfy dtype:
COMBO[STRING]
- Python dtype:
str
Output types¶
smpl
- Comfy dtype:
SMPL
- Outputs a tuple containing the path to the SMPL model, pose parameters (thetas), and metadata, ready for further processing or visualization.
- Python dtype:
Tuple[str, torch.Tensor, Dict]
- Comfy dtype:
Usage tips¶
- Infra type:
CPU
- Common nodes: unknown
Source code¶
class SMPLLoader:
@classmethod
def INPUT_TYPES(s):
global smpl_model_dicts
smpl_model_dicts = get_smpl_models_dict()
input_dir = folder_paths.get_input_directory()
files = [f for f in os.listdir(input_dir) if os.path.isfile(os.path.join(input_dir, f))]
files = folder_paths.filter_files_extensions(files, ['.pt'])
return {
"required": {
"smpl": (files, ),
"smpl_model": (list(smpl_model_dicts.keys()), {"default": "SMPL_NEUTRAL.pkl"})
}
}
RETURN_TYPES = ("SMPL", )
FUNCTION = "load_smpl"
CATEGORY = "MotionDiff/smpl"
def load_smpl(self, smpl, smpl_model):
input_dir = folder_paths.get_input_directory()
smpl_dict = torch.load(os.path.join(input_dir, smpl))
thetas, meta = smpl_dict["thetas"], smpl_dict["meta"]
global smpl_model_dicts
if smpl_model_dicts is None:
smpl_model_dicts = get_smpl_models_dict()
smpl_model_path = smpl_model_dicts[smpl_model]
return ((smpl_model_path, thetas, meta), )