61 lines
3.0 KiB
Markdown
61 lines
3.0 KiB
Markdown
# Documentation
|
|
- Class name: MaskToSEGS
|
|
- Category: ImpactPack/Operation
|
|
- Output node: False
|
|
- Repo Ref: https://github.com/ltdrdata/ComfyUI-Impact-Pack.git
|
|
|
|
MaskToSEGS节点旨在将二进制掩码转换为由SEG对象表示的一系列分段对象。它处理输入掩码以识别不同区域,并将它们输出为分段对象的集合,这些对象可以进一步用于各种图像处理任务。
|
|
|
|
# Input types
|
|
## Required
|
|
- mask
|
|
- 掩码参数是一个二进制掩码,它定义了图像内的感兴趣区域。它对节点的操作至关重要,因为它直接影响分割过程和生成的SEG对象。
|
|
- Comfy dtype: MASK
|
|
- Python dtype: np.ndarray
|
|
## Optional
|
|
- combined
|
|
- combined参数决定节点是否应将掩码中的重叠区域合并为单个SEG对象。这对于简化复杂场景的表示可能很重要。
|
|
- Comfy dtype: BOOLEAN
|
|
- Python dtype: bool
|
|
- crop_factor
|
|
- crop_factor参数控制每个掩码段的边界框周围的裁剪区域的大小。它通过确定每个段周围包含多少上下文,影响SEG对象的细节级别。
|
|
- Comfy dtype: FLOAT
|
|
- Python dtype: float
|
|
- bbox_fill
|
|
- bbox_fill参数指定是否应在裁剪区域内用实心值填充边界框。这可以用来突出显示或隔离SEG对象内的特定区域。
|
|
- Comfy dtype: BOOLEAN
|
|
- Python dtype: bool
|
|
- drop_size
|
|
- drop_size参数设置将包含在输出中的掩码段的最小尺寸。不满足此尺寸阈值的较小段将被丢弃,可能会减少分割中的噪声。
|
|
- Comfy dtype: INT
|
|
- Python dtype: int
|
|
- contour_fill
|
|
- contour_fill参数指示节点是否应填充掩码轮廓内的区域。这可以用来从基于轮廓的掩码创建实心SEG对象。
|
|
- Comfy dtype: BOOLEAN
|
|
- Python dtype: bool
|
|
|
|
# Output types
|
|
- SEGS
|
|
- SEGS输出包含一系列SEG对象,每个对象代表从输入掩码派生的分段区域。这些对象被结构化,以便在图像处理工作流程中进一步分析或操作。
|
|
- Comfy dtype: SEGS
|
|
- Python dtype: Tuple[int, List[core.SEG]]
|
|
|
|
# Usage tips
|
|
- Infra type: CPU
|
|
|
|
# Source code
|
|
```
|
|
class MaskToSEGS:
|
|
|
|
@classmethod
|
|
def INPUT_TYPES(s):
|
|
return {'required': {'mask': ('MASK',), 'combined': ('BOOLEAN', {'default': False, 'label_on': 'True', 'label_off': 'False'}), 'crop_factor': ('FLOAT', {'default': 3.0, 'min': 1.0, 'max': 100, 'step': 0.1}), 'bbox_fill': ('BOOLEAN', {'default': False, 'label_on': 'enabled', 'label_off': 'disabled'}), 'drop_size': ('INT', {'min': 1, 'max': MAX_RESOLUTION, 'step': 1, 'default': 10}), 'contour_fill': ('BOOLEAN', {'default': False, 'label_on': 'enabled', 'label_off': 'disabled'})}}
|
|
RETURN_TYPES = ('SEGS',)
|
|
FUNCTION = 'doit'
|
|
CATEGORY = 'ImpactPack/Operation'
|
|
|
|
def doit(self, mask, combined, crop_factor, bbox_fill, drop_size, contour_fill=False):
|
|
mask = make_2d_mask(mask)
|
|
result = core.mask_to_segs(mask, combined, crop_factor, bbox_fill, drop_size, is_contour=contour_fill)
|
|
return (result,)
|
|
``` |