diff options
author | AUTOMATIC1111 <16777216c@gmail.com> | 2023-08-25 19:03:12 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-25 19:03:12 +0300 |
commit | f3a1027869026710be2aaff024f3220ec3937b53 (patch) | |
tree | 0bfdccbaa1ed55409a6aaca346ba24de887d52c0 /modules/api/api.py | |
parent | 4c6788644a367704d5dcb684a6c74a4ad1d1b078 (diff) | |
parent | dd07b5193efa547929629b310ef5c9ff0fc83a19 (diff) |
Merge pull request #12774 from SpenserCai/extensions_api
support installed extensions list api
Diffstat (limited to 'modules/api/api.py')
-rw-r--r-- | modules/api/api.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/modules/api/api.py b/modules/api/api.py index e6edffe7..785ee828 100644 --- a/modules/api/api.py +++ b/modules/api/api.py @@ -243,6 +243,7 @@ class Api: self.add_api_route("/sdapi/v1/reload-checkpoint", self.reloadapi, methods=["POST"]) 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]) + self.add_api_route("/sdapi/v1/extensions", self.get_extensions_list, methods=["GET"], response_model=List[models.ExtensionItem]) if shared.cmd_opts.api_server_stop: self.add_api_route("/sdapi/v1/server-kill", self.kill_webui, methods=["POST"]) @@ -770,6 +771,25 @@ class Api: cuda = {'error': f'{err}'} return models.MemoryResponse(ram=ram, cuda=cuda) + def get_extensions_list(self): + from modules import extensions + extensions.list_extensions() + ext_list = [] + for ext in extensions.extensions: + ext: extensions.Extension + ext.read_info_from_repo() + if ext.remote is not None: + ext_list.append({ + "name": ext.name, + "remote": ext.remote, + "branch": ext.branch, + "commit_hash":ext.commit_hash, + "commit_date":ext.commit_date, + "version":ext.version, + "enabled":ext.enabled + }) + return ext_list + def launch(self, server_name, port, root_path): self.app.include_router(self.router) uvicorn.run(self.app, host=server_name, port=port, timeout_keep_alive=shared.cmd_opts.timeout_keep_alive, root_path=root_path) |