58 lines
1.9 KiB
Markdown
58 lines
1.9 KiB
Markdown
# Documentation
|
|
- Class name: imageToMask
|
|
- Category: EasyUse/Image
|
|
- Output node: False
|
|
- Repo Ref: https://github.com/yolain/ComfyUI-Easy-Use.git
|
|
|
|
imageToMask节点旨在从输入图像中提取单个颜色通道,并将其转换为灰度表示,可用于进一步的图像处理任务。
|
|
|
|
# Input types
|
|
## Required
|
|
- image
|
|
- 输入图像对节点的操作至关重要,因为它是提取所需颜色通道的来源。
|
|
- Comfy dtype: IMAGE
|
|
- Python dtype: PIL.Image
|
|
## Optional
|
|
- channel
|
|
- 通道参数决定了从图像中提取哪个颜色通道,影响灰度转换的最终结果。
|
|
- Comfy dtype: COMBO['red', 'green', 'blue']
|
|
- Python dtype: str
|
|
|
|
# Output types
|
|
- MASK
|
|
- 输出是一个张量,代表从选定的颜色通道派生出的灰度图像,这对于后续的图像分析过程至关重要。
|
|
- Comfy dtype: TENSOR
|
|
- Python dtype: torch.Tensor
|
|
|
|
# Usage tips
|
|
- Infra type: CPU
|
|
|
|
# Source code
|
|
```
|
|
class imageToMask:
|
|
|
|
@classmethod
|
|
def INPUT_TYPES(s):
|
|
return {'required': {'image': ('IMAGE',), 'channel': (['red', 'green', 'blue'],)}}
|
|
RETURN_TYPES = ('MASK',)
|
|
FUNCTION = 'convert'
|
|
CATEGORY = 'EasyUse/Image'
|
|
|
|
def convert_to_single_channel(self, image, channel='red'):
|
|
image = image.convert('RGB')
|
|
if channel == 'red':
|
|
channel_img = image.split()[0].convert('L')
|
|
elif channel == 'green':
|
|
channel_img = image.split()[1].convert('L')
|
|
elif channel == 'blue':
|
|
channel_img = image.split()[2].convert('L')
|
|
else:
|
|
raise ValueError("Invalid channel option. Please choose 'red', 'green', or 'blue'.")
|
|
channel_img = Image.merge('RGB', (channel_img, channel_img, channel_img))
|
|
return channel_img
|
|
|
|
def convert(self, image, channel='red'):
|
|
image = self.convert_to_single_channel(tensor2pil(image), channel)
|
|
image = pil2tensor(image)
|
|
return (image.squeeze().mean(2),)
|
|
``` |