API: support pagination for /api/etn/model_info

This commit is contained in:
Acly
2025-10-23 14:41:24 +02:00
parent fbf99f2a08
commit a088a2dde2
+8 -3
View File
@@ -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):