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

2.0 KiB

Documentation

SaltMaskDominantRegion节点专注于根据指定阈值识别和分离一组给定蒙版中的主导区域。它可以有效地突出显示图像蒙版中最显著的区域,适用于需要聚焦重要蒙版区域的任务。

Input types

Required

  • masks
    • 需要进行主导区域检测的输入蒙版。这些蒙版对于确定图像中的感兴趣区域至关重要。
    • Comfy dtype: MASK
    • Python dtype: torch.Tensor
  • 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 SaltMaskDominantRegion:
    @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 = "dominant_region"

    def dominant_region(self, masks, threshold=128):
        if not isinstance(threshold, list):
            threshold = [threshold]
        regions = []
        for i, mask in enumerate(masks):
            mask_pil = mask2pil(mask.unsqueeze(0))
            region_mask = MaskFilters.dominant_region(mask_pil, 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,)