64 lines
1.9 KiB
Markdown
64 lines
1.9 KiB
Markdown
|
|
# Documentation
|
|
- Class name: SaltMaskMinorityRegion
|
|
- Category: SALT/Masking/Filter
|
|
- Output node: False
|
|
|
|
该节点旨在识别和分离给定蒙版集合中的少数区域,通过应用阈值来区分这些区域。它专注于突出蒙版数据中不太普遍的特征,可能用于进一步分析或处理。
|
|
|
|
# Input types
|
|
## Required
|
|
- masks
|
|
- masks输入代表要处理的蒙版图像集合,目的是识别每个蒙版中的少数区域。
|
|
- Comfy dtype: MASK
|
|
- Python dtype: torch.Tensor
|
|
- threshold
|
|
- threshold参数决定了少数区域检测的灵敏度,影响哪些区域基于其像素强度被视为少数区域。
|
|
- Comfy dtype: INT
|
|
- Python dtype: int
|
|
|
|
# Output types
|
|
- MASKS
|
|
- 输出是一个蒙版张量,每个蒙版对应原始输入蒙版中分离出的少数区域。
|
|
- Comfy dtype: MASK
|
|
- Python dtype: torch.Tensor
|
|
|
|
|
|
## Usage tips
|
|
- Infra type: `GPU`
|
|
- Common nodes: unknown
|
|
|
|
|
|
## Source code
|
|
```python
|
|
class SaltMaskMinorityRegion:
|
|
@classmethod
|
|
def INPUT_TYPES(cls):
|
|
return {
|
|
"required": {
|
|
"masks": ("MASK",),
|
|
"threshold": ("INT", {"default":128, "min":0, "max":255, "step":1}),
|
|
}
|
|
}
|
|
|
|
CATEGORY = f"{NAME}/Masking/Filter"
|
|
|
|
RETURN_TYPES = ("MASK",)
|
|
RETURN_NAMES = ("MASKS",)
|
|
|
|
FUNCTION = "minority_region"
|
|
|
|
def minority_region(self, masks, threshold=128):
|
|
if not isinstance(threshold, list):
|
|
threshold = [threshold]
|
|
regions = []
|
|
for i, mask in enumerate(masks):
|
|
pil_image = mask2pil(mask.unsqueeze(0))
|
|
region_mask = MaskFilters.minority_region(pil_image, int(threshold[i if i < len(threshold) else -1]))
|
|
region_tensor = pil2mask(region_mask)
|
|
regions.append(region_tensor)
|
|
regions_tensor = torch.cat(regions, dim=0)
|
|
return (regions_tensor,)
|
|
|
|
```
|