This commit is contained in:
Vladimir Mandic
2024-09-18 15:51:26 -04:00
parent 2acb883dda
commit edd92c604e
3 changed files with 16 additions and 6 deletions
+1 -1
View File
@@ -35,7 +35,7 @@
will automatically find appropriate encoder in the loaded model and replace it with loaded text encoder
download text encoders into folder set in settings -> system paths -> text encoders
default `models/Text-encoder` folder is used if no custom path is set
example *clip-vit-l* models: [Detailed & Smooth](https://huggingface.co/zer0int/CLIP-GmP-ViT-L-14), [LongCLIP](https://huggingface.co/zer0int/LongCLIP-GmP-ViT-L-14)
example *clip-vit-l* models: [Detailed, Smooth](https://huggingface.co/zer0int/CLIP-GmP-ViT-L-14), [LongCLIP](https://huggingface.co/zer0int/LongCLIP-GmP-ViT-L-14)
- xyz grid support for text encoder
- full prompt parser now correctly works with different prompts in batch
- **huggingface**:
+9 -1
View File
@@ -76,7 +76,14 @@ def create_path(folder):
def create_paths(opts):
def fix_path(folder):
tgt = opts.data.get(folder, None) or opts.data_labels[folder].default
print('HERE', folder, folder in opts.data, folder in opts.data_labels)
tgt = None
if folder in opts.data:
tgt = opts.data[folder]
elif folder in opts.data_labels:
tgt = opts.data_labels[folder].default
else:
log.warning(f'Path: folder="{folder}" unknown')
if tgt is None or tgt == '':
return tgt
fix = tgt
@@ -87,6 +94,7 @@ def create_paths(opts):
fix = fix if os.path.isabs(fix) else os.path.relpath(fix, script_path)
opts.data[folder] = fix
debug(f'Paths: folder="{folder}" original="{tgt}" target="{fix}"')
print('HERE', opts.data[folder])
return opts.data[folder]
create_path(data_path)
+6 -4
View File
@@ -197,9 +197,10 @@ def encode_prompts(pipe, p, prompts: list, negative_prompts: list, steps: int, c
else:
prompt_embed, positive_pooled, negative_embed, negative_pooled = get_weighted_text_embeddings(pipe, positive_prompt, negative_prompt, clip_skip)
prompt_embeds.append(prompt_embed)
positive_pooleds.append(positive_pooled)
negative_embeds.append(negative_embed)
negative_pooleds.append(negative_pooled)
if positive_pooled and negative_pooled:
positive_pooleds.append(positive_pooled)
negative_pooleds.append(negative_pooled)
last_prompt, last_negative = prompt, negative
def fix_length(embeds):
@@ -213,8 +214,9 @@ def encode_prompts(pipe, p, prompts: list, negative_prompts: list, steps: int, c
p.prompt_embeds.append(fix_length(prompt_embeds))
p.negative_embeds.append(fix_length(negative_embeds))
p.positive_pooleds.append(fix_length(positive_pooleds))
p.negative_pooleds.append(fix_length(negative_pooleds))
if len(positive_pooleds) > 0 and len(negative_pooleds) > 0: # sd15 does not have pooled embeds
p.positive_pooleds.append(fix_length(positive_pooleds))
p.negative_pooleds.append(fix_length(negative_pooleds))
if shared.opts.sd_textencoder_cache and p.batch_size == 1:
cache.update({