aboutsummaryrefslogtreecommitdiffstats
path: root/modules/api/api.py
diff options
context:
space:
mode:
authorcluder <1590330+cluder@users.noreply.github.com>2022-11-09 04:50:43 +0000
committercluder <1590330+cluder@users.noreply.github.com>2022-11-09 04:50:43 +0000
commitf37cce0e3d154f300d4ec7ed8ef6a32d1c613e50 (patch)
tree59884560de9a6462122dcab7d1a70a64c7e5ac11 /modules/api/api.py
parent3b51d239ac9201228c6032fc109111e347e8e6b0 (diff)
parentac085628540d0ec6a988fad93f5b8f2154209571 (diff)
downloadstable-diffusion-webui-gfx803-f37cce0e3d154f300d4ec7ed8ef6a32d1c613e50.tar.gz
stable-diffusion-webui-gfx803-f37cce0e3d154f300d4ec7ed8ef6a32d1c613e50.tar.bz2
stable-diffusion-webui-gfx803-f37cce0e3d154f300d4ec7ed8ef6a32d1c613e50.zip
Merge branch 'master' of https://github.com/cluder/stable-diffusion-webui into 4448_fix_ckpt_cache
Diffstat (limited to 'modules/api/api.py')
-rw-r--r--modules/api/api.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/modules/api/api.py b/modules/api/api.py
index 112000b8..688469ad 100644
--- a/modules/api/api.py
+++ b/modules/api/api.py
@@ -63,6 +63,7 @@ class Api:
self.app.add_api_route("/sdapi/v1/extra-batch-images", self.extras_batch_images_api, methods=["POST"], response_model=ExtrasBatchImagesResponse)
self.app.add_api_route("/sdapi/v1/png-info", self.pnginfoapi, methods=["POST"], response_model=PNGInfoResponse)
self.app.add_api_route("/sdapi/v1/progress", self.progressapi, methods=["GET"], response_model=ProgressResponse)
+ self.app.add_api_route("/sdapi/v1/interrogate", self.interrogateapi, methods=["POST"])
self.app.add_api_route("/sdapi/v1/interrupt", self.interruptapi, methods=["POST"])
self.app.add_api_route("/sdapi/v1/options", self.get_config, methods=["GET"], response_model=OptionsModel)
self.app.add_api_route("/sdapi/v1/options", self.set_config, methods=["POST"])
@@ -214,6 +215,19 @@ class Api:
return ProgressResponse(progress=progress, eta_relative=eta_relative, state=shared.state.dict(), current_image=current_image)
+ def interrogateapi(self, interrogatereq: InterrogateRequest):
+ image_b64 = interrogatereq.image
+ if image_b64 is None:
+ raise HTTPException(status_code=404, detail="Image not found")
+
+ img = self.__base64_to_image(image_b64)
+
+ # Override object param
+ with self.queue_lock:
+ processed = shared.interrogator.interrogate(img)
+
+ return InterrogateResponse(caption=processed)
+
def interruptapi(self):
shared.state.interrupt()