From 32dee1e041fe564dc866ff5e296ef898be4e2b00 Mon Sep 17 00:00:00 2001 From: chflame Date: Thu, 13 Jun 2024 10:58:57 +0800 Subject: [PATCH] fix ImageRemoveAlpha node add optional mask input --- README.MD | 4 +++- README_CN.MD | 3 +++ image/image_remove_alpha_node.jpg | Bin 60448 -> 38440 bytes py/image_remove_alpha.py | 23 +++++++++++++++-------- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/README.MD b/README.MD index 8d5c275..c3ab7df 100644 --- a/README.MD +++ b/README.MD @@ -80,7 +80,7 @@ When this error has occurred, please check the network environment. ## Update **If the dependency package error after updating, please reinstall the relevant dependency packages.
- +* [ImageRemoveAlpha](#ImageRemoveAlpha) node add optional mask input. * Commit [HLFrequencyDetailRestore](#HLFrequencyDetailRestore) node, Using low-frequency filtering and high-frequency preserving to restore image details, the fusion is better. * Commit [AddGrain](#AddGrain) and [MaskGrain](#MaskGrain) nodes, Add noise to a picture or mask. * Commit [FilmV2](#FilmV2) node, The fastgrain method is added on the basis of the previous one, and the noise generation speed is 10 times faster. @@ -1002,6 +1002,8 @@ Remove the alpha channel from the image and convert it to RGB mode. you can choo Node options: ![image](image/image_remove_alpha_node.jpg) +* RGBA_image: The input image supports RGBA or RGB modes. +* mask: Optional input mask. If there is an input mask, it will be used first, ignoring the alpha that comes with RGBA_image. * fill_background: Whether to fill the background. * background_color4: Color of background. diff --git a/README_CN.MD b/README_CN.MD index f733dfa..fbf875f 100644 --- a/README_CN.MD +++ b/README_CN.MD @@ -80,6 +80,7 @@ git clone https://github.com/chflame163/ComfyUI_LayerStyle.git ## 更新说明 **如果本插件更新后出现依赖包错误,请重新安装相关依赖包。 +* [ImageRemoveAlpha](#ImageRemoveAlpha) 节点增加mask可选输入。 * 添加 [HLFrequencyDetailRestore](#HLFrequencyDetailRestore)节点, 使用低频滤波加保留高频来恢复图像细节,图像融合性更好。 * 添加 [AddGrain](#AddGrain) 和 [MaskGrain](#MaskGrain) 节点, 为图片或遮罩添加噪声。 * 添加 [FilmV2](#FilmV2) 节点, 在之前基础上增加了fastgrain方法,生成噪点速度加快了10倍。 @@ -990,6 +991,8 @@ GradientImage的V2升级版。 节点选项说明: ![image](image/image_remove_alpha_node.jpg) +* RGBA_image: 输入的图像,支持RGBA或RGB模式。 +* mask:可选输入遮罩。如果有输入遮罩将优先使用, 忽略RGBA_image自带的alpha。 * fill_background: 是否填充背景。 * background_color4: 背景颜色。 diff --git a/image/image_remove_alpha_node.jpg b/image/image_remove_alpha_node.jpg index c43d624bd2b4d0cd1f4ef3ec00dc9d498c285d60..95b6c256fa2dc62834265c05f9e4d84bd281827c 100644 GIT binary patch literal 38440 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 N=Jn5~2)2j%-vLh<@9_Wt literal 60448 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 diff --git a/py/image_remove_alpha.py b/py/image_remove_alpha.py index f96f94f..7665ac0 100644 --- a/py/image_remove_alpha.py +++ b/py/image_remove_alpha.py @@ -17,6 +17,7 @@ class ImageRemoveAlpha: "background_color": ("STRING", {"default": "#000000"}), }, "optional": { + "mask": ("MASK",), # } } @@ -25,21 +26,27 @@ class ImageRemoveAlpha: FUNCTION = 'image_remove_alpha' CATEGORY = '😺dzNodes/LayerUtility' - def image_remove_alpha(self, RGBA_image, fill_background, background_color): + def image_remove_alpha(self, RGBA_image, fill_background, background_color, mask=None): ret_images = [] - for i in RGBA_image: - i = torch.unsqueeze(i, 0) - _image = tensor2pil(i) - if _image.mode != "RGBA": - log(f"Error: {NODE_NAME} skipped, because the input image is not RGBA.", message_type='error') - return (RGBA_image) + for index, img in enumerate(RGBA_image): + _image = tensor2pil(img) + if fill_background: - alpha = _image.split()[-1] + if mask is not None: + m = mask[index].unsqueeze(0) if index < len(mask) else mask[-1].unsqueeze(0) + alpha = tensor2pil(m).convert('L') + elif _image.mode == "RGBA": + alpha = _image.split()[-1] + else: + log(f"Error: {NODE_NAME} skipped, because the input image is not RGBA and mask is None.", + message_type='error') + return (RGBA_image,) ret_image = Image.new('RGB', size=_image.size, color=background_color) ret_image.paste(_image, mask=alpha) ret_images.append(pil2tensor(ret_image)) + else: ret_images.append(pil2tensor(tensor2pil(i).convert('RGB')))