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.
This commit is contained in:
Vito Sansevero
2026-02-08 08:48:17 -08:00
parent 0e527fd80a
commit 9e8864e453
2 changed files with 20 additions and 14 deletions
+1
View File
@@ -1065,6 +1065,7 @@ class AdminRoutesMixin:
prompt_text.strip(),
"scanned",
["auto-scanned"],
None,
f"Auto-scanned from {os.path.basename(png_file)}",
prompt_hash,
)
+19 -14
View File
@@ -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")