From f69b4c5589f18fb473017a42aa49370bb49dbb5e Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Tue, 21 Oct 2025 11:07:47 -0400 Subject: [PATCH] disabling live preview should not disable progress updates Signed-off-by: Vladimir Mandic --- CHANGELOG.md | 1 + javascript/progressBar.js | 2 +- modules/progress.py | 4 ++-- modules/sd_samplers_common.py | 2 +- modules/shared.py | 2 +- modules/shared_state.py | 2 +- 6 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d489ff6e0..d68c72dac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ - fix modernui hints layout - fix `wan-2.2-a14b` stage selection - fix `wan-2.2-5b` vae decode + - disabling live preview should not disable progress updates ## Update for 2025-10-18 diff --git a/javascript/progressBar.js b/javascript/progressBar.js index 5c148836b..5062517e0 100644 --- a/javascript/progressBar.js +++ b/javascript/progressBar.js @@ -132,7 +132,7 @@ function requestProgress(id_task, progressEl, galleryEl, atEnd = null, onProgres }; const start = (id_task, id_live_preview) => { // eslint-disable-line no-shadow - if (!opts.live_previews_enable || opts.live_preview_refresh_period === 0 || opts.show_progress_every_n_steps === 0) return; + if (opts.live_preview_refresh_period === 0) return; const request_id = document.hidden ? -1 : id_live_preview; const onProgressHandler = (res) => { diff --git a/modules/progress.py b/modules/progress.py index 3203995e5..f0fe52877 100644 --- a/modules/progress.py +++ b/modules/progress.py @@ -92,9 +92,9 @@ def api_progress(req: ProgressRequest): id_live_preview = -1 textinfo = "Queued..." if queued else "Waiting..." - debug_log(f'Preview: job={shared.state.job} active={active} progress={step}/{steps}/{progress} image={shared.state.current_image_sampling_step} request={id_live_preview} last={shared.state.id_live_preview} enabled={shared.opts.live_previews_enable} job={shared.state.preview_job} elapsed={elapsed:.3f}') + debug_log(f'Preview: job={shared.state.job} active={active} progress={step}/{steps}/{progress} image={shared.state.current_image_sampling_step} request={id_live_preview} last={shared.state.id_live_preview} job={shared.state.preview_job} elapsed={elapsed:.3f}') - if shared.opts.live_previews_enable and active and (req.id_live_preview != -1): + if active and (req.id_live_preview != -1): have_image = shared.state.set_current_image() if have_image and shared.state.current_image is not None: buffered = io.BytesIO() diff --git a/modules/sd_samplers_common.py b/modules/sd_samplers_common.py index 09a06352a..a45f238d3 100644 --- a/modules/sd_samplers_common.py +++ b/modules/sd_samplers_common.py @@ -124,7 +124,7 @@ def images_tensor_to_samples(image, approximation=None, model=None): def store_latent(decoded): shared.state.current_latent = decoded - if shared.opts.live_previews_enable and shared.opts.show_progress_every_n_steps > 0 and shared.state.sampling_step % shared.opts.show_progress_every_n_steps == 0: + if shared.opts.show_progress_every_n_steps > 0 and shared.state.sampling_step % shared.opts.show_progress_every_n_steps == 0: if not shared.parallel_processing_allowed: image = sample_to_image(decoded) shared.state.assign_current_image(image) diff --git a/modules/shared.py b/modules/shared.py index 525b7df6f..8a5b7510a 100644 --- a/modules/shared.py +++ b/modules/shared.py @@ -591,7 +591,7 @@ options_templates.update(options_section(('ui', "User Interface"), { })) options_templates.update(options_section(('live-preview', "Live Previews"), { - "show_progress_every_n_steps": OptionInfo(1, "Live preview display period", gr.Slider, {"minimum": 0, "maximum": 32, "step": 1}), + "show_progress_every_n_steps": OptionInfo(1, "Live preview display period", gr.Slider, {"minimum": 0, "maximum": 20, "step": 1}), "show_progress_type": OptionInfo("TAESD", "Live preview method", gr.Radio, {"choices": ["Simple", "Approximate", "TAESD", "Full VAE"]}), "live_preview_refresh_period": OptionInfo(500, "Progress update period", gr.Slider, {"minimum": 0, "maximum": 5000, "step": 25}), "taesd_variant": OptionInfo(shared_items.sd_taesd_items()[0], "TAESD variant", gr.Dropdown, {"choices": shared_items.sd_taesd_items()}), diff --git a/modules/shared_state.py b/modules/shared_state.py index f575f4482..ebc412265 100644 --- a/modules/shared_state.py +++ b/modules/shared_state.py @@ -260,7 +260,7 @@ class State: if self.job == 'VAE' or self.job == 'Upscale': # avoid generating preview while vae is running return False from modules.shared import opts, cmd_opts - if cmd_opts.lowvram or self.api or (not opts.live_previews_enable) or (opts.show_progress_every_n_steps <= 0): + if cmd_opts.lowvram or self.api or (opts.show_progress_every_n_steps <= 0): return False if (not self.disable_preview) and (abs(self.sampling_step - self.current_image_sampling_step) >= opts.show_progress_every_n_steps): return self.do_set_current_image()