From f100e66122acdcf551de66f88ea90327955f77e9 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Thu, 13 Jul 2023 07:59:43 -0400 Subject: [PATCH] fix refiner prompt --- TODO.md | 3 +++ modules/processing.py | 4 ++-- modules/sd_samplers_diffusers.py | 3 +++ modules/styles.py | 9 +++++++-- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/TODO.md b/TODO.md index 0686ed58a..dccfd7e08 100644 --- a/TODO.md +++ b/TODO.md @@ -10,6 +10,7 @@ Stuff to be fixed, in no particular order... - Refresh `sd_checkpoint` pulldown on backend switch - Misterious Extensions auto-enabling - Misterious Extra network corruptions +- Update submodule upstream: `git submodule sync` ## Features @@ -36,6 +37,8 @@ Stuff to be added, in no particular order... - Enable refiner workflow for `ldm` backend - Improve `lyco` logging - Cache models when switching backends +- Style editor +- Built-in notifications ## Investigate diff --git a/modules/processing.py b/modules/processing.py index 5ef1dd226..2b3af7c90 100644 --- a/modules/processing.py +++ b/modules/processing.py @@ -759,8 +759,8 @@ def process_images_inner(p: StableDiffusionProcessing) -> Processed: devices.torch_gc() pipe_args = set_pipeline_args( model=shared.sd_refiner, - prompt=p.refiner_prompt if len(p.refiner_prompt) > 0 else prompts, - negative_prompt=p.refiner_negative if len(p.refiner_negative) > 0 else negative_prompts, + prompt=[p.refiner_prompt] if len(p.refiner_prompt) > 0 else prompts, + negative_prompt=[p.refiner_negative] if len(p.refiner_negative) > 0 else negative_prompts, image=output.images[0], output_type='np' ) diff --git a/modules/sd_samplers_diffusers.py b/modules/sd_samplers_diffusers.py index a8ae55a9d..6af0b9b8b 100644 --- a/modules/sd_samplers_diffusers.py +++ b/modules/sd_samplers_diffusers.py @@ -73,8 +73,11 @@ class DiffusionSampler: self.config['lower_order_final'] = opts.schedulers_use_loworder if 'solver_order' in self.config: self.config['solver_order'] = opts.schedulers_solver_order + if 'predict_x0' in self.config: + self.config['predict_x0'] = opts.uni_pc_variant if name.startswith('DPM'): self.config['algorithm_type'] = opts.schedulers_dpm_solver + self.sampler = constructor(**self.config) self.sampler.name = name log.debug(f'Diffusers sampler: {name} {self.config}') diff --git a/modules/styles.py b/modules/styles.py index 2d58dfba0..635d08cdc 100644 --- a/modules/styles.py +++ b/modules/styles.py @@ -24,8 +24,13 @@ def merge_prompts(style_prompt: str, prompt: str) -> str: if "{prompt}" in style_prompt: res = style_prompt.replace("{prompt}", prompt) else: - parts = filter(None, (prompt.strip(), style_prompt.strip())) - res = ", ".join(parts) + original_prompt = prompt.strip() + style_prompt = style_prompt.strip() + parts = filter(None, (original_prompt, style_prompt)) + if original_prompt.endswith(","): + res = " ".join(parts) + else: + res = ", ".join(parts) return res