From 4472d991735c7fe490b178c008f06648cc59c7c5 Mon Sep 17 00:00:00 2001 From: Mikkel Garcia Date: Wed, 4 Oct 2023 16:21:34 -0600 Subject: [PATCH] text-example --- __init__.py | 3 ++ assets/text-example-1.png | Bin 0 -> 68159 bytes image_text_overlay.py | 68 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 __init__.py create mode 100644 assets/text-example-1.png create mode 100644 image_text_overlay.py diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..dd1b918 --- /dev/null +++ b/__init__.py @@ -0,0 +1,3 @@ +from .image_text_overlay import NODE_CLASS_MAPPINGS + +__all__ = ['NODE_CLASS_MAPPINGS'] diff --git a/assets/text-example-1.png b/assets/text-example-1.png new file mode 100644 index 0000000000000000000000000000000000000000..a29677957f5641a34aa5b01ce6c39fb2d3dbb6c5 GIT binary patch literal 68159 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�g%E)_;XV_*G#7RTL;jOh97!V8;qFv{D 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 literal 0 HcmV?d00001 diff --git a/image_text_overlay.py b/image_text_overlay.py new file mode 100644 index 0000000..d2850c8 --- /dev/null +++ b/image_text_overlay.py @@ -0,0 +1,68 @@ +from PIL import Image, ImageDraw, ImageFont +import torch +import numpy as np + +class ImageTextOverlay: + def __init__(self, device="cpu"): + self.device = device + _alignments = ["left", "right", "center"] + + @classmethod + def INPUT_TYPES(cls): + return { + "required": { + "image": ("IMAGE",), + "text": ("STRING",{"multiline": True, "default": "Hello"}), + "font_size": ("INT", {"default": 16, "min": 1, "max": 256, "step": 1}), + "x": ("INT", {"default": 0}), + "y": ("INT", {"default": 0}), + "font": ("STRING", {"default": "arial.ttf"}), # Assuming it's a path to a .ttf or .otf file + "alignment": (cls._alignments, {"default": "left"}), # ["left", "right", "center"] + "color": ("INT", {"default": 0, "min": 0, "max": 0xFFFFFF, "step": 1, "display": "color"}), + } + } + + RETURN_TYPES = ("IMAGE",) + FUNCTION = "draw_text_on_image" + CATEGORY = "image/text" + + def draw_text_on_image(self, image, text, font_size, x, y, font, alignment, color): + # Convert tensor to numpy array and then to PIL Image + image_tensor = image + print(np.shape(image),"--") + image_np = image_tensor.cpu().numpy() # Change from CxHxW to HxWxC for Pillow + print(np.shape(image_np),"--aa_") + image = Image.fromarray((image_np.squeeze(0) * 255).astype(np.uint8)) # Convert float [0,1] tensor to uint8 image + + # Convert color from INT to RGB tuple + r = (color >> 16) & 0xFF + g = (color >> 8) & 0xFF + b = color & 0xFF + color_rgb = (r, g, b) + + # Load font + loaded_font = ImageFont.truetype(font, font_size) + + # Prepare to draw on image + draw = ImageDraw.Draw(image) + + # Adjust x coordinate based on alignment + text_width, text_height = draw.textsize(text, font=loaded_font) + if alignment == "center": + x -= text_width // 2 + elif alignment == "right": + x -= text_width + + # Draw text on the image + draw.text((x, y), text, fill=color_rgb, font=loaded_font) + + # Convert back to Tensor if needed + image_tensor_out = torch.tensor(np.array(image).astype(np.float32) / 255.0) # Convert back to CxHxW + image_tensor_out = torch.unsqueeze(image_tensor_out, 0) + + return (image_tensor_out,) + + +NODE_CLASS_MAPPINGS = { + "Image Text Overlay": ImageTextOverlay, +}