aboutsummaryrefslogtreecommitdiffstats
path: root/modules/api/api.py
diff options
context:
space:
mode:
authorAUTOMATIC1111 <16777216c@gmail.com>2023-03-25 09:03:26 +0000
committerGitHub <noreply@github.com>2023-03-25 09:03:26 +0000
commit956ed9a737e9f548336fb274901e5f43683736f8 (patch)
treeec48b6da539a97d2974db0774999c2c89d6a94f7 /modules/api/api.py
parent8d2c582e3ea99e107df57a4e142acc28a6318d55 (diff)
parent4cbbb881ee530d9b9ba18027e2b0057e6a2c4ee1 (diff)
downloadstable-diffusion-webui-gfx803-956ed9a737e9f548336fb274901e5f43683736f8.tar.gz
stable-diffusion-webui-gfx803-956ed9a737e9f548336fb274901e5f43683736f8.tar.bz2
stable-diffusion-webui-gfx803-956ed9a737e9f548336fb274901e5f43683736f8.zip
Merge pull request #8780 from Brawlence/master
Unload and re-load checkpoint to VRAM on request (API & Manual)
Diffstat (limited to 'modules/api/api.py')
-rw-r--r--modules/api/api.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/modules/api/api.py b/modules/api/api.py
index 35e17afc..f52f7fef 100644
--- a/modules/api/api.py
+++ b/modules/api/api.py
@@ -18,7 +18,7 @@ from modules.textual_inversion.textual_inversion import create_embedding, train_
from modules.textual_inversion.preprocess import preprocess
from modules.hypernetworks.hypernetwork import create_hypernetwork, train_hypernetwork
from PIL import PngImagePlugin,Image
-from modules.sd_models import checkpoints_list
+from modules.sd_models import checkpoints_list, unload_model_weights, reload_model_weights
from modules.sd_models_config import find_checkpoint_config_near_filename
from modules.realesrgan_model import get_realesrgan_models
from modules import devices
@@ -150,6 +150,8 @@ class Api:
self.add_api_route("/sdapi/v1/train/embedding", self.train_embedding, methods=["POST"], response_model=TrainResponse)
self.add_api_route("/sdapi/v1/train/hypernetwork", self.train_hypernetwork, methods=["POST"], response_model=TrainResponse)
self.add_api_route("/sdapi/v1/memory", self.get_memory, methods=["GET"], response_model=MemoryResponse)
+ self.add_api_route("/sdapi/v1/unload-checkpoint", self.unloadapi, methods=["POST"])
+ 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=ScriptsList)
def add_api_route(self, path: str, endpoint, **kwargs):
@@ -412,6 +414,16 @@ class Api:
return {}
+ def unloadapi(self):
+ unload_model_weights()
+
+ return {}
+
+ def reloadapi(self):
+ reload_model_weights()
+
+ return {}
+
def skip(self):
shared.state.skip()