Add prompt route simulation checks

This commit is contained in:
2026-06-27 18:34:42 +02:00
parent 29ca3ba369
commit 5ca5f1b858
4 changed files with 658 additions and 3 deletions
+22
View File
@@ -97,6 +97,7 @@ import sdxl_tag_routes # noqa: E402
import seed_config # noqa: E402
import krea_pov # noqa: E402
import subject_context # noqa: E402
from tools import prompt_route_simulation # noqa: E402
Trigger = "sxcppnl7"
@@ -6378,6 +6379,7 @@ def smoke_pov_outercourse_position_routes() -> None:
hard_row = pair.get("hardcore_row") or {}
_expect(hard_row.get("action_family") == "outercourse", f"{name} action_family should be outercourse")
_expect(hard_row.get("position_family") == "outercourse", f"{name} position_family should be outercourse")
_expect(hard_row.get("position_key") == position_key, f"{name} selected position should be primary position_key")
_expect(position_key in (hard_row.get("position_keys") or []), f"{name} lost position key {position_key!r}")
role_graph = _expect_text(f"{name}.source_role_graph", hard_row.get("source_role_graph"), 40).lower()
for term in role_terms:
@@ -7762,6 +7764,25 @@ def smoke_seed_config_policy() -> None:
_expect(pose_changed, "pose reroll should change pose/action metadata while cast and scene stay locked")
def smoke_prompt_route_simulation_policy() -> None:
report = prompt_route_simulation.run_simulation(seed=3901, include_prompts=False)
summary = report.get("summary") or {}
_expect(summary.get("cases") == 5, "Prompt route simulation case count changed unexpectedly")
_expect(summary.get("axis_checks") == 1, "Prompt route simulation lost axis check coverage")
_expect(summary.get("issues") == 0, f"Prompt route simulation reported issues: {report.get('issues')}")
cases = {case.get("name"): case for case in report.get("cases") or []}
pov_hard = cases.get("insta_pair.pov_outercourse.hardcore") or {}
pov_summary = pov_hard.get("summary") or {}
_expect(
pov_summary.get("position_key") == "penis_licking",
"Prompt route simulation should catch selected outercourse position as primary position_key",
)
_expect(
"penis_licking" in (pov_summary.get("position_keys") or []),
"Prompt route simulation lost selected outercourse key from position_keys",
)
def smoke_node_camera_registration() -> None:
required_nodes = [
"SxCPCameraControl",
@@ -8612,6 +8633,7 @@ SMOKE_CASES: list[tuple[str, Callable[[], None]]] = [
("node_utility_registration", smoke_node_utility_registration),
("server_route_payload_policy", smoke_server_route_payload_policy),
("seed_config_policy", smoke_seed_config_policy),
("prompt_route_simulation_policy", smoke_prompt_route_simulation_policy),
("node_camera_registration", smoke_node_camera_registration),
("node_route_config_registration", smoke_node_route_config_registration),
("node_character_registration", smoke_node_character_registration),