Extract route config nodes
This commit is contained in:
@@ -1778,6 +1778,76 @@ def smoke_node_camera_registration() -> None:
|
||||
_expect(json.loads(qwen_info).get("qwen_prompt", "").startswith("<sks>"), "Qwen info JSON lost original prompt")
|
||||
|
||||
|
||||
def smoke_node_route_config_registration() -> None:
|
||||
required_nodes = [
|
||||
"SxCPCategoryPreset",
|
||||
"SxCPLocationPool",
|
||||
"SxCPCompositionPool",
|
||||
"SxCPLocationTheme",
|
||||
"SxCPCastControl",
|
||||
"SxCPCastBias",
|
||||
]
|
||||
for node_name in required_nodes:
|
||||
_expect(node_name in sxcp_nodes.NODE_CLASS_MAPPINGS, f"{node_name} missing from node registry")
|
||||
_expect(node_name in sxcp_nodes.NODE_DISPLAY_NAME_MAPPINGS, f"{node_name} missing from display registry")
|
||||
|
||||
category_node = sxcp_nodes.NODE_CLASS_MAPPINGS["SxCPCategoryPreset"]
|
||||
category_inputs = category_node.INPUT_TYPES().get("required") or {}
|
||||
_expect("preset" in category_inputs, "Category Preset lost preset input")
|
||||
_expect("tooltip" in category_inputs["preset"][1], "Category Preset tooltip injection missing")
|
||||
category_config, category, subcategory = category_node().build("auto_weighted", "random")
|
||||
parsed_category = json.loads(category_config)
|
||||
_expect(category == parsed_category.get("category") == "auto_weighted", "Category Preset output category mismatch")
|
||||
_expect(subcategory == "random", "Category Preset output subcategory mismatch")
|
||||
|
||||
location_config, location_summary = sxcp_nodes.NODE_CLASS_MAPPINGS["SxCPLocationPool"]().build(
|
||||
True,
|
||||
"replace",
|
||||
"custom_only",
|
||||
"classical library stacks with brass lamps",
|
||||
)
|
||||
parsed_location = json.loads(location_config)
|
||||
_expect(parsed_location.get("scene_entries"), "Location Pool did not keep custom location")
|
||||
_expect("locations=1" in location_summary, "Location Pool summary lost custom count")
|
||||
|
||||
composition_config, composition_summary = sxcp_nodes.NODE_CLASS_MAPPINGS["SxCPCompositionPool"]().build(
|
||||
True,
|
||||
"replace",
|
||||
"no_outfit_check",
|
||||
"long aisle composition with shelves repeating behind the subject",
|
||||
)
|
||||
parsed_composition = json.loads(composition_config)
|
||||
_expect(parsed_composition.get("composition_entries"), "Composition Pool did not keep composition entries")
|
||||
_expect("compositions=" in composition_summary, "Composition Pool summary lost composition count")
|
||||
|
||||
theme_location, theme_composition, theme_summary = sxcp_nodes.NODE_CLASS_MAPPINGS["SxCPLocationTheme"]().build(
|
||||
True,
|
||||
"replace",
|
||||
"semi_public_affair",
|
||||
"",
|
||||
"",
|
||||
)
|
||||
_expect(json.loads(theme_location).get("scene_entries"), "Location Theme did not output locations")
|
||||
_expect(json.loads(theme_composition).get("composition_entries"), "Location Theme did not output compositions")
|
||||
_expect("semi_public_affair" in theme_summary, "Location Theme summary lost theme name")
|
||||
|
||||
cast_config, women_count, men_count, cast_summary = sxcp_nodes.NODE_CLASS_MAPPINGS["SxCPCastControl"]().build(
|
||||
"mixed_couple",
|
||||
1,
|
||||
1,
|
||||
)
|
||||
parsed_cast = json.loads(cast_config)
|
||||
_expect((women_count, men_count) == (parsed_cast.get("women_count"), parsed_cast.get("men_count")), "Cast Control count outputs mismatch")
|
||||
_expect("1 women, 1 men" in cast_summary, "Cast Control summary changed unexpectedly")
|
||||
|
||||
cast_bias = sxcp_nodes.NODE_CLASS_MAPPINGS["SxCPCastBias"]()
|
||||
bias_a = cast_bias.build(123, 2, "0.7,0.3", 1, "0.4,0.6", 0, "force_one_woman")
|
||||
bias_b = cast_bias.build(123, 2, "0.7,0.3", 1, "0.4,0.6", 0, "force_one_woman")
|
||||
_expect(bias_a == bias_b, "Cast Bias should be deterministic for fixed seed and row")
|
||||
_expect(bias_a[1] + bias_a[2] >= 1, "Cast Bias empty behavior allowed empty cast")
|
||||
_expect("weighted cast:" in bias_a[3], "Cast Bias summary lost weighted cast label")
|
||||
|
||||
|
||||
SMOKE_CASES: list[tuple[str, Callable[[], None]]] = [
|
||||
("builtin_single_woman", smoke_builtin_single),
|
||||
("camera_scene_single", smoke_camera_scene_single),
|
||||
@@ -1803,6 +1873,7 @@ SMOKE_CASES: list[tuple[str, Callable[[], None]]] = [
|
||||
("formatter_metadata_fixtures", smoke_formatter_metadata_fixtures),
|
||||
("node_utility_registration", smoke_node_utility_registration),
|
||||
("node_camera_registration", smoke_node_camera_registration),
|
||||
("node_route_config_registration", smoke_node_route_config_registration),
|
||||
]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user