feat: ✨ batch text to image if inputs are lists
this rely on fakingly declaring list[str] as STRING for now...
This commit is contained in:
+12
-5
@@ -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__ = [
|
||||
|
||||
Reference in New Issue
Block a user