Synchronize pair cast metadata

This commit is contained in:
2026-06-27 12:48:12 +02:00
parent 2a5e565ce7
commit e5e194c68b
4 changed files with 40 additions and 4 deletions
+25
View File
@@ -142,11 +142,36 @@ def synchronize_pair_side_metadata(pair: dict[str, Any]) -> dict[str, Any]:
return pair
def synchronize_pair_cast_metadata(pair: dict[str, Any]) -> dict[str, Any]:
descriptors = pair.get("shared_cast_descriptors")
if isinstance(descriptors, list):
descriptor_list = [str(item).strip() for item in descriptors if str(item or "").strip()]
descriptor_text = "; ".join(descriptor_list)
else:
descriptor_text = str(descriptors or "").strip()
descriptor_list = [descriptor_text] if descriptor_text else []
if not descriptor_text:
return pair
options = pair.get("options") if isinstance(pair.get("options"), dict) else {}
row_keys = ["hardcore_row"]
if options.get("softcore_cast") == "same_as_hardcore":
row_keys.append("softcore_row")
for row_key in row_keys:
row = pair.get(row_key)
if not isinstance(row, dict):
continue
row["cast_descriptor_text"] = descriptor_text
row["cast_descriptors"] = list(descriptor_list)
return pair
def normalize_pair_metadata(pair: dict[str, Any], *, active_trigger: str = "") -> dict[str, Any]:
trigger = str(active_trigger or "").strip()
triggers = _trigger_tuple(trigger)
synchronize_pair_row_outputs(pair)
synchronize_pair_side_metadata(pair)
synchronize_pair_cast_metadata(pair)
for key in ("softcore_prompt", "hardcore_prompt"):
if key in pair:
pair[key] = sanitize_prompt_text(pair.get(key, ""), triggers=triggers)