Commit 0c8825b2 authored by rucadi's avatar rucadi

Add a callback called before reloading the server

parent 1742c04b
......@@ -64,6 +64,7 @@ callback_map = dict(
callbacks_before_component=[],
callbacks_after_component=[],
callbacks_on_polling=[],
callbacks_on_reload=[],
)
......@@ -71,7 +72,6 @@ def clear_callbacks():
for callback_list in callback_map.values():
callback_list.clear()
def app_started_callback(demo: Optional[Blocks], app: FastAPI):
for c in callback_map['callbacks_app_started']:
try:
......@@ -86,6 +86,14 @@ def app_polling_callback(demo: Optional[Blocks], app: FastAPI):
except Exception:
report_exception(c, 'callbacks_on_polling')
def app_reload_callback(demo: Optional[Blocks], app: FastAPI):
for c in callback_map['callbacks_on_reload']:
try:
c.callback()
except Exception:
report_exception(c, 'callbacks_on_reload')
def model_loaded_callback(sd_model):
for c in callback_map['callbacks_model_loaded']:
try:
......@@ -195,6 +203,9 @@ 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_before_reload(callback):
"""register a function to be called just before the server reloads."""
add_callback(callback_map['callbacks_on_reload'], callback)
def on_model_loaded(callback):
"""register a function to be called when the stable diffusion model is created; the model is
......
......@@ -108,6 +108,7 @@ def wait_on_server(demo=None):
time.sleep(0.5)
modules.script_callbacks.app_polling_callback(None, demo)
if shared.state.need_restart:
modules.script_callbacks.app_reload_callback(None, demo)
shared.state.need_restart = False
time.sleep(0.5)
demo.close()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment