68 lines
2.6 KiB
Markdown
68 lines
2.6 KiB
Markdown
---
|
|
tags:
|
|
- Face
|
|
---
|
|
|
|
# Load Instance PositionNet Model
|
|
## Documentation
|
|
- Class name: `LoadInstancePositionNetModel`
|
|
- Category: `instance/loaders`
|
|
- Output node: `False`
|
|
|
|
This node is designed to load the PositionNet model, a component of the instance diffusion framework, by reading a specified model file and applying necessary configurations. It facilitates the initialization of PositionNet with predefined parameters and the option to include segmentation information, thereby preparing the model for subsequent instance-based processing tasks.
|
|
## Input types
|
|
### Required
|
|
- **`model_filename`**
|
|
- Specifies the filename of the PositionNet model to be loaded. This parameter is crucial for identifying and retrieving the correct model file from a predefined directory.
|
|
- Comfy dtype: `COMBO[STRING]`
|
|
- Python dtype: `str`
|
|
- **`use_segs`**
|
|
- Determines whether segmentation information should be utilized in the PositionNet model configuration. This boolean flag allows for flexible adaptation of the model based on the presence of segmentation data.
|
|
- Comfy dtype: `BOOLEAN`
|
|
- Python dtype: `bool`
|
|
## Output types
|
|
- **`positionnet`**
|
|
- Comfy dtype: `POSITIONNET`
|
|
- The loaded PositionNet model, ready for use in instance-based processing tasks. This output encapsulates the model initialized with the specified configurations.
|
|
- Python dtype: `torch.nn.Module`
|
|
- **`fusers`**
|
|
- Comfy dtype: `FUSERS`
|
|
- The loaded fusers model, which is part of the instance diffusion framework, ready for integration with other components.
|
|
- Python dtype: `torch.nn.Module`
|
|
- **`scaleu`**
|
|
- Comfy dtype: `SCALEU`
|
|
- The loaded ScaleU model, another component of the instance diffusion framework, prepared for use in scaling and processing instances.
|
|
- Python dtype: `torch.nn.Module`
|
|
## Usage tips
|
|
- Infra type: `GPU`
|
|
- Common nodes: unknown
|
|
|
|
|
|
## Source code
|
|
```python
|
|
class LoadInstancePositionNetNode:
|
|
@classmethod
|
|
def INPUT_TYPES(s):
|
|
return {"required": {
|
|
"model_filename": (get_model_list(constants.INSTANCE_POSITIONNET_DIR),),
|
|
"use_segs": ("BOOLEAN", {"default": True}),
|
|
}}
|
|
|
|
RETURN_TYPES = ("POSITIONNET", "FUSERS", "SCALEU",)
|
|
FUNCTION = "load_model"
|
|
|
|
CATEGORY = "instance/loaders"
|
|
|
|
def load_model(self, model_filename: str, use_segs: bool):
|
|
checkpoint = load_checkpoint(
|
|
constants.INSTANCE_POSITIONNET_DIR, model_filename)
|
|
params = get_positionnet_default_params()
|
|
params["use_segs"] = use_segs
|
|
model = prepare_positionnet(checkpoint, params)
|
|
positionnet = {
|
|
'model': model,
|
|
}
|
|
return (positionnet,)
|
|
|
|
```
|