From 2c9d98f3e65572451ff6b6c9ee86286863f29836 Mon Sep 17 00:00:00 2001 From: comfyanonymous Date: Thu, 6 Jul 2023 23:21:57 -0400 Subject: [PATCH] CLIPTextEncodeSDXL now works when prompts are of very different sizes. --- comfy_extras/nodes_clip_sdxl.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/comfy_extras/nodes_clip_sdxl.py b/comfy_extras/nodes_clip_sdxl.py index 9ee23c75..dcf8859f 100644 --- a/comfy_extras/nodes_clip_sdxl.py +++ b/comfy_extras/nodes_clip_sdxl.py @@ -41,6 +41,12 @@ class CLIPTextEncodeSDXL: def encode(self, clip, width, height, crop_w, crop_h, target_width, target_height, text_g, text_l): tokens = clip.tokenize(text_g) tokens["l"] = clip.tokenize(text_l)["l"] + if len(tokens["l"]) != len(tokens["g"]): + empty = clip.tokenize("") + while len(tokens["l"]) < len(tokens["g"]): + tokens["l"] += empty["l"] + while len(tokens["l"]) > len(tokens["g"]): + tokens["g"] += empty["g"] cond, pooled = clip.encode_from_tokens(tokens, return_pooled=True) return ([[cond, {"pooled_output": pooled, "width": width, "height": height, "crop_w": crop_w, "crop_h": crop_h, "target_width": target_width, "target_height": target_height}]], )