From 4d25d702a1afba74b33cbbff756abd7af8930128 Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Thu, 13 Jul 2023 15:20:20 +1000 Subject: [PATCH] feat(api): `app/config` route returns available infill methods --- invokeai/app/api/routers/app_info.py | 31 +++++++++++++++++----------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/invokeai/app/api/routers/app_info.py b/invokeai/app/api/routers/app_info.py index 08c9a69f37..8e2955c9aa 100644 --- a/invokeai/app/api/routers/app_info.py +++ b/invokeai/app/api/routers/app_info.py @@ -1,29 +1,36 @@ from fastapi.routing import APIRouter -from pydantic import BaseModel -from invokeai.backend.image_util.patchmatch import PatchMatch +from pydantic import BaseModel, Field +from invokeai.backend.image_util.patchmatch import PatchMatch from invokeai.version import __version__ -app_router = APIRouter(prefix="/v1/app", tags=['app']) +app_router = APIRouter(prefix="/v1/app", tags=["app"]) class AppVersion(BaseModel): """App Version Response""" - version: str + + version: str = Field(description="App version") + class AppConfig(BaseModel): """App Config Response""" - patchmatch_enabled: bool + + infill_methods: list[str] = Field(description="List of available infill methods") -@app_router.get('/version', operation_id="app_version", - status_code=200, - response_model=AppVersion) +@app_router.get( + "/version", operation_id="app_version", status_code=200, response_model=AppVersion +) async def get_version() -> AppVersion: return AppVersion(version=__version__) -@app_router.get('/config', operation_id="get_config", - status_code=200, - response_model=AppConfig) + +@app_router.get( + "/config", operation_id="get_config", status_code=200, response_model=AppConfig +) async def get_config() -> AppConfig: - return AppConfig(patchmatch_enabled=PatchMatch.patchmatch_available()) + infill_methods = ['tile'] + if PatchMatch.patchmatch_available(): + infill_methods.append('patchmatch') + return AppConfig(infill_methods=infill_methods)