From f91735deac7669fefdbfad8cf1c29e66d8e10fd4 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sat, 9 Dec 2023 10:14:35 -0500 Subject: [PATCH] fix prompt parser with blank lines --- modules/prompt_parser_diffusers.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modules/prompt_parser_diffusers.py b/modules/prompt_parser_diffusers.py index abd06b778..938be2447 100644 --- a/modules/prompt_parser_diffusers.py +++ b/modules/prompt_parser_diffusers.py @@ -163,8 +163,10 @@ def get_weighted_text_embeddings(pipe, prompt: str = "", neg_prompt: str = "", c provider_embed = [] while 'BREAK' in text: pos = text.index('BREAK') - embed, ptokens = embedding_providers[i].get_embeddings_for_weighted_prompt_fragments(text_batch=[text[:pos]], fragment_weights_batch=[weights[:pos]], device=device, should_return_tokens=True) - provider_embed.append(embed) + debug(f'Prompt: section="{text[:pos]}" len={len(text[:pos])} weights={weights[:pos]}') + if len(text[:pos]) > 0: + embed, ptokens = embedding_providers[i].get_embeddings_for_weighted_prompt_fragments(text_batch=[text[:pos]], fragment_weights_batch=[weights[:pos]], device=device, should_return_tokens=True) + provider_embed.append(embed) text = text[pos+1:] weights = weights[pos+1:] prompt_embeds.append(torch.cat(provider_embed, dim=1)) @@ -192,6 +194,7 @@ def get_weighted_text_embeddings(pipe, prompt: str = "", neg_prompt: str = "", c prompt_embeds = torch.cat(prompt_embeds, dim=-1) if len(prompt_embeds) > 1 else prompt_embeds[0] negative_prompt_embeds = torch.cat(negative_prompt_embeds, dim=-1) if len(negative_prompt_embeds) > 1 else negative_prompt_embeds[0] + debug(f'Prompt: shape={prompt_embeds.shape} negative={negative_prompt_embeds.shape}') if prompt_embeds.shape[1] != negative_prompt_embeds.shape[1]: [prompt_embeds, negative_prompt_embeds] = pad_to_same_length(pipe, [prompt_embeds, negative_prompt_embeds]) return prompt_embeds, pooled_prompt_embeds, negative_prompt_embeds, negative_pooled_prompt_embeds