diff --git a/modules/shared.py b/modules/shared.py index e9c88e31..5eac3317 100644 --- a/modules/shared.py +++ b/modules/shared.py @@ -49,6 +49,7 @@ class State: sampling_steps = 0 current_latent = None current_image = None + current_progress_index = 0 def interrupt(self): self.interrupted = True @@ -102,7 +103,7 @@ class Options: "random_artist_categories": OptionInfo([], "Allowed categories for random artists selection when using the Roll button", gr.CheckboxGroup, {"choices": artist_db.categories()}), "upscale_at_full_resolution_padding": OptionInfo(16, "Inpainting at full resolution: padding, in pixels, for the masked region.", gr.Slider, {"minimum": 0, "maximum": 128, "step": 4}), "show_progressbar": OptionInfo(True, "Show progressbar"), - "show_progress_every_n_steps": OptionInfo(0, "Show show image creation progress every N steps. Set 0 to disable.", gr.Slider, {"minimum": 0, "maximum": 32, "step": 1}), + "show_progress_every_n_steps": OptionInfo(0, "Show show image creation progress every N progress pudates. Set 0 to disable.", gr.Slider, {"minimum": 0, "maximum": 32, "step": 1}), } def __init__(self): diff --git a/modules/ui.py b/modules/ui.py index 8e7a3ee4..fb3c4d33 100644 --- a/modules/ui.py +++ b/modules/ui.py @@ -160,13 +160,14 @@ def check_progress_call(): preview_visibility = gr_show(False) if opts.show_progress_every_n_steps > 0: - if (shared.state.sampling_step-1) % opts.show_progress_every_n_steps == 0 and shared.state.current_latent is not None: + if shared.state.current_progress_index % opts.show_progress_every_n_steps == 0 and shared.state.current_latent is not None: x_sample = shared.sd_model.decode_first_stage(shared.state.current_latent[0:1].type(shared.sd_model.dtype))[0] x_sample = torch.clamp((x_sample + 1.0) / 2.0, min=0.0, max=1.0) x_sample = 255. * np.moveaxis(x_sample.cpu().numpy(), 0, 2) x_sample = x_sample.astype(np.uint8) shared.state.current_image = Image.fromarray(x_sample) + image = shared.state.current_image if image is None or progress >= 1: @@ -174,6 +175,8 @@ def check_progress_call(): else: preview_visibility = gr_show(True) + shared.state.current_progress_index += 1 + return f"{time.time()}

{progressbar}

", preview_visibility, image diff --git a/webui.py b/webui.py index e52efcee..b6037365 100644 --- a/webui.py +++ b/webui.py @@ -127,6 +127,7 @@ def wrap_gradio_gpu_call(func): shared.state.job_no = 0 shared.state.current_latent = None shared.state.current_image = None + shared.state.current_progress_index = 0 with queue_lock: res = func(*args, **kwargs)