63 lines
1.8 KiB
Markdown
63 lines
1.8 KiB
Markdown
---
|
|
tags:
|
|
- SMPLModel
|
|
---
|
|
|
|
# Save SMPL
|
|
## Documentation
|
|
- Class name: `SaveSMPL`
|
|
- Category: `MotionDiff/smpl`
|
|
- Output node: `True`
|
|
|
|
The SaveSMPL node is designed for saving SMPL model data, including thetas and metadata, to a specified output directory. It supports appending a custom prefix to the filename and saving the data in a structured format for further use or analysis.
|
|
## Input types
|
|
### Required
|
|
- **`smpl`**
|
|
- The SMPL model data to be saved, including thetas and metadata, which are crucial for reconstructing the 3D model.
|
|
- Comfy dtype: `SMPL`
|
|
- Python dtype: `Tuple[torch.Tensor, torch.Tensor, Dict]`
|
|
- **`filename_prefix`**
|
|
- A prefix for the filename to help organize and identify the saved SMPL model data files easily.
|
|
- Comfy dtype: `STRING`
|
|
- Python dtype: `str`
|
|
## Output types
|
|
The node doesn't have output types
|
|
## Usage tips
|
|
- Infra type: `CPU`
|
|
- Common nodes: unknown
|
|
|
|
|
|
## Source code
|
|
```python
|
|
class SaveSMPL:
|
|
def __init__(self):
|
|
self.output_dir = folder_paths.get_output_directory()
|
|
self.type = "output"
|
|
self.prefix_append = "_smpl"
|
|
|
|
@classmethod
|
|
def INPUT_TYPES(s):
|
|
return {
|
|
"required": {
|
|
"smpl": ("SMPL", ),
|
|
"filename_prefix": ("STRING", {"default": "motiondiff_pt"})
|
|
}
|
|
}
|
|
|
|
RETURN_TYPES = ()
|
|
FUNCTION = "save_smpl"
|
|
|
|
OUTPUT_NODE = True
|
|
|
|
CATEGORY = "MotionDiff/smpl"
|
|
|
|
def save_smpl(self, smpl, filename_prefix):
|
|
_, thetas, meta = smpl
|
|
filename_prefix += self.prefix_append
|
|
full_output_folder, filename, counter, subfolder, filename_prefix = folder_paths.get_save_image_path(filename_prefix, self.output_dir, 196, 24)
|
|
file = f"{filename}_{counter:05}_.pt"
|
|
torch.save({ "thetas": thetas, "meta": meta }, os.path.join(full_output_folder, file))
|
|
return {}
|
|
|
|
```
|