From 499cd218aae84bc395d6e6df28c305e74d102d22 Mon Sep 17 00:00:00 2001 From: Mel Massadian Date: Fri, 1 Aug 2025 17:11:09 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20=E2=9C=A8=20batch=20text=20to=20image?= =?UTF-8?q?=20if=20inputs=20are=20lists?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit this rely on fakingly declaring list[str] as STRING for now... --- nodes/generate.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/nodes/generate.py b/nodes/generate.py index d3c4549..f213047 100644 --- a/nodes/generate.py +++ b/nodes/generate.py @@ -299,7 +299,7 @@ by default it fallsback to a default font. def text_to_image( self, - text: str, + text: str | list[str], font, wrap, trim, @@ -341,7 +341,7 @@ by default it fallsback to a default font. color = (255, 255, 255, 255) background = (0, 0, 0, 255) - def render_text(text_to_render, alpha=None): + def render_text(text_to_render: str, alpha=None) -> Image.Image: if trim: text_to_render = text_to_render.strip() if wrap: @@ -426,9 +426,16 @@ by default it fallsback to a default font. frame_tensors = [pil2tensor(frame) for frame in frames] return (torch.cat(frame_tensors, dim=0),) else: - text_img = render_text(text) - result = Image.alpha_composite(base_img, text_img) - return (pil2tensor(result),) + results = [] + if not isinstance(text, list): + text = [text] + + for t in text: + text_img = render_text(t) + result = Image.alpha_composite(base_img, text_img) + results.append(result) + + return (pil2tensor(results),) __nodes__ = [