diff --git a/modules/async_worker.py b/modules/async_worker.py index b4207591..0ca051d0 100644 --- a/modules/async_worker.py +++ b/modules/async_worker.py @@ -6,6 +6,7 @@ class AsyncTask: self.args = args self.yields = [] self.results = [] + self.last_stop = False async_tasks = [] @@ -722,7 +723,7 @@ def worker(): yield_result(async_task, imgs, do_not_show_finished_images=len(tasks) == 1) except fcbh.model_management.InterruptProcessingException as e: - if shared.last_stop == 'skip': + if async_task.last_stop == 'skip': print('User skipped') continue else: diff --git a/shared.py b/shared.py index 269809e3..21a2a864 100644 --- a/shared.py +++ b/shared.py @@ -1,2 +1 @@ -gradio_root = None -last_stop = None +gradio_root = None \ No newline at end of file diff --git a/webui.py b/webui.py index 35ef0629..aa936d79 100644 --- a/webui.py +++ b/webui.py @@ -20,12 +20,13 @@ from modules.private_logger import get_current_html_path from modules.ui_gradio_extensions import reload_javascript from modules.auth import auth_enabled, check_auth +currentTask = gr.State() def generate_clicked(*args): # outputs=[progress_html, progress_window, progress_gallery, gallery] execution_start_time = time.perf_counter() - task = worker.AsyncTask(args=list(args)) + currentTask.value = task = worker.AsyncTask(args=list(args)) finished = False yield gr.update(visible=True, value=modules.html.make_progress_html(1, 'Waiting for task to start ...')), \ @@ -117,13 +118,13 @@ with shared.gradio_root: def stop_clicked(): import fcbh.model_management as model_management - shared.last_stop = 'stop' + currentTask.value.last_stop = 'stop' model_management.interrupt_current_processing() return [gr.update(interactive=False)] * 2 def skip_clicked(): import fcbh.model_management as model_management - shared.last_stop = 'skip' + currentTask.value.last_stop = 'skip' model_management.interrupt_current_processing() return