aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrucadi <ruben.cano96@gmail.com>2022-12-16 16:10:13 +0000
committerrucadi <ruben.cano96@gmail.com>2023-02-02 19:10:47 +0000
commit3662a274e2b6482c4ad831cc2d7976d919b40212 (patch)
tree8c84afd1362b11afdc7f21c0a292dc5a3baceeaf
parent226d840e84c5f306350b0681945989b86760e616 (diff)
downloadstable-diffusion-webui-gfx803-3662a274e2b6482c4ad831cc2d7976d919b40212.tar.gz
stable-diffusion-webui-gfx803-3662a274e2b6482c4ad831cc2d7976d919b40212.tar.bz2
stable-diffusion-webui-gfx803-3662a274e2b6482c4ad831cc2d7976d919b40212.zip
Add polling callback
-rw-r--r--modules/script_callbacks.py12
-rw-r--r--webui.py1
2 files changed, 13 insertions, 0 deletions
diff --git a/modules/script_callbacks.py b/modules/script_callbacks.py
index 4bb45ec7..7763936f 100644
--- a/modules/script_callbacks.py
+++ b/modules/script_callbacks.py
@@ -74,6 +74,7 @@ callback_map = dict(
callbacks_infotext_pasted=[],
callbacks_script_unloaded=[],
callbacks_before_ui=[],
+ callbacks_on_polling=[],
)
@@ -89,6 +90,12 @@ def app_started_callback(demo: Optional[Blocks], app: FastAPI):
except Exception:
report_exception(c, 'app_started_callback')
+def app_polling_callback(demo: Optional[Blocks], app: FastAPI):
+ for c in callback_map['callbacks_on_polling']:
+ try:
+ c.callback()
+ except Exception:
+ report_exception(c, 'callbacks_on_polling')
def model_loaded_callback(sd_model):
for c in callback_map['callbacks_model_loaded']:
@@ -227,6 +234,11 @@ def on_app_started(callback):
add_callback(callback_map['callbacks_app_started'], callback)
+def on_polling(callback):
+ """register a function to be called on each polling of the server."""
+ add_callback(callback_map['callbacks_on_polling'], callback)
+
+
def on_model_loaded(callback):
"""register a function to be called when the stable diffusion model is created; the model is
passed as an argument; this function is also called when the script is reloaded. """
diff --git a/webui.py b/webui.py
index 5b5c2139..6c2b511c 100644
--- a/webui.py
+++ b/webui.py
@@ -171,6 +171,7 @@ def create_api(app):
def wait_on_server(demo=None):
while 1:
time.sleep(0.5)
+ modules.script_callbacks.app_polling_callback(None, demo)
if shared.state.need_restart:
shared.state.need_restart = False
time.sleep(0.5)