feat(models): add bulk model deletion controls

This commit is contained in:
Ethanfel
2026-07-29 20:00:23 +02:00
parent 228542c71a
commit 54f9a3ae29
5 changed files with 259 additions and 6 deletions
+26
View File
@@ -112,6 +112,32 @@ async def get_model_stats(request):
return web.json_response({"error": "internal error"}, status=500)
@routes.post("/nodes-stats/models/delete")
async def delete_models(request):
"""Delete one or more currently installed model files.
The mapper validates each supplied (type, name) pair against ComfyUI's
current model folders before unlinking it, rather than trusting a path sent
by the browser.
"""
try:
data = await request.json()
models = data.get("models")
if not isinstance(models, list) or not models:
return web.json_response({"error": "models must be a non-empty list"}, status=400)
if len(models) > 500:
return web.json_response({"error": "too many models"}, status=400)
results = await asyncio.get_event_loop().run_in_executor(
None, model_mapper.delete_models, models
)
deleted = [r for r in results if r.get("status") == "deleted"]
failed = [r for r in results if r.get("status") != "deleted"]
return web.json_response({"deleted": deleted, "failed": failed})
except Exception:
logger.error("nodes-stats: error deleting models", exc_info=True)
return web.json_response({"error": "internal error"}, status=500)
@routes.post("/nodes-stats/reset")
async def reset_stats(request):
try: