Files
CavinHuang-comfyui-nodes-docs/docs/MaskToSEGS.md
2024-05-26 20:35:16 +08:00

3.0 KiB

Documentation

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,)