diff options
author | AUTOMATIC <16777216c@gmail.com> | 2023-01-04 20:56:43 +0000 |
---|---|---|
committer | AUTOMATIC <16777216c@gmail.com> | 2023-01-04 20:56:43 +0000 |
commit | bc43293c640aef65df3136de9e5bd8b7e79eb3e0 (patch) | |
tree | e30f03fe9ab658d44f3225b1d0ceb65c4e9e41f9 | |
parent | 81490780949fffed77493b4bd741e96ec737fe27 (diff) | |
download | stable-diffusion-webui-gfx803-bc43293c640aef65df3136de9e5bd8b7e79eb3e0.tar.gz stable-diffusion-webui-gfx803-bc43293c640aef65df3136de9e5bd8b7e79eb3e0.tar.bz2 stable-diffusion-webui-gfx803-bc43293c640aef65df3136de9e5bd8b7e79eb3e0.zip |
fix incorrect display/calculation for number of steps for hires fix in progress bars
-rw-r--r-- | modules/processing.py | 9 | ||||
-rw-r--r-- | modules/sd_samplers.py | 5 | ||||
-rw-r--r-- | modules/shared.py | 4 |
3 files changed, 12 insertions, 6 deletions
diff --git a/modules/processing.py b/modules/processing.py index 9cad05f2..f28e7212 100644 --- a/modules/processing.py +++ b/modules/processing.py @@ -685,10 +685,13 @@ class StableDiffusionProcessingTxt2Img(StableDiffusionProcessing): def init(self, all_prompts, all_seeds, all_subseeds):
if self.enable_hr:
- if state.job_count == -1:
- state.job_count = self.n_iter * 2
- else:
+ if not state.processing_has_refined_job_count:
+ if state.job_count == -1:
+ state.job_count = self.n_iter
+
+ shared.total_tqdm.updateTotal((self.steps + (self.hr_second_pass_steps or self.steps)) * state.job_count)
state.job_count = state.job_count * 2
+ state.processing_has_refined_job_count = True
if self.hr_resize_x == 0 and self.hr_resize_y == 0:
self.extra_generation_params["Hires upscale"] = self.hr_scale
diff --git a/modules/sd_samplers.py b/modules/sd_samplers.py index e904d860..3851a77f 100644 --- a/modules/sd_samplers.py +++ b/modules/sd_samplers.py @@ -97,8 +97,9 @@ sampler_extra_params = { def setup_img2img_steps(p, steps=None):
if opts.img2img_fix_steps or steps is not None:
- steps = int((steps or p.steps) / min(p.denoising_strength, 0.999)) if p.denoising_strength > 0 else 0
- t_enc = p.steps - 1
+ requested_steps = (steps or p.steps)
+ steps = int(requested_steps / min(p.denoising_strength, 0.999)) if p.denoising_strength > 0 else 0
+ t_enc = requested_steps - 1
else:
steps = p.steps
t_enc = int(min(p.denoising_strength, 0.999) * steps)
diff --git a/modules/shared.py b/modules/shared.py index 54a6ba23..04c545ee 100644 --- a/modules/shared.py +++ b/modules/shared.py @@ -153,6 +153,7 @@ class State: job = ""
job_no = 0
job_count = 0
+ processing_has_refined_job_count = False
job_timestamp = '0'
sampling_step = 0
sampling_steps = 0
@@ -194,6 +195,7 @@ class State: def begin(self):
self.sampling_step = 0
self.job_count = -1
+ self.processing_has_refined_job_count = False
self.job_no = 0
self.job_timestamp = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
self.current_latent = None
@@ -608,7 +610,7 @@ class TotalTQDM: return
if self._tqdm is None:
self.reset()
- self._tqdm.total=new_total
+ self._tqdm.total = new_total
def clear(self):
if self._tqdm is not None:
|