|
@@ -116,11 +116,17 @@ class SdConditioning(list):
|
|
A list with prompts for stable diffusion's conditioner model.
|
|
A list with prompts for stable diffusion's conditioner model.
|
|
Can also specify width and height of created image - SDXL needs it.
|
|
Can also specify width and height of created image - SDXL needs it.
|
|
"""
|
|
"""
|
|
- def __init__(self, prompts, width=None, height=None):
|
|
|
|
|
|
+ def __init__(self, prompts, is_negative_prompt=False, width=None, height=None, copy_from=None):
|
|
super().__init__()
|
|
super().__init__()
|
|
self.extend(prompts)
|
|
self.extend(prompts)
|
|
- self.width = width or getattr(prompts, 'width', None)
|
|
|
|
- self.height = height or getattr(prompts, 'height', None)
|
|
|
|
|
|
+
|
|
|
|
+ if copy_from is None:
|
|
|
|
+ copy_from = prompts
|
|
|
|
+
|
|
|
|
+ self.is_negative_prompt = is_negative_prompt or getattr(copy_from, 'is_negative_prompt', False)
|
|
|
|
+ self.width = width or getattr(copy_from, 'width', None)
|
|
|
|
+ self.height = height or getattr(copy_from, 'height', None)
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
def get_learned_conditioning(model, prompts: SdConditioning | list[str], steps):
|
|
def get_learned_conditioning(model, prompts: SdConditioning | list[str], steps):
|
|
@@ -153,7 +159,7 @@ def get_learned_conditioning(model, prompts: SdConditioning | list[str], steps):
|
|
res.append(cached)
|
|
res.append(cached)
|
|
continue
|
|
continue
|
|
|
|
|
|
- texts = [x[1] for x in prompt_schedule]
|
|
|
|
|
|
+ texts = SdConditioning([x[1] for x in prompt_schedule], copy_from=prompts)
|
|
conds = model.get_learned_conditioning(texts)
|
|
conds = model.get_learned_conditioning(texts)
|
|
|
|
|
|
cond_schedule = []
|
|
cond_schedule = []
|