mirror of
https://github.com/vladmandic/automatic
synced 2026-09-18 16:54:33 +02:00
fix
This commit is contained in:
+1
-1
@@ -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
@@ -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)
|
||||
|
||||
@@ -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({
|
||||
|
||||
Reference in New Issue
Block a user