diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b2ad4b8f..97b52f055 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -77,6 +77,7 @@ For full list of changes, see full changelog. - print system env on startup - disable fallback on models with custom loaders - refactor triggering of prompt parser and set secondary prompts when needed + - refactor handling of seeds - **Fixes** - extension tab: update checker, date handling, formatting etc., thanks @awsr - controlnet with non-english ui locales diff --git a/modules/processing_class.py b/modules/processing_class.py index a4675074c..d4305d52f 100644 --- a/modules/processing_class.py +++ b/modules/processing_class.py @@ -313,6 +313,8 @@ class StableDiffusionProcessing: self.negative_prompts = None self.all_prompts = None self.all_negative_prompts = None + self.seeds = [] + self.subseeds = [] self.all_seeds = None self.all_subseeds = None diff --git a/modules/processing_helpers.py b/modules/processing_helpers.py index 1f1ac774e..222409738 100644 --- a/modules/processing_helpers.py +++ b/modules/processing_helpers.py @@ -236,6 +236,10 @@ def get_fixed_seed(seed): def fix_seed(p): p.seed = get_fixed_seed(p.seed) p.subseed = get_fixed_seed(p.subseed) + for i in range(len(p.all_seeds)): + p.all_seeds[i] = get_fixed_seed(p.all_seeds[i]) + for i in range(len(p.all_subseeds)): + p.all_subseeds[i] = get_fixed_seed(p.all_subseeds[i]) def old_hires_fix_first_pass_dimensions(width, height): diff --git a/modules/processing_prompt.py b/modules/processing_prompt.py index 3c3ecdf6d..828839df9 100644 --- a/modules/processing_prompt.py +++ b/modules/processing_prompt.py @@ -93,10 +93,10 @@ def set_prompt(p, try: prompt_parser_diffusers.embedder = prompt_parser_diffusers.PromptEmbedder(prompts, negative_prompts, steps, clip_skip, p) except Exception as e: + prompt_parser_diffusers.embedder = None shared.log.error(f'Prompt parser encode: {e}') if debug_enabled: errors.display(e, 'Prompt parser encode') - prompt_parser_diffusers.embedder = None timer.process.record('prompt', reset=False) shared.state.end(jobid) else: