Add POV foreground clothing cues

This commit is contained in:
2026-06-28 10:31:01 +02:00
parent d937c219ee
commit 54617e4702
4 changed files with 84 additions and 1 deletions
+21 -1
View File
@@ -6311,6 +6311,20 @@ def smoke_pair_route_policy() -> None:
implied_lower = implied_route.hardcore_clothing_state.lower()
_expect("fabric slipping off" not in implied_lower, "Implied nude clothing should not fall back to generic fabric slipping")
_expect("denim shorts" in implied_lower and "fitted bralette" in implied_lower, "Implied nude clothing should mirror softcore outfit pieces")
pov_clothing_route = pair_clothing.resolve_hardcore_pair_clothing_result(
**{
**clothing_common,
"men_count": 1,
"pov_labels": ["Man A"],
"label_map": {"Man A": {"hardcore_clothing": "open shirt with jeans lowered below the hips"}},
"slot_hardcore_clothing": lambda slot, _rng: str((slot or {}).get("hardcore_clothing") or ""),
}
)
pov_clothing_lower = pov_clothing_route.hardcore_clothing_state.lower()
_expect("pov foreground clothing cue" in pov_clothing_lower, "POV man clothing should become a foreground cue")
_expect("jeans lowered below the hips" in pov_clothing_lower, "POV lower-access clothing lost configured lower garment state")
_expect("man a wears" not in pov_clothing_lower, "POV clothing should not describe the POV man as a visible partner")
_expect(not pov_clothing_route.default_man_hardcore_clothing, "POV man should not also receive default visible-man clothing")
structured_axis_clothing = pair_clothing.resolve_hardcore_pair_clothing_result(
**{
**clothing_common,
@@ -6585,9 +6599,15 @@ def smoke_insta_pair_pov() -> None:
_expect("Man A" in pov_labels, "pair POV labels should include Man A")
hard_row = pair.get("hardcore_row") or {}
_expect("Man A" in (hard_row.get("pov_character_labels") or []), "hard row POV labels should include Man A")
pov_clothing = " ".join(pair.get("pov_hardcore_clothing") or []).lower()
_expect("pov foreground clothing cue" in pov_clothing, "pair POV man should get foreground clothing metadata")
_expect("viewer" in pov_clothing, "POV clothing metadata should be phrased through the viewer")
_expect("man a wears" not in (pair.get("hardcore_clothing_state") or "").lower(), "POV clothing state should not describe Man A as visible")
krea = krea_formatter.format_krea2_prompt("", metadata_json=_json(pair), target="hardcore")
prompt = krea.get("krea_prompt") or ""
_expect("viewer" in prompt.lower(), "POV Krea prompt should mention viewer perspective")
prompt_lower = prompt.lower()
_expect("viewer" in prompt_lower, "POV Krea prompt should mention viewer perspective")
_expect("pov foreground clothing cue" in prompt_lower, "POV Krea prompt lost foreground clothing cue")
def smoke_insta_pair_camera_split() -> None: