Change channel type to MASK (reduced redundancy, increased usability)

This commit is contained in:
MoonRide303 2023-09-23 08:34:54 +02:00
parent d06cd2805d
commit ece69bf28c
3 changed files with 8 additions and 50 deletions

View File

@ -93,14 +93,14 @@ class PorterDuffImageComposite:
return { return {
"required": { "required": {
"source": ("IMAGE",), "source": ("IMAGE",),
"source_alpha": ("ALPHA",), "source_alpha": ("MASK",),
"destination": ("IMAGE",), "destination": ("IMAGE",),
"destination_alpha": ("ALPHA",), "destination_alpha": ("MASK",),
"mode": ([mode.name for mode in PorterDuffMode], {"default": PorterDuffMode.DST.name}), "mode": ([mode.name for mode in PorterDuffMode], {"default": PorterDuffMode.DST.name}),
}, },
} }
RETURN_TYPES = ("IMAGE", "ALPHA") RETURN_TYPES = ("IMAGE", "MASK")
FUNCTION = "composite" FUNCTION = "composite"
CATEGORY = "compositing" CATEGORY = "compositing"
@ -148,7 +148,7 @@ class SplitImageWithAlpha:
} }
CATEGORY = "compositing" CATEGORY = "compositing"
RETURN_TYPES = ("IMAGE", "ALPHA") RETURN_TYPES = ("IMAGE", "MASK")
FUNCTION = "split_image_with_alpha" FUNCTION = "split_image_with_alpha"
def split_image_with_alpha(self, image: torch.Tensor): def split_image_with_alpha(self, image: torch.Tensor):
@ -164,7 +164,7 @@ class JoinImageWithAlpha:
return { return {
"required": { "required": {
"image": ("IMAGE",), "image": ("IMAGE",),
"alpha": ("ALPHA",), "alpha": ("MASK",),
} }
} }
@ -183,50 +183,10 @@ class JoinImageWithAlpha:
return result return result
class ConvertAlphaToImage:
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"alpha": ("ALPHA",),
}
}
CATEGORY = "compositing"
RETURN_TYPES = ("IMAGE",)
FUNCTION = "alpha_to_image"
def alpha_to_image(self, alpha):
result = alpha.reshape((-1, 1, alpha.shape[-2], alpha.shape[-1])).movedim(1, -1).expand(-1, -1, -1, 3)
return (result,)
class ConvertImageToAlpha:
@classmethod
def INPUT_TYPES(s):
return {
"required": {
"image": ("IMAGE",),
"channel": (["red", "green", "blue", "alpha"],),
}
}
CATEGORY = "compositing"
RETURN_TYPES = ("ALPHA",)
FUNCTION = "image_to_alpha"
def image_to_alpha(self, image, channel):
channels = ["red", "green", "blue", "alpha"]
alpha = image[0, :, :, channels.index(channel)]
return (alpha,)
NODE_CLASS_MAPPINGS = { NODE_CLASS_MAPPINGS = {
"PorterDuffImageComposite": PorterDuffImageComposite, "PorterDuffImageComposite": PorterDuffImageComposite,
"SplitImageWithAlpha": SplitImageWithAlpha, "SplitImageWithAlpha": SplitImageWithAlpha,
"JoinImageWithAlpha": JoinImageWithAlpha, "JoinImageWithAlpha": JoinImageWithAlpha,
"ConvertAlphaToImage": ConvertAlphaToImage,
"ConvertImageToAlpha": ConvertImageToAlpha,
} }
@ -234,6 +194,4 @@ NODE_DISPLAY_NAME_MAPPINGS = {
"PorterDuffImageComposite": "Porter-Duff Image Composite", "PorterDuffImageComposite": "Porter-Duff Image Composite",
"SplitImageWithAlpha": "Split Image with Alpha", "SplitImageWithAlpha": "Split Image with Alpha",
"JoinImageWithAlpha": "Join Image with Alpha", "JoinImageWithAlpha": "Join Image with Alpha",
"ConvertAlphaToImage": "Convert Alpha to Image",
"ConvertImageToAlpha": "Convert Image to Alpha",
} }

View File

@ -114,7 +114,7 @@ class ImageToMask:
return { return {
"required": { "required": {
"image": ("IMAGE",), "image": ("IMAGE",),
"channel": (["red", "green", "blue"],), "channel": (["red", "green", "blue", "alpha"],),
} }
} }
@ -124,7 +124,7 @@ class ImageToMask:
FUNCTION = "image_to_mask" FUNCTION = "image_to_mask"
def image_to_mask(self, image, channel): def image_to_mask(self, image, channel):
channels = ["red", "green", "blue"] channels = ["red", "green", "blue", "alpha"]
mask = image[:, :, :, channels.index(channel)] mask = image[:, :, :, channels.index(channel)]
return (mask,) return (mask,)

View File

@ -1383,7 +1383,7 @@ class LoadImageWithAlpha(LoadImage):
CATEGORY = "compositing" CATEGORY = "compositing"
RETURN_TYPES = ("IMAGE", "ALPHA") RETURN_TYPES = ("IMAGE", "MASK")
FUNCTION = "load_image" FUNCTION = "load_image"
def load_image(self, image): def load_image(self, image):