|
@@ -100,6 +100,7 @@ class Api:
|
|
|
self.add_api_route("/sdapi/v1/prompt-styles", self.get_prompt_styles, methods=["GET"], response_model=List[PromptStyleItem])
|
|
|
self.add_api_route("/sdapi/v1/artist-categories", self.get_artists_categories, methods=["GET"], response_model=List[str])
|
|
|
self.add_api_route("/sdapi/v1/artists", self.get_artists, methods=["GET"], response_model=List[ArtistItem])
|
|
|
+ self.add_api_route("/sdapi/v1/embeddings", self.get_embeddings, methods=["GET"], response_model=EmbeddingsResponse)
|
|
|
self.add_api_route("/sdapi/v1/refresh-checkpoints", self.refresh_checkpoints, methods=["POST"])
|
|
|
self.add_api_route("/sdapi/v1/create/embedding", self.create_embedding, methods=["POST"], response_model=CreateResponse)
|
|
|
self.add_api_route("/sdapi/v1/create/hypernetwork", self.create_hypernetwork, methods=["POST"], response_model=CreateResponse)
|
|
@@ -327,6 +328,26 @@ class Api:
|
|
|
def get_artists(self):
|
|
|
return [{"name":x[0], "score":x[1], "category":x[2]} for x in shared.artist_db.artists]
|
|
|
|
|
|
+ def get_embeddings(self):
|
|
|
+ db = sd_hijack.model_hijack.embedding_db
|
|
|
+
|
|
|
+ def convert_embedding(embedding):
|
|
|
+ return {
|
|
|
+ "step": embedding.step,
|
|
|
+ "sd_checkpoint": embedding.sd_checkpoint,
|
|
|
+ "sd_checkpoint_name": embedding.sd_checkpoint_name,
|
|
|
+ "shape": embedding.shape,
|
|
|
+ "vectors": embedding.vectors,
|
|
|
+ }
|
|
|
+
|
|
|
+ def convert_embeddings(embeddings):
|
|
|
+ return {embedding.name: convert_embedding(embedding) for embedding in embeddings.values()}
|
|
|
+
|
|
|
+ return {
|
|
|
+ "loaded": convert_embeddings(db.word_embeddings),
|
|
|
+ "skipped": convert_embeddings(db.skipped_embeddings),
|
|
|
+ }
|
|
|
+
|
|
|
def refresh_checkpoints(self):
|
|
|
shared.refresh_checkpoints()
|
|
|
|