Expose seed control summary
This commit is contained in:
+39
-22
@@ -76,8 +76,8 @@ class SxCPSeedControl:
|
||||
required[f"{axis}_seed"] = ("INT", seed_spec)
|
||||
return {"required": required}
|
||||
|
||||
RETURN_TYPES = (SXCP_SEED_CONFIG,)
|
||||
RETURN_NAMES = ("seed_config",)
|
||||
RETURN_TYPES = (SXCP_SEED_CONFIG, "STRING")
|
||||
RETURN_NAMES = ("seed_config", "summary")
|
||||
FUNCTION = "build"
|
||||
CATEGORY = "prompt_builder"
|
||||
|
||||
@@ -88,6 +88,21 @@ class SxCPSeedControl:
|
||||
return random.random()
|
||||
return tuple(args), tuple(sorted(kwargs.items()))
|
||||
|
||||
@classmethod
|
||||
def _summary(cls, config_json):
|
||||
try:
|
||||
config = json.loads(config_json)
|
||||
except (TypeError, ValueError, json.JSONDecodeError):
|
||||
return "invalid seed config"
|
||||
parts = []
|
||||
for axis in cls.SEED_AXES:
|
||||
try:
|
||||
value = int(config.get(f"{axis}_seed", -1))
|
||||
except (TypeError, ValueError):
|
||||
value = -1
|
||||
parts.append(f"{axis}={'follow_main' if value < 0 else value}")
|
||||
return "resolved seeds: " + "; ".join(parts)
|
||||
|
||||
def build(
|
||||
self,
|
||||
category_seed_mode,
|
||||
@@ -109,27 +124,29 @@ class SxCPSeedControl:
|
||||
composition_seed_mode,
|
||||
composition_seed,
|
||||
):
|
||||
config = build_seed_config_json(
|
||||
category_seed=category_seed,
|
||||
subcategory_seed=subcategory_seed,
|
||||
content_seed=content_seed,
|
||||
person_seed=person_seed,
|
||||
scene_seed=scene_seed,
|
||||
pose_seed=pose_seed,
|
||||
role_seed=role_seed,
|
||||
expression_seed=expression_seed,
|
||||
composition_seed=composition_seed,
|
||||
category_seed_mode=category_seed_mode,
|
||||
subcategory_seed_mode=subcategory_seed_mode,
|
||||
content_seed_mode=content_seed_mode,
|
||||
person_seed_mode=person_seed_mode,
|
||||
scene_seed_mode=scene_seed_mode,
|
||||
pose_seed_mode=pose_seed_mode,
|
||||
role_seed_mode=role_seed_mode,
|
||||
expression_seed_mode=expression_seed_mode,
|
||||
composition_seed_mode=composition_seed_mode,
|
||||
)
|
||||
return (
|
||||
build_seed_config_json(
|
||||
category_seed=category_seed,
|
||||
subcategory_seed=subcategory_seed,
|
||||
content_seed=content_seed,
|
||||
person_seed=person_seed,
|
||||
scene_seed=scene_seed,
|
||||
pose_seed=pose_seed,
|
||||
role_seed=role_seed,
|
||||
expression_seed=expression_seed,
|
||||
composition_seed=composition_seed,
|
||||
category_seed_mode=category_seed_mode,
|
||||
subcategory_seed_mode=subcategory_seed_mode,
|
||||
content_seed_mode=content_seed_mode,
|
||||
person_seed_mode=person_seed_mode,
|
||||
scene_seed_mode=scene_seed_mode,
|
||||
pose_seed_mode=pose_seed_mode,
|
||||
role_seed_mode=role_seed_mode,
|
||||
expression_seed_mode=expression_seed_mode,
|
||||
composition_seed_mode=composition_seed_mode,
|
||||
),
|
||||
config,
|
||||
self._summary(config),
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user