mirror of
https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
synced 2026-04-30 03:01:28 +00:00
fix missing infotext cased by conda cache
some generation params such as TI hashes or Emphasis is added in sd_hijack / sd_hijack_clip if conda are fetche from cache sd_hijack_clip will not be executed and it won't have a chance to to add generation params the generation params will also be missing if in non low-vram mode because the hijack.extra_generation_params was never read after calculate_hr_conds
This commit is contained in:
@@ -5,6 +5,7 @@ import torch
|
||||
|
||||
from modules import prompt_parser, devices, sd_hijack, sd_emphasis
|
||||
from modules.shared import opts
|
||||
from modules.util import GenerationParamsState
|
||||
|
||||
|
||||
class PromptChunk:
|
||||
@@ -27,6 +28,31 @@ chunk. Those objects are found in PromptChunk.fixes and, are placed into FrozenC
|
||||
are applied by sd_hijack.EmbeddingsWithFixes's forward function."""
|
||||
|
||||
|
||||
class EmbeddingHashes(GenerationParamsState):
|
||||
def __init__(self, hashes: list):
|
||||
super().__init__()
|
||||
self.hashes = hashes
|
||||
|
||||
def __call__(self, extra_generation_params):
|
||||
unique_hashes = dict.fromkeys(self.hashes)
|
||||
if existing_ti_hashes := extra_generation_params.get('TI hashes'):
|
||||
unique_hashes.update(dict.fromkeys(existing_ti_hashes.split(', ')))
|
||||
extra_generation_params['TI hashes'] = ', '.join(unique_hashes)
|
||||
|
||||
|
||||
class EmphasisMode(GenerationParamsState):
|
||||
def __init__(self, texts):
|
||||
super().__init__()
|
||||
if opts.emphasis != 'Original' and any(x for x in texts if '(' in x or '[' in x):
|
||||
self.emphasis = opts.emphasis
|
||||
else:
|
||||
self.emphasis = None
|
||||
|
||||
def __call__(self, extra_generation_params):
|
||||
if self.emphasis:
|
||||
extra_generation_params['Emphasis'] = self.emphasis
|
||||
|
||||
|
||||
class TextConditionalModel(torch.nn.Module):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
@@ -238,12 +264,9 @@ class TextConditionalModel(torch.nn.Module):
|
||||
hashes.append(f"{name}: {shorthash}")
|
||||
|
||||
if hashes:
|
||||
if self.hijack.extra_generation_params.get("TI hashes"):
|
||||
hashes.append(self.hijack.extra_generation_params.get("TI hashes"))
|
||||
self.hijack.extra_generation_params["TI hashes"] = ", ".join(hashes)
|
||||
self.hijack.extra_generation_params["TI hashes"] = EmbeddingHashes(hashes)
|
||||
|
||||
if any(x for x in texts if "(" in x or "[" in x) and opts.emphasis != "Original":
|
||||
self.hijack.extra_generation_params["Emphasis"] = opts.emphasis
|
||||
self.hijack.extra_generation_params["Emphasis"] = EmphasisMode(texts)
|
||||
|
||||
if self.return_pooled:
|
||||
return torch.hstack(zs), zs[0].pooled
|
||||
|
||||
Reference in New Issue
Block a user