diff options
author | AUTOMATIC1111 <16777216c@gmail.com> | 2023-06-27 05:41:36 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-27 05:41:36 +0000 |
commit | 3e76ae5f50836324cbacd0554595285731be38a3 (patch) | |
tree | 02e1a2d04b7dc46d09f82a31d4bdf5535fa966d8 /modules/api | |
parent | f005efae721e0dbb46c49b559011ee757cd162fb (diff) | |
parent | 2e1710d88edc1e1a08b01c063fa386b50e5abc30 (diff) | |
download | stable-diffusion-webui-gfx803-3e76ae5f50836324cbacd0554595285731be38a3.tar.gz stable-diffusion-webui-gfx803-3e76ae5f50836324cbacd0554595285731be38a3.tar.bz2 stable-diffusion-webui-gfx803-3e76ae5f50836324cbacd0554595285731be38a3.zip |
Merge pull request #11146 from AUTOMATIC1111/api-quit-restart
api quit restart
Diffstat (limited to 'modules/api')
-rw-r--r-- | modules/api/api.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/modules/api/api.py b/modules/api/api.py index 2e49526e..80d45ca7 100644 --- a/modules/api/api.py +++ b/modules/api/api.py @@ -14,7 +14,7 @@ from fastapi.encoders import jsonable_encoder from secrets import compare_digest import modules.shared as shared -from modules import sd_samplers, deepbooru, sd_hijack, images, scripts, ui, postprocessing, errors +from modules import sd_samplers, deepbooru, sd_hijack, images, scripts, ui, postprocessing, errors, restart from modules.api import models from modules.shared import opts from modules.processing import StableDiffusionProcessingTxt2Img, StableDiffusionProcessingImg2Img, process_images @@ -209,6 +209,11 @@ class Api: self.add_api_route("/sdapi/v1/scripts", self.get_scripts_list, methods=["GET"], response_model=models.ScriptsList) self.add_api_route("/sdapi/v1/script-info", self.get_script_info, methods=["GET"], response_model=List[models.ScriptInfo]) + if shared.cmd_opts.add_stop_route: + self.add_api_route("/sdapi/v1/server-kill", self.kill_webui, methods=["POST"]) + self.add_api_route("/sdapi/v1/server-restart", self.restart_webui, methods=["POST"]) + self.add_api_route("/sdapi/v1/server-stop", self.stop_webui, methods=["POST"]) + self.default_script_arg_txt2img = [] self.default_script_arg_img2img = [] @@ -715,3 +720,15 @@ class Api: def launch(self, server_name, port): self.app.include_router(self.router) uvicorn.run(self.app, host=server_name, port=port, timeout_keep_alive=0) + + def kill_webui(self): + restart.stop_program() + + def restart_webui(self): + if restart.is_restartable(): + restart.restart_program() + return Response(status_code=501) + + def stop_webui(request): + shared.state.server_command = "stop" + return Response("Stopping.") |