mirror of
https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
synced 2024-06-07 21:20:49 +00:00
add locks to ensure init args are thread-safe
This commit is contained in:
parent
00d4a4d4ac
commit
c069c2c562
@ -251,14 +251,10 @@ class Api:
|
|||||||
self.default_script_arg_txt2img = []
|
self.default_script_arg_txt2img = []
|
||||||
self.default_script_arg_img2img = []
|
self.default_script_arg_img2img = []
|
||||||
|
|
||||||
script_runner = scripts.scripts_img2img
|
self.txt2img_script_arg_init_lock = Lock()
|
||||||
if not script_runner.scripts:
|
self.img2img_script_arg_init_lock = Lock()
|
||||||
script_runner.initialize_scripts(True)
|
|
||||||
ui.create_ui()
|
|
||||||
if not self.default_script_arg_txt2img:
|
|
||||||
self.default_script_arg_txt2img = self.init_default_script_args(script_runner)
|
|
||||||
if not self.default_script_arg_img2img:
|
|
||||||
self.default_script_arg_img2img = self.init_default_script_args(script_runner)
|
|
||||||
|
|
||||||
def add_api_route(self, path: str, endpoint, **kwargs):
|
def add_api_route(self, path: str, endpoint, **kwargs):
|
||||||
if shared.cmd_opts.api_auth:
|
if shared.cmd_opts.api_auth:
|
||||||
@ -348,6 +344,12 @@ class Api:
|
|||||||
task_id = txt2imgreq.force_task_id or create_task_id("txt2img")
|
task_id = txt2imgreq.force_task_id or create_task_id("txt2img")
|
||||||
|
|
||||||
script_runner = scripts.scripts_txt2img
|
script_runner = scripts.scripts_txt2img
|
||||||
|
with self.txt2img_script_arg_init_lock:
|
||||||
|
if not script_runner.scripts:
|
||||||
|
script_runner.initialize_scripts(False)
|
||||||
|
ui.create_ui()
|
||||||
|
if not self.default_script_arg_txt2img:
|
||||||
|
self.default_script_arg_txt2img = self.init_default_script_args(script_runner)
|
||||||
selectable_scripts, selectable_script_idx = self.get_selectable_script(txt2imgreq.script_name, script_runner)
|
selectable_scripts, selectable_script_idx = self.get_selectable_script(txt2imgreq.script_name, script_runner)
|
||||||
|
|
||||||
populate = txt2imgreq.copy(update={ # Override __init__ params
|
populate = txt2imgreq.copy(update={ # Override __init__ params
|
||||||
@ -407,6 +409,12 @@ class Api:
|
|||||||
mask = decode_base64_to_image(mask)
|
mask = decode_base64_to_image(mask)
|
||||||
|
|
||||||
script_runner = scripts.scripts_img2img
|
script_runner = scripts.scripts_img2img
|
||||||
|
with self.img2img_script_arg_init_lock:
|
||||||
|
if not script_runner.scripts:
|
||||||
|
script_runner.initialize_scripts(True)
|
||||||
|
ui.create_ui()
|
||||||
|
if not self.default_script_arg_img2img:
|
||||||
|
self.default_script_arg_img2img = self.init_default_script_args(script_runner)
|
||||||
selectable_scripts, selectable_script_idx = self.get_selectable_script(img2imgreq.script_name, script_runner)
|
selectable_scripts, selectable_script_idx = self.get_selectable_script(img2imgreq.script_name, script_runner)
|
||||||
|
|
||||||
populate = img2imgreq.copy(update={ # Override __init__ params
|
populate = img2imgreq.copy(update={ # Override __init__ params
|
||||||
|
Loading…
Reference in New Issue
Block a user