Files
CavinHuang-comfyui-nodes-docs/docs/SaltMaskMinorityRegion.md
2024-07-04 08:39:03 +08:00

1.9 KiB

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

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