standardize log outputs
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
# ComfyUI Layer Style
|
||||
A set of nodes for ComfyUI that can composite layer and mask to achieve Photoshop like functionality.
|
||||
|
||||
It migrate some basic functions of PhotoShop to ComfyUI, aiming to centralize the workflow and reduce the frequency of software switching.
|
||||
|
||||

|
||||
|
||||
Nodes are divided into 5 groups according to their functions: LayerStyle, LayerColor, LayerMask, LayerUtility and LayerFilter.
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
# ComfyUI Layer Style
|
||||
一组为ComfyUI设计的节点,可以合成图层达到类似Photoshop的功能。
|
||||
一组为ComfyUI设计的节点,可以合成图层达到类似Photoshop的功能。这些节点将PhotoShop的一部分基本功能迁移到ComfyUI,旨在集中工作流程,减少软件切换的频率。
|
||||
|
||||

|
||||
节点按照功能分为5组:LayerStyle, LayerColor, LayerMask, LayerUtility和LayerFilter。
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@ class ChannelShake:
|
||||
ret_image = Image.merge('RGB', [R, G, B])
|
||||
ret_images.append(pil2tensor(ret_image))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@ class ColorAdapter:
|
||||
|
||||
ret_images.append(pil2tensor(ret_image))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
@@ -44,7 +44,7 @@ class ColorCorrectHSV:
|
||||
|
||||
ret_images.append(pil2tensor(ret_image))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
@@ -44,7 +44,7 @@ class ColorCorrectLAB:
|
||||
|
||||
ret_images.append(pil2tensor(ret_image))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
@@ -34,7 +34,7 @@ class ColorCorrectLUTapply:
|
||||
ret_image = lut_apply(_image, lut_file)
|
||||
ret_images.append(pil2tensor(ret_image))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
@@ -44,7 +44,7 @@ class ColorCorrectRGB:
|
||||
|
||||
ret_images.append(pil2tensor(ret_image))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
@@ -44,7 +44,7 @@ class ColorCorrectYUV:
|
||||
|
||||
ret_images.append(pil2tensor(ret_image))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
@@ -46,7 +46,7 @@ class ColorCorrectBrightnessAndContrast:
|
||||
_image = color_image.enhance(factor=saturation)
|
||||
ret_images.append(pil2tensor(_image))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
@@ -40,7 +40,7 @@ class ColorCorrectExposure:
|
||||
t = np.clip((t - bp) * scale, 0.0, 1.0)
|
||||
ret_images.append(torch.from_numpy(t))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ class ColorCorrectGamma:
|
||||
|
||||
ret_images.append(pil2tensor(ret_image))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
+1
-1
@@ -44,7 +44,7 @@ class ColorMap:
|
||||
|
||||
ret_images.append(pil2tensor(ret_image))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
+1
-1
@@ -77,7 +77,7 @@ class ColorOverlay:
|
||||
|
||||
ret_images.append(pil2tensor(_canvas))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
+1
-1
@@ -85,7 +85,7 @@ class CropByMask:
|
||||
ret_images.append(pil2tensor(_canvas.crop(crop_box)))
|
||||
ret_masks.append(image2mask(_mask.crop(crop_box)))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0), torch.cat(ret_masks, dim=0), list(crop_box), pil2tensor(preview_image),)
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -93,7 +93,7 @@ class DropShadow:
|
||||
|
||||
ret_images.append(pil2tensor(_canvas))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -76,7 +76,7 @@ class ExtendCanvas:
|
||||
ret_images.append(pil2tensor(_canvas))
|
||||
ret_masks.append(image2mask(_mask_canvas))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0), torch.cat(ret_masks, dim=0),)
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@ class GaussianBlur:
|
||||
|
||||
ret_images.append(pil2tensor(gaussian_blur(_canvas, blur)))
|
||||
|
||||
log(f'GaussianBlur Processed {len(ret_images)} image(s).')
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
@@ -89,7 +89,7 @@ class GradientOverlay:
|
||||
|
||||
ret_images.append(pil2tensor(_canvas))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
+1
-1
@@ -73,7 +73,7 @@ class ImageBlend:
|
||||
_canvas.paste(_comp, mask=_mask)
|
||||
|
||||
ret_images.append(pil2tensor(_canvas))
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
@@ -121,7 +121,7 @@ class ImageBlendAdvance:
|
||||
ret_images.append(pil2tensor(_canvas))
|
||||
ret_masks.append(image2mask(_compmask))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0), torch.cat(ret_masks, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
@@ -59,7 +59,7 @@ class ImageChannelMerge:
|
||||
|
||||
ret_images.append(pil2tensor(ret_image))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
@@ -41,7 +41,7 @@ class ImageChannelSplit:
|
||||
c3_images.append(pil2tensor(channel3))
|
||||
c4_images.append(pil2tensor(channel4))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(c1_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(c1_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(c1_images, dim=0), torch.cat(c2_images, dim=0), torch.cat(c3_images, dim=0), torch.cat(c4_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
@@ -77,13 +77,13 @@ class ImageMaskScaleAs:
|
||||
_mask = fit_resize_image(_mask, target_width, target_height, fit, resize_sampler).convert('L')
|
||||
ret_masks.append(image2mask(_mask))
|
||||
if len(ret_images) > 0 and len(ret_masks) >0:
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0), torch.cat(ret_masks, dim=0), [orig_width, orig_height],)
|
||||
elif len(ret_images) > 0 and len(ret_masks) == 0:
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0), None,)
|
||||
elif len(ret_images) == 0 and len(ret_masks) > 0:
|
||||
log(f"{NODE_NAME} Processed {len(ret_masks)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_masks)} image(s).", message_type='finish')
|
||||
return (None, torch.cat(ret_masks, dim=0), [orig_width, orig_height],)
|
||||
else:
|
||||
log(f"Error: {NODE_NAME} skipped, because the available image or mask is not found.", message_type='error')
|
||||
|
||||
+1
-1
@@ -74,7 +74,7 @@ class ImageOpacity:
|
||||
ret_images.append(pil2tensor(ret_image))
|
||||
ret_masks.append(image2mask(ret_mask))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0), torch.cat(ret_masks, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
@@ -98,7 +98,7 @@ class ImageScaleRestore:
|
||||
ret_images.append(pil2tensor(ret_image))
|
||||
ret_masks.append(image2mask(ret_mask))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0), torch.cat(ret_masks, dim=0), [orig_width, orig_height],)
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -78,7 +78,7 @@ class ImageShift:
|
||||
ret_masks.append(image2mask(_mask))
|
||||
ret_border_masks.append(image2mask(_border))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0), torch.cat(ret_masks, dim=0), torch.cat(ret_border_masks, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
+4
-2
@@ -26,9 +26,11 @@ def log(message:str, message_type:str='info'):
|
||||
name = 'LayerStyle'
|
||||
|
||||
if message_type == 'error':
|
||||
message = '\033[1;31m' + message + '\033[m'
|
||||
message = '\033[1;41m' + message + '\033[m'
|
||||
elif message_type == 'warning':
|
||||
message = '\033[1;35m' + message + '\033[m'
|
||||
message = '\033[1;31m' + message + '\033[m'
|
||||
elif message_type == 'finish':
|
||||
message = '\033[1;32m' + message + '\033[m'
|
||||
else:
|
||||
message = '\033[1;33m' + message + '\033[m'
|
||||
print(f"# 😺dzNodes: {name} -> {message}")
|
||||
|
||||
+1
-1
@@ -94,7 +94,7 @@ class InnerGlow:
|
||||
_layer.paste(_canvas, mask=ImageChops.invert(_mask))
|
||||
ret_images.append(pil2tensor(_layer))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -90,7 +90,7 @@ class InnerShadow:
|
||||
|
||||
ret_images.append(pil2tensor(_canvas))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
@@ -62,7 +62,7 @@ class MaskBoxDetect:
|
||||
preview_image = tensor2pil(mask).convert('RGB')
|
||||
preview_image = draw_rect(preview_image, x - x_adjust, y - y_adjust, width, height, line_color="#F00000", line_width=int(preview_image.height / 60))
|
||||
preview_image = draw_rect(preview_image, x, y, width, height, line_color="#00F000", line_width=int(preview_image.height / 40))
|
||||
log(f"{NODE_NAME} Processed.")
|
||||
log(f"{NODE_NAME} Processed.", message_type='finish')
|
||||
return ( pil2tensor(preview_image), round(x_percent, 2), round(y_percent, 2), _width, _height, x, y,)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
@@ -66,7 +66,7 @@ class MaskByDifferent:
|
||||
|
||||
ret_masks.append(image2mask(_mask))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_masks)} mask(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_masks)} mask(s).", message_type='finish')
|
||||
return (torch.cat(ret_masks, dim=0),)
|
||||
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ class MaskEdgeShrink:
|
||||
|
||||
ret_masks.append(image2mask(_layer))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_masks)} mask(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_masks)} mask(s).", message_type='finish')
|
||||
return (torch.cat(ret_masks, dim=0),)
|
||||
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ class MaskEdgeUltraDetail:
|
||||
ret_images.append(pil2tensor(ret_image))
|
||||
ret_masks.append(image2mask(_mask))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0), torch.cat(ret_masks, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
+1
-1
@@ -136,7 +136,7 @@ class MaskGradient:
|
||||
_canvas = chop_image(_mask, _canvas, 'normal', opacity)
|
||||
ret_masks.append(image2mask(_canvas))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_masks)} mask(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_masks)} mask(s).", message_type='finish')
|
||||
return (torch.cat(ret_masks, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
+1
-1
@@ -45,7 +45,7 @@ class MaskGrow:
|
||||
_mask = l_masks[i]
|
||||
ret_masks.append(expand_mask(image2mask(_mask), grow, blur) )
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_masks)} mask(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_masks)} mask(s).", message_type='finish')
|
||||
return (torch.cat(ret_masks, dim=0),)
|
||||
|
||||
|
||||
|
||||
@@ -37,7 +37,6 @@ class MaskInvert:
|
||||
_mask = l_masks[i]
|
||||
ret_masks.append(mask_invert(image2mask(_mask)))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_masks)} mask(s).")
|
||||
return (torch.cat(ret_masks, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
@@ -45,7 +45,7 @@ class MaskMotionBlur:
|
||||
_blurimage = motion_blur(_mask, angle, blur)
|
||||
ret_masks.append(image2mask(_blurimage))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_masks)} mask(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_masks)} mask(s).", message_type='finish')
|
||||
return (torch.cat(ret_masks, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ class MaskStroke:
|
||||
stroke_mask = subtract_mask(outer_mask, inner_mask)
|
||||
ret_masks.append(stroke_mask)
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_masks)} mask(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_masks)} mask(s).", message_type='finish')
|
||||
return (torch.cat(ret_masks, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ class MotionBlur:
|
||||
|
||||
ret_images.append(pil2tensor(motion_blur(_canvas, angle, blur)))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
+1
-1
@@ -93,7 +93,7 @@ class OuterGlow:
|
||||
|
||||
ret_images.append(pil2tensor(_canvas))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -71,7 +71,7 @@ class PixelSpread:
|
||||
|
||||
ret_images.append(torch.from_numpy(fg.astype(np.float32)))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@ class RemBgUltra:
|
||||
ret_images.append(pil2tensor(ret_image))
|
||||
ret_masks.append(image2mask(_mask))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0), torch.cat(ret_masks, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
@@ -70,7 +70,7 @@ class RestoreCropBox:
|
||||
ret_images.append(pil2tensor(_canvas))
|
||||
ret_masks.append(image2mask(ret_mask))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0), torch.cat(ret_masks, dim=0),)
|
||||
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ class SegmentAnythingUltra:
|
||||
empty_mask = torch.zeros((1, height, width), dtype=torch.uint8, device="cpu")
|
||||
return (empty_mask, empty_mask)
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_masks)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_masks)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0), torch.cat(ret_masks, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ class SharpAndSoft:
|
||||
details = (imgB / imgG - 1) * detail_mult + 1
|
||||
dup[index] = np.clip(details * imgG - imgB + image, 0, 1)
|
||||
|
||||
log(f"{NODE_NAME} Processed {dup.shape[0]} image(s).")
|
||||
log(f"{NODE_NAME} Processed {dup.shape[0]} image(s).", message_type='finish')
|
||||
return (torch.from_numpy(dup),)
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ class SkinBeauty:
|
||||
ret_images.append(pil2tensor(_canvas))
|
||||
ret_masks.append(image2mask(light_mask))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0), torch.cat(ret_masks, dim=0),)
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -49,7 +49,7 @@ class SoftLight:
|
||||
|
||||
ret_images.append(pil2tensor(_canvas))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
+1
-1
@@ -90,7 +90,7 @@ class Stroke:
|
||||
|
||||
ret_images.append(pil2tensor(_canvas))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
+1
-1
@@ -125,7 +125,7 @@ class TextImage:
|
||||
_color = Image.new('RGB', size=(width, height), color=text_color)
|
||||
_canvas.paste(_color, mask=_mask.convert('L'))
|
||||
_canvas = RGB2RGBA(_canvas, _mask)
|
||||
log(f"{NODE_NAME} Processed.")
|
||||
log(f"{NODE_NAME} Processed.", message_type='finish')
|
||||
return (pil2tensor(_canvas), image2mask(_mask),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ class WaterColor:
|
||||
|
||||
ret_images.append(pil2tensor(ret_image))
|
||||
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).")
|
||||
log(f"{NODE_NAME} Processed {len(ret_images)} image(s).", message_type='finish')
|
||||
return (torch.cat(ret_images, dim=0),)
|
||||
|
||||
NODE_CLASS_MAPPINGS = {
|
||||
|
||||
Reference in New Issue
Block a user