Centralize formatter route metadata

This commit is contained in:
2026-06-27 02:24:30 +02:00
parent 7d112c0f98
commit c0c2fb2b40
8 changed files with 115 additions and 29 deletions
+6 -13
View File
@@ -5,15 +5,13 @@ from typing import Any
try:
from . import formatter_input as input_policy
from . import category_template_metadata as template_metadata_policy
from . import route_metadata as route_metadata_policy
from . import sdxl_presets as sdxl_policy
from .hardcore_action_metadata import normalize_hardcore_action_family
from .prompt_hygiene import sanitize_negative_text, sanitize_tag_prompt
except ImportError: # Allows local smoke tests with `python -c`.
import formatter_input as input_policy
import category_template_metadata as template_metadata_policy
import route_metadata as route_metadata_policy
import sdxl_presets as sdxl_policy
from hardcore_action_metadata import normalize_hardcore_action_family
from prompt_hygiene import sanitize_negative_text, sanitize_tag_prompt
@@ -121,18 +119,13 @@ def _add_one(tags: list[str], seen: set[str], tag: str) -> None:
def _metadata_family_tags(row: dict[str, Any]) -> list[str]:
tags: list[str] = []
action_family = normalize_hardcore_action_family(row.get("action_family"))
action_family = route_metadata_policy.row_action_family(row)
tags.extend(SDXL_ACTION_FAMILY_TAGS.get(action_family, ()))
position_family = _clean(row.get("position_family")).lower()
position_family = route_metadata_policy.row_position_family(row)
tags.extend(SDXL_POSITION_FAMILY_TAGS.get(position_family, ()))
position_keys = row.get("position_keys")
if isinstance(position_keys, list):
keys = position_keys
else:
keys = [row.get("position_key")]
for key in keys:
for key in route_metadata_policy.row_position_keys(row, include_unknown=True):
key_text = _clean(key)
if key_text:
tags.append(key_text.replace("_", " "))
@@ -144,7 +137,7 @@ def _formatter_hint_tags(*rows: dict[str, Any]) -> list[str]:
for row in rows:
if not isinstance(row, dict):
continue
for hint in template_metadata_policy.formatter_hints_for_route(row, "sdxl"):
for hint in route_metadata_policy.row_formatter_hints(row, "sdxl"):
hint = _clean(hint).strip(" ,.")
if hint and hint not in tags:
tags.append(hint)