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

1.8 KiB

Documentation

  • Class name: SaltMaskErodeRegion
  • Category: SALT/Masking/Filter
  • Output node: False

此节点对掩码区域应用腐蚀滤波器,根据指定的迭代次数有效地缩小掩码区域。它旨在通过腐蚀掩码区域的边缘来优化掩码边界。

Input types

Required

  • masks
    • 要进行腐蚀的输入掩码。该参数对于定义腐蚀操作要处理和优化的区域至关重要。
    • Comfy dtype: MASK
    • Python dtype: torch.Tensor
  • iterations
    • 指定对每个掩码应用腐蚀操作的次数,允许调整效果的强度。
    • 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 SaltMaskErodeRegion:
    @classmethod
    def INPUT_TYPES(cls):
        return {
                    "required": {
                        "masks": ("MASK",),
                        "iterations": ("INT", {"default":5, "min":1, "max":64, "step":1}),
                    }
                }

    CATEGORY = f"{NAME}/Masking/Filter"

    RETURN_TYPES = ("MASK",)
    RETURN_NAMES = ("MASKS",)

    FUNCTION = "erode_region"

    def erode_region(self, masks, iterations=5):
        if not isinstance(iterations, list):
            iterations = [iterations]
        regions = []
        for i, mask in enumerate(masks):
            pil_image = mask2pil(mask.unsqueeze(0))
            region_mask = MaskFilters.erode_region(pil_image, iterations[i if i < len(iterations) else -1])
            region_tensor = pil2mask(region_mask)
            regions.append(region_tensor)
        regions_tensor = torch.cat(regions, dim=0)
        return (regions_tensor,)