diff options
author | AUTOMATIC1111 <16777216c@gmail.com> | 2023-01-23 12:24:11 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-23 12:24:11 +0000 |
commit | 97ba01a2136f0482774824fc812c8faf36fd9658 (patch) | |
tree | 50077528902a85075e0d546763dc4b07f6107c20 /scripts/xy_grid.py | |
parent | 663353098e84540763a7ed42196118fe36a65f04 (diff) | |
parent | 8a3f85c4cc1910f59e04b5c8355a30c4c42431e5 (diff) | |
download | stable-diffusion-webui-gfx803-97ba01a2136f0482774824fc812c8faf36fd9658.tar.gz stable-diffusion-webui-gfx803-97ba01a2136f0482774824fc812c8faf36fd9658.tar.bz2 stable-diffusion-webui-gfx803-97ba01a2136f0482774824fc812c8faf36fd9658.zip |
Merge pull request #7081 from EllangoK/xy-hires
Adds Hires Steps to X/Y Plot, and updates step calculation
Diffstat (limited to 'scripts/xy_grid.py')
-rw-r--r-- | scripts/xy_grid.py | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/scripts/xy_grid.py b/scripts/xy_grid.py index bea0cbfd..1a452355 100644 --- a/scripts/xy_grid.py +++ b/scripts/xy_grid.py @@ -184,6 +184,7 @@ axis_options = [ AxisOption("Var. seed", int, apply_field("subseed")),
AxisOption("Var. strength", float, apply_field("subseed_strength")),
AxisOption("Steps", int, apply_field("steps")),
+ AxisOptionTxt2Img("Hires steps", int, apply_field("hr_second_pass_steps")),
AxisOption("CFG Scale", float, apply_field("cfg_scale")),
AxisOption("Prompt S/R", str, apply_prompt, format_value=format_value),
AxisOption("Prompt order", str_permutations, apply_order, format_value=format_value_join_list),
@@ -426,10 +427,21 @@ class Script(scripts.Script): total_steps = p.steps * len(xs) * len(ys)
if isinstance(p, StableDiffusionProcessingTxt2Img) and p.enable_hr:
- total_steps *= 2
+ if x_opt.label == "Hires steps":
+ total_steps += sum(xs) * len(ys)
+ elif y_opt.label == "Hires steps":
+ total_steps += sum(ys) * len(xs)
+ elif p.hr_second_pass_steps:
+ total_steps += p.hr_second_pass_steps * len(xs) * len(ys)
+ else:
+ total_steps *= 2
+
+ total_steps *= p.n_iter
- print(f"X/Y plot will create {len(xs) * len(ys) * p.n_iter} images on a {len(xs)}x{len(ys)} grid. (Total steps to process: {total_steps * p.n_iter})")
- shared.total_tqdm.updateTotal(total_steps * p.n_iter)
+ image_cell_count = p.n_iter * p.batch_size
+ cell_console_text = f"; {image_cell_count} images per cell" if image_cell_count > 1 else ""
+ print(f"X/Y plot will create {len(xs) * len(ys) * image_cell_count} images on a {len(xs)}x{len(ys)} grid{cell_console_text}. (Total steps to process: {total_steps})")
+ shared.total_tqdm.updateTotal(total_steps)
grid_infotext = [None]
|