diff options
author | Suffocate <70031311+lolsuffocate@users.noreply.github.com> | 2023-01-04 20:36:30 +0000 |
---|---|---|
committer | Suffocate <70031311+lolsuffocate@users.noreply.github.com> | 2023-01-04 20:36:30 +0000 |
commit | 1288a3bb7d21064e5bd0af7158a3840886027c51 (patch) | |
tree | bd6b6a107ba75cda8dd3758021b447a14cc3f6f2 /modules/api | |
parent | 81490780949fffed77493b4bd741e96ec737fe27 (diff) | |
download | stable-diffusion-webui-gfx803-1288a3bb7d21064e5bd0af7158a3840886027c51.tar.gz stable-diffusion-webui-gfx803-1288a3bb7d21064e5bd0af7158a3840886027c51.tar.bz2 stable-diffusion-webui-gfx803-1288a3bb7d21064e5bd0af7158a3840886027c51.zip |
Use the read_info_from_image function directly
Diffstat (limited to 'modules/api')
-rw-r--r-- | modules/api/api.py | 16 | ||||
-rw-r--r-- | modules/api/models.py | 5 |
2 files changed, 15 insertions, 6 deletions
diff --git a/modules/api/api.py b/modules/api/api.py index 48a70a44..2103709b 100644 --- a/modules/api/api.py +++ b/modules/api/api.py @@ -11,10 +11,10 @@ from fastapi.security import HTTPBasic, HTTPBasicCredentials from secrets import compare_digest import modules.shared as shared -from modules import sd_samplers, deepbooru, sd_hijack +from modules import sd_samplers, deepbooru, sd_hijack, images from modules.api.models import * from modules.processing import StableDiffusionProcessingTxt2Img, StableDiffusionProcessingImg2Img, process_images -from modules.extras import run_extras, run_pnginfo +from modules.extras import run_extras from modules.textual_inversion.textual_inversion import create_embedding, train_embedding from modules.textual_inversion.preprocess import preprocess from modules.hypernetworks.hypernetwork import create_hypernetwork, train_hypernetwork @@ -233,9 +233,17 @@ class Api: if(not req.image.strip()): return PNGInfoResponse(info="") - result = run_pnginfo(decode_base64_to_image(req.image.strip())) + image = decode_base64_to_image(req.image.strip()) + if image is None: + return PNGInfoResponse(info="") + + geninfo, items = images.read_info_from_image(image) + if geninfo is None: + geninfo = "" + + items = {**{'parameters': geninfo}, **items} - return PNGInfoResponse(info=result[1]) + return PNGInfoResponse(info=geninfo, items=items) def progressapi(self, req: ProgressRequest = Depends()): # copy from check_progress_call of ui.py diff --git a/modules/api/models.py b/modules/api/models.py index 4a632c68..d8198a27 100644 --- a/modules/api/models.py +++ b/modules/api/models.py @@ -157,7 +157,8 @@ class PNGInfoRequest(BaseModel): image: str = Field(title="Image", description="The base64 encoded PNG image") class PNGInfoResponse(BaseModel): - info: str = Field(title="Image info", description="A string with all the info the image had") + info: str = Field(title="Image info", description="A string with the parameters used to generate the image") + items: dict = Field(title="Items", description="An object containing all the info the image had") class ProgressRequest(BaseModel): skip_current_image: bool = Field(default=False, title="Skip current image", description="Skip current image serialization") @@ -258,4 +259,4 @@ class EmbeddingItem(BaseModel): class EmbeddingsResponse(BaseModel): loaded: Dict[str, EmbeddingItem] = Field(title="Loaded", description="Embeddings loaded for the current model") - skipped: Dict[str, EmbeddingItem] = Field(title="Skipped", description="Embeddings skipped for the current model (likely due to architecture incompatibility)")
\ No newline at end of file + skipped: Dict[str, EmbeddingItem] = Field(title="Skipped", description="Embeddings skipped for the current model (likely due to architecture incompatibility)") |