aboutsummaryrefslogtreecommitdiffstats
path: root/modules/progress.py
diff options
context:
space:
mode:
authorpapuSpartan <30642826+papuSpartan@users.noreply.github.com>2023-05-03 07:21:50 +0000
committerpapuSpartan <30642826+papuSpartan@users.noreply.github.com>2023-05-03 07:21:50 +0000
commitf08ae961157d33051b5cd09ba5c77b779096ef69 (patch)
tree038e0f511d51816c0a971d6093da0420b5677ae0 /modules/progress.py
parentdff60e2e74964a8b02b75ecd8cf8007ef67a9712 (diff)
parent335428c2c8139dfe07ba096a6defa75036660244 (diff)
downloadstable-diffusion-webui-gfx803-f08ae961157d33051b5cd09ba5c77b779096ef69.tar.gz
stable-diffusion-webui-gfx803-f08ae961157d33051b5cd09ba5c77b779096ef69.tar.bz2
stable-diffusion-webui-gfx803-f08ae961157d33051b5cd09ba5c77b779096ef69.zip
resolve merge conflicts and swap to dev branch for now
Diffstat (limited to 'modules/progress.py')
-rw-r--r--modules/progress.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/modules/progress.py b/modules/progress.py
index c69ecf3d..5655346b 100644
--- a/modules/progress.py
+++ b/modules/progress.py
@@ -13,6 +13,8 @@ import modules.shared as shared
current_task = None
pending_tasks = {}
finished_tasks = []
+recorded_results = []
+recorded_results_limit = 2
def start_task(id_task):
@@ -33,6 +35,12 @@ def finish_task(id_task):
finished_tasks.pop(0)
+def record_results(id_task, res):
+ recorded_results.append((id_task, res))
+ if len(recorded_results) > recorded_results_limit:
+ recorded_results.pop(0)
+
+
def add_task_to_queue(id_job):
pending_tasks[id_job] = time.time()
@@ -97,3 +105,13 @@ def progressapi(req: ProgressRequest):
return ProgressResponse(active=active, queued=queued, completed=completed, progress=progress, eta=eta, live_preview=live_preview, id_live_preview=id_live_preview, textinfo=shared.state.textinfo)
+
+def restore_progress(id_task):
+ while id_task == current_task or id_task in pending_tasks:
+ time.sleep(0.1)
+
+ res = next(iter([x[1] for x in recorded_results if id_task == x[0]]), None)
+ if res is not None:
+ return res
+
+ return gr.update(), gr.update(), gr.update(), f"Couldn't restore progress for {id_task}: results either have been discarded or never were obtained"