From f0dc10a2f5b73d781b19a08bf7e739fe0bb86809 Mon Sep 17 00:00:00 2001 From: harisreedhar Date: Fri, 13 Feb 2026 18:15:41 +0530 Subject: [PATCH] add capabilities endpoint --- facefusion/apis/core.py | 2 ++ facefusion/apis/endpoints/capabilities.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 facefusion/apis/endpoints/capabilities.py diff --git a/facefusion/apis/core.py b/facefusion/apis/core.py index 96bc12ed..c4d1d5a5 100644 --- a/facefusion/apis/core.py +++ b/facefusion/apis/core.py @@ -4,6 +4,7 @@ from starlette.middleware.cors import CORSMiddleware from starlette.routing import Route, WebSocketRoute from facefusion.apis.endpoints.assets import delete_assets, get_asset, get_assets, upload_asset +from facefusion.apis.endpoints.capabilities import get_capabilities from facefusion.apis.endpoints.metrics import get_metrics, websocket_metrics from facefusion.apis.endpoints.ping import websocket_ping from facefusion.apis.endpoints.session import create_session, create_session_guard, destroy_session, get_session, refresh_session @@ -24,6 +25,7 @@ def create_api() -> Starlette: Route('/assets', upload_asset, methods = [ 'POST' ], middleware = [ session_guard ]), Route('/assets/{asset_id}', get_asset, methods = [ 'GET' ], middleware = [ session_guard ]), Route('/assets', delete_assets, methods = [ 'DELETE' ], middleware = [ session_guard ]), + Route('/capabilities', get_capabilities, methods = [ 'GET' ]), Route('/metrics', get_metrics, methods = [ 'GET' ], middleware = [ session_guard ]), WebSocketRoute('/metrics', websocket_metrics, middleware = [ session_guard ]), WebSocketRoute('/ping', websocket_ping, middleware = [ session_guard ]) diff --git a/facefusion/apis/endpoints/capabilities.py b/facefusion/apis/endpoints/capabilities.py new file mode 100644 index 00000000..13487b5e --- /dev/null +++ b/facefusion/apis/endpoints/capabilities.py @@ -0,0 +1,18 @@ +from starlette.requests import Request +from starlette.responses import JSONResponse +from starlette.status import HTTP_200_OK + +import facefusion.choices + + +async def get_capabilities(request : Request) -> JSONResponse: + capabilities =\ + { + 'formats': + { + 'audio': facefusion.choices.audio_formats, + 'image': facefusion.choices.image_formats, + 'video': facefusion.choices.video_formats + } + } + return JSONResponse(capabilities, status_code = HTTP_200_OK)