diff --git a/README.md b/README.md new file mode 100644 index 0000000..615dd5b --- /dev/null +++ b/README.md @@ -0,0 +1,19 @@ +# ComfyUI Mask Batch Merger +A mask-merge node that merges masks in a mask batch into a single mask as the output. +Contact:mmmmmmmmme_@outlook.com + +## Features +- Merge Mask Batch +- Add Mode +- Self-adaptable towards any mask batch size or number of mask +- Mask Output + +## Install +Install through ComfyUI Manager by Searching **ComfyUI Mask Batch Merger** + +## How to use +1. Connect the node to the output of the mask batch +2. Click run the workflow to get the output mask + +## Video +▶ [YouTube](https://youtu.be/7s1Q5KZv5hg) diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..df49577 --- /dev/null +++ b/__init__.py @@ -0,0 +1,3 @@ +from .mask_batch_merge import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS + +__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS"] \ No newline at end of file diff --git a/mask_batch_merge.py b/mask_batch_merge.py new file mode 100644 index 0000000..37f404a --- /dev/null +++ b/mask_batch_merge.py @@ -0,0 +1,34 @@ +import torch + +class MaskBatchMerge: #Add Mode + + CATEGORY = "mmmmmmmmm" + RETURN_TYPES = ("MASK",) + RETURN_NAMES = ("merged_mask",) + FUNCTION = "merge_masks" + + @classmethod + def INPUT_TYPES(cls): + return { + "required": { + "mask_batch": ("MASK",), + } + } + + def merge_masks(self, mask_batch): + + # 1. Sum from dim=0 + merged = torch.sum(mask_batch, dim=0, keepdim=True) + + # 2. Limit the value between 0-1, in case of exposure after adding + merged = torch.clamp(merged, 0.0, 1.0) + + return (merged,) + +NODE_CLASS_MAPPINGS = { + "MaskBatchMergeAdd": MaskBatchMerge +} + +NODE_DISPLAY_NAME_MAPPINGS = { + "MaskBatchMergeAdd": "Mask Merger" +} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..452f91e --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +# ComfyUI Mask Batch Merger +# no extra dependencies needed +pillow>=10.0.0 +numpy>=1.24.0 +torch>=2.0.0 \ No newline at end of file