Files
2024-07-04 11:34:32 +08:00

2.0 KiB

Documentation

SaltMaskSmoothRegion节点用于对遮罩区域应用平滑滤镜,通过指定的sigma值来控制平滑程度。这一处理过程通过减少噪点和不规则性来提升遮罩区域的视觉质量。

Input types

Required

  • masks
    • masks参数代表需要进行平滑处理的输入遮罩,是节点处理的主要数据。
    • Comfy dtype: MASK
    • Python dtype: torch.Tensor
  • sigma
    • sigma参数控制应用于遮罩区域的平滑滤镜的平滑程度,直接影响平滑效果和噪点减少的程度。
    • Comfy dtype: FLOAT
    • Python dtype: float

Output types

  • MASKS
    • 输出是根据指定sigma值进行平滑处理后的遮罩张量,通过减少噪点和不规则性来提供更高的视觉质量。
    • Comfy dtype: MASK
    • Python dtype: torch.Tensor

Usage tips

  • Infra type: GPU
  • Common nodes: unknown

Source code

class SaltMaskSmoothRegion:
    @classmethod
    def INPUT_TYPES(cls):
        return {
                    "required": {
                        "masks": ("MASK",),
                        "sigma": ("FLOAT", {"default":5.0, "min":0.0, "max":128.0, "step":0.1}),
                    }
                }

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

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

    FUNCTION = "smooth_region"

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