diff options
author | AUTOMATIC1111 <16777216c@gmail.com> | 2023-12-30 17:21:13 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-30 17:21:13 +0000 |
commit | 79c9151802c165e9c4def9199436c9826ff11134 (patch) | |
tree | 8be22ba764afc6720a49f3dc39bd6217284b2fad /modules/api/api.py | |
parent | cd12c0e15c4dc1545cac18ba902ca17488812953 (diff) | |
parent | f651405427dfc6d4ef96ecba7f9c2ceb580263fd (diff) | |
download | stable-diffusion-webui-gfx803-79c9151802c165e9c4def9199436c9826ff11134.tar.gz stable-diffusion-webui-gfx803-79c9151802c165e9c4def9199436c9826ff11134.tar.bz2 stable-diffusion-webui-gfx803-79c9151802c165e9c4def9199436c9826ff11134.zip |
Merge pull request #14421 from lanyeeee/api_thread_safe
fix API thread safe issues of txt2img and img2img
Diffstat (limited to 'modules/api/api.py')
-rw-r--r-- | modules/api/api.py | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/modules/api/api.py b/modules/api/api.py index 2e18c6b9..843c59b0 100644 --- a/modules/api/api.py +++ b/modules/api/api.py @@ -251,6 +251,24 @@ class Api: self.default_script_arg_txt2img = [] self.default_script_arg_img2img = [] + txt2img_script_runner = scripts.scripts_txt2img + img2img_script_runner = scripts.scripts_img2img + + if not txt2img_script_runner.scripts or not img2img_script_runner.scripts: + ui.create_ui() + + if not txt2img_script_runner.scripts: + txt2img_script_runner.initialize_scripts(False) + if not self.default_script_arg_txt2img: + self.default_script_arg_txt2img = self.init_default_script_args(txt2img_script_runner) + + if not img2img_script_runner.scripts: + img2img_script_runner.initialize_scripts(True) + if not self.default_script_arg_img2img: + self.default_script_arg_img2img = self.init_default_script_args(img2img_script_runner) + + + def add_api_route(self, path: str, endpoint, **kwargs): if shared.cmd_opts.api_auth: return self.app.add_api_route(path, endpoint, dependencies=[Depends(self.auth)], **kwargs) @@ -413,15 +431,10 @@ class Api: task_id = txt2imgreq.force_task_id or create_task_id("txt2img") script_runner = scripts.scripts_txt2img - if not script_runner.scripts: - script_runner.initialize_scripts(False) - ui.create_ui() infotext_script_args = {} self.apply_infotext(txt2imgreq, "txt2img", script_runner=script_runner, mentioned_script_args=infotext_script_args) - 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) populate = txt2imgreq.copy(update={ # Override __init__ params @@ -482,15 +495,10 @@ class Api: mask = decode_base64_to_image(mask) script_runner = scripts.scripts_img2img - if not script_runner.scripts: - script_runner.initialize_scripts(True) - ui.create_ui() infotext_script_args = {} self.apply_infotext(img2imgreq, "img2img", script_runner=script_runner, mentioned_script_args=infotext_script_args) - 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) populate = img2imgreq.copy(update={ # Override __init__ params |