From a088a2dde2ca4a0db9193ac1c01ac77c8b31a70d Mon Sep 17 00:00:00 2001 From: Acly Date: Thu, 23 Oct 2025 14:41:24 +0200 Subject: [PATCH] API: support pagination for /api/etn/model_info --- api.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/api.py b/api.py index 5c3accd..35a413c 100644 --- a/api.py +++ b/api.py @@ -205,17 +205,22 @@ def inspect_diffusion_model(filename: str, model_type: str, is_checkpoint: bool) return inspect_safetensors(filename, model_type, is_checkpoint) -def inspect_models(model_type: str): +def inspect_models(model_type: str, params: dict[str, str]): try: try: files = folder_paths.get_filename_list(model_type) except KeyError: return web.json_response({"error": f"Model folder not found: {model_type}"}) + limit = int(params.get("limit", "1000")) + offset = int(params.get("offset", "0")) + files_range = files[offset : offset + limit] is_checkpoint = model_type == "checkpoints" info = { filename: inspect_diffusion_model(filename, model_type, is_checkpoint) - for filename in files + for filename in files_range } + if "limit" in params: + info["_meta"] = dict(offset=offset, count=len(files_range), total=len(files)) return web.json_response(info) except Exception as e: traceback.print_exc() @@ -261,7 +266,7 @@ if _server is not None: error = has_invalid_folder_name(folder_name) if error is not None: return error - return inspect_models(folder_name) + return inspect_models(folder_name, request.rel_url.query) @_server.routes.get("/api/etn/model_info") async def api_model_info(request):