Preserve legacy seed control ordering

This commit is contained in:
2026-07-01 16:20:20 +02:00
parent 1d23ce32aa
commit 57c73279ef
4 changed files with 37 additions and 9 deletions
+3 -3
View File
@@ -65,13 +65,13 @@ class SxCPSeedControl:
"category",
"subcategory",
"content",
"clothing",
"person",
"scene",
"pose",
"role",
"expression",
"composition",
"clothing",
)
@classmethod
@@ -118,8 +118,6 @@ class SxCPSeedControl:
subcategory_seed,
content_seed_mode,
content_seed,
clothing_seed_mode,
clothing_seed,
person_seed_mode,
person_seed,
scene_seed_mode,
@@ -132,6 +130,8 @@ class SxCPSeedControl:
expression_seed,
composition_seed_mode,
composition_seed,
clothing_seed_mode="auto",
clothing_seed=-1,
):
config = build_seed_config_json(
category_seed=category_seed,
+2 -2
View File
@@ -875,7 +875,6 @@ def build_seed_config_json(
category_seed: int = -1,
subcategory_seed: int = -1,
content_seed: int = -1,
clothing_seed: int = -1,
person_seed: int = -1,
scene_seed: int = -1,
pose_seed: int = -1,
@@ -885,13 +884,14 @@ def build_seed_config_json(
category_seed_mode: str = "auto",
subcategory_seed_mode: str = "auto",
content_seed_mode: str = "auto",
clothing_seed_mode: str = "auto",
person_seed_mode: str = "auto",
scene_seed_mode: str = "auto",
pose_seed_mode: str = "auto",
role_seed_mode: str = "auto",
expression_seed_mode: str = "auto",
composition_seed_mode: str = "auto",
clothing_seed: int = -1,
clothing_seed_mode: str = "auto",
) -> str:
return seed_policy.build_seed_config_json(
category_seed=category_seed,
+2 -2
View File
@@ -109,7 +109,6 @@ def build_seed_config_json(
category_seed: int = -1,
subcategory_seed: int = -1,
content_seed: int = -1,
clothing_seed: int = -1,
person_seed: int = -1,
scene_seed: int = -1,
pose_seed: int = -1,
@@ -119,13 +118,14 @@ def build_seed_config_json(
category_seed_mode: str = "auto",
subcategory_seed_mode: str = "auto",
content_seed_mode: str = "auto",
clothing_seed_mode: str = "auto",
person_seed_mode: str = "auto",
scene_seed_mode: str = "auto",
pose_seed_mode: str = "auto",
role_seed_mode: str = "auto",
expression_seed_mode: str = "auto",
composition_seed_mode: str = "auto",
clothing_seed: int = -1,
clothing_seed_mode: str = "auto",
) -> str:
rng = random.SystemRandom()
+30 -2
View File
@@ -13925,8 +13925,6 @@ def smoke_node_utility_registration() -> None:
-1,
"random",
-1,
"fixed",
222,
"auto",
123,
"auto",
@@ -13939,6 +13937,8 @@ def smoke_node_utility_registration() -> None:
-1,
"fixed",
999,
"fixed",
222,
)
parsed_seed_control = json.loads(seed_control_config)
_expect(parsed_seed_control.get("category_seed") == 0, "Seed Control fixed mode did not clamp negative seed")
@@ -13955,6 +13955,34 @@ def smoke_node_utility_registration() -> None:
f"content={parsed_seed_control['content_seed']}" in seed_control_summary,
"Seed Control summary lost random resolved seed value",
)
legacy_seed_control_config, _legacy_seed_control_summary = seed_control().build(
"fixed",
-1,
"follow_main",
-1,
"random",
-1,
"auto",
123,
"auto",
456,
"fixed",
777,
"follow_main",
888,
"auto",
321,
"fixed",
999,
)
legacy_seed_control = json.loads(legacy_seed_control_config)
_expect(legacy_seed_control.get("clothing_seed") == -1, "Legacy Seed Control call should leave clothing seed unset")
_expect(legacy_seed_control.get("person_seed") == 123, "Legacy Seed Control call shifted person seed")
_expect(legacy_seed_control.get("scene_seed") == 456, "Legacy Seed Control call shifted scene seed")
_expect(legacy_seed_control.get("pose_seed") == 777, "Legacy Seed Control call shifted pose seed")
_expect(legacy_seed_control.get("role_seed") == -1, "Legacy Seed Control call shifted role seed")
_expect(legacy_seed_control.get("expression_seed") == 321, "Legacy Seed Control call shifted expression seed")
_expect(legacy_seed_control.get("composition_seed") == 999, "Legacy Seed Control call shifted composition seed")
seed_locker = sxcp_nodes.NODE_CLASS_MAPPINGS["SxCPSeedLocker"]
locker_inputs = seed_locker.INPUT_TYPES().get("required") or {}