Ruff fix and refiner->is_refiner.

This commit is contained in:
Hameer Abbasi
2023-08-06 07:37:45 +02:00
parent e65e959eef
commit bb66b5ce0e
3 changed files with 12 additions and 11 deletions
+1 -1
View File
@@ -448,7 +448,7 @@ class Api:
def get_samplers(self):
return [{"name": sampler[0], "aliases":sampler[2], "options":sampler[3]} for sampler in sd_samplers.all_samplers]
def get_sd_vaes(self):
return [{"model_name": x, "filename": vae_dict[x]} for x in vae_dict.keys()]
+6 -5
View File
@@ -8,6 +8,7 @@ import modules.images as images
from modules.lora_diffusers import lora_state, unload_diffusers_lora
from modules.processing import StableDiffusionProcessing
import modules.prompt_parser_diffusers as prompt_parser_diffusers
import typing
try:
import diffusers
@@ -51,7 +52,7 @@ def process_diffusers(p: StableDiffusionProcessing, seeds, prompts, negative_pro
return latents
def set_pipeline_args(model, prompt, negative_prompt, prompt_2=None, negative_prompt_2=None, refiner=False, **kwargs):
def set_pipeline_args(model, prompt: str, negative_prompt: str, prompt_2: typing.Optional[str] =None, negative_prompt_2: typing.Optional[str] = None, is_refiner: bool = False, **kwargs):
args = {}
pipeline = model
signature = inspect.signature(type(pipeline).__call__)
@@ -63,7 +64,7 @@ def process_diffusers(p: StableDiffusionProcessing, seeds, prompts, negative_pro
negative_embed = None
negative_pooled = None
if shared.opts.data['prompt_attention'] != 'Fixed attention':
prompt_embed, pooled, negative_embed, negative_pooled = prompt_parser_diffusers.compel_encode_prompt(model, prompt, negative_prompt, prompt_2, negative_prompt_2, refiner)
prompt_embed, pooled, negative_embed, negative_pooled = prompt_parser_diffusers.compel_encode_prompt(model, prompt, negative_prompt, prompt_2, negative_prompt_2, is_refiner)
if 'prompt' in possible:
if hasattr(model, 'text_encoder') and 'prompt_embeds' in possible and prompt_embed is not None:
args['prompt_embeds'] = prompt_embed
@@ -157,7 +158,7 @@ def process_diffusers(p: StableDiffusionProcessing, seeds, prompts, negative_pro
denoising_start=0 if refiner_enabled and p.refiner_start > 0 and p.refiner_start < 1 else None,
denoising_end=p.refiner_start if refiner_enabled and p.refiner_start > 0 and p.refiner_start < 1 else None,
output_type='latent' if hasattr(shared.sd_model, 'vae') else 'np',
refiner=False,
is_refiner=False,
**task_specific_kwargs
)
output = shared.sd_model(**pipe_args) # pylint: disable=not-callable
@@ -211,7 +212,7 @@ def process_diffusers(p: StableDiffusionProcessing, seeds, prompts, negative_pro
denoising_end=1 if p.refiner_start > 0 and p.refiner_start < 1 else None,
image=output.images[i],
output_type='latent' if hasattr(shared.sd_refiner, 'vae') else 'np',
refiner=True
is_refiner=True
)
refiner_output = shared.sd_refiner(**pipe_args) # pylint: disable=not-callable
if not shared.state.interrupted and not shared.state.skipped:
@@ -230,4 +231,4 @@ def process_diffusers(p: StableDiffusionProcessing, seeds, prompts, negative_pro
return results
return results
+5 -5
View File
@@ -26,7 +26,7 @@ def compel_encode_prompt(pipeline: typing.Any, *args, **kwargs):
raise TypeError(f"Compel encoding not yet supported for {type(pipeline).__name__}.")
return compel_encode_fn(pipeline, *args, **kwargs)
def compel_encode_prompt_sdxl(pipeline: diffusers.StableDiffusionXLPipeline, prompt: str, negative_prompt: str, prompt_2: typing.Optional[str]=None, negative_prompt_2: typing.Optional[str]=None, refiner=False):
def compel_encode_prompt_sdxl(pipeline: diffusers.StableDiffusionXLPipeline, prompt: str, negative_prompt: str, prompt_2: typing.Optional[str]=None, negative_prompt_2: typing.Optional[str]=None, is_refiner: bool = False):
if shared.opts.data['prompt_attention'] != 'Compel parser':
prompt = convert_to_compel(prompt)
negative_prompt = convert_to_compel(negative_prompt)
@@ -46,20 +46,20 @@ def compel_encode_prompt_sdxl(pipeline: diffusers.StableDiffusionXLPipeline, pro
returned_embeddings_type=ReturnedEmbeddingsType.PENULTIMATE_HIDDEN_STATES_NON_NORMALIZED,
requires_pooled=True,
)
if refiner is False:
if not is_refiner:
positive_te1 = compel_te1(prompt)
positive_te2, pooled = compel_te2(prompt_2)
positive_te2, positive_pooled = compel_te2(prompt_2)
positive = torch.cat((positive_te1, positive_te2), dim=-1)
negative_te1 = compel_te1(negative_prompt)
negative_te2, negative_pooled = compel_te2(negative_prompt_2)
negative = torch.cat((negative_te1, negative_te2), dim=-1)
else:
positive, pooled = compel_te2(prompt)
positive, positive_pooled = compel_te2(prompt)
negative, negative_pooled = compel_te2(negative_prompt)
shared.log.debug(compel_te1.parse_prompt_string(prompt))
[prompt_embed, negative_embed] = compel_te2.pad_conditioning_tensors_to_same_length([positive, negative])
return prompt_embed, pooled, negative_embed, negative_pooled
return prompt_embed, positive_pooled, negative_embed, negative_pooled
COMPEL_ENCODE_FN_DICT = {diffusers.StableDiffusionXLPipeline: compel_encode_prompt_sdxl}