Files
ComfyUI-Ethanfel-Prompt-Bui…/server_routes.py

89 lines
2.9 KiB
Python

from __future__ import annotations
from typing import Any
try:
from .loop_nodes import (
accumulator_delete_entries,
accumulator_list_entries,
accumulator_move_entry,
accumulator_retake_entry,
accumulator_save_entries,
)
from .prompt_builder import save_character_profile_payload
except ImportError: # Allows local smoke tests from the repository root.
from loop_nodes import (
accumulator_delete_entries,
accumulator_list_entries,
accumulator_move_entry,
accumulator_retake_entry,
accumulator_save_entries,
)
from prompt_builder import save_character_profile_payload
def _payload(payload: Any) -> dict[str, Any]:
return payload if isinstance(payload, dict) else {}
def profile_save_cached_payload(payload: Any) -> dict[str, Any]:
data = _payload(payload)
return save_character_profile_payload(
profile_name=str(data.get("profile_name") or ""),
profile_json=data.get("profile_json") or "",
)
def accumulator_list_payload(payload: Any) -> dict[str, Any]:
data = _payload(payload)
return accumulator_list_entries(
str(data.get("store_key") or ""),
preview_limit=int(data.get("preview_limit") or 0),
)
def accumulator_delete_payload(payload: Any) -> dict[str, Any]:
data = _payload(payload)
return accumulator_delete_entries(
store_key=str(data.get("store_key") or ""),
preview_key=str(data.get("preview_key") or ""),
entry_id=str(data.get("entry_id") or ""),
index=int(data.get("index") or 0),
clear=bool(data.get("clear")),
preview_limit=int(data.get("preview_limit") or 0),
)
def accumulator_save_payload(payload: Any) -> dict[str, Any]:
data = _payload(payload)
return accumulator_save_entries(
store_key=str(data.get("store_key") or ""),
save_path=str(data.get("save_path") or "sxcp_accumulator"),
filename_prefix=str(data.get("filename_prefix") or "sxcp_accum"),
clear_after_save=bool(data.get("clear_after_save")),
preview_limit=int(data.get("preview_limit") or 0),
)
def accumulator_move_payload(payload: Any) -> dict[str, Any]:
data = _payload(payload)
return accumulator_move_entry(
store_key=str(data.get("store_key") or ""),
preview_key=str(data.get("preview_key") or ""),
entry_id=str(data.get("entry_id") or ""),
index=int(data.get("index") or 0),
direction=str(data.get("direction") or "up"),
target_index=int(data.get("target_index") or 0),
preview_limit=int(data.get("preview_limit") or 0),
)
def accumulator_retake_payload(payload: Any) -> dict[str, Any]:
data = _payload(payload)
return accumulator_retake_entry(
store_key=str(data.get("store_key") or ""),
preview_key=str(data.get("preview_key") or ""),
entry_id=str(data.get("entry_id") or ""),
index=int(data.get("index") or 0),
)