From 9e8864e45393b47a57ee143d928d1261779c8191 Mon Sep 17 00:00:00 2001 From: Vito Sansevero Date: Sun, 8 Feb 2026 08:46:24 -0800 Subject: [PATCH] fix: resolve broken imports and argument mismatch in API handlers - Move utils imports to module-level with try/except for relative (ComfyUI) and absolute (test runner) import contexts in prompts.py. Fixes 500 errors on rating update, prompt save, and prompt edit. - Add missing None for rating parameter in image scan's save_prompt call, which was passing the notes string as rating causing a type comparison error during image scanning. --- py/api/admin.py | 1 + py/api/prompts.py | 33 +++++++++++++++++++-------------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/py/api/admin.py b/py/api/admin.py index f96d9c3..2e0db4e 100644 --- a/py/api/admin.py +++ b/py/api/admin.py @@ -1065,6 +1065,7 @@ class AdminRoutesMixin: prompt_text.strip(), "scanned", ["auto-scanned"], + None, f"Auto-scanned from {os.path.basename(png_file)}", prompt_hash, ) diff --git a/py/api/prompts.py b/py/api/prompts.py index ed7b337..4157e6d 100644 --- a/py/api/prompts.py +++ b/py/api/prompts.py @@ -5,6 +5,25 @@ import json from aiohttp import web +try: + from ...utils.validators import ( + validate_prompt_text, + validate_rating, + validate_tags, + validate_category, + sanitize_input, + ) + from ...utils.hashing import generate_prompt_hash +except ImportError: + from utils.validators import ( + validate_prompt_text, + validate_rating, + validate_tags, + validate_category, + sanitize_input, + ) + from utils.hashing import generate_prompt_hash + class PromptRoutesMixin: """Mixin providing prompt-related API endpoints.""" @@ -491,14 +510,6 @@ class PromptRoutesMixin: async def save_prompt(self, request): """Save a new prompt with metadata and duplicate detection.""" try: - from utils.validators import ( - validate_prompt_text, - validate_rating, - validate_tags, - validate_category, - sanitize_input, - ) - data = await request.json() text = data.get("text", "").strip() @@ -524,8 +535,6 @@ class PromptRoutesMixin: text = sanitize_input(text) - from utils.hashing import generate_prompt_hash - prompt_hash = generate_prompt_hash(text) existing = await self._run_in_executor( @@ -608,8 +617,6 @@ class PromptRoutesMixin: async def update_prompt(self, request): """Update prompt text.""" try: - from utils.validators import validate_prompt_text, sanitize_input - prompt_id = int(request.match_info["prompt_id"]) data = await request.json() new_text = data.get("text", "").strip() @@ -654,8 +661,6 @@ class PromptRoutesMixin: async def update_prompt_rating(self, request): """Update prompt rating.""" try: - from utils.validators import validate_rating - prompt_id = int(request.match_info["prompt_id"]) data = await request.json() rating = data.get("rating")