Add Krea2 variant evidence node

This commit is contained in:
2026-06-29 03:27:32 +02:00
parent d384cb8a46
commit fae5423513
6 changed files with 95 additions and 3 deletions
+26 -1
View File
@@ -6807,6 +6807,7 @@ def smoke_krea2_pose_variant_catalog_policy() -> None:
def smoke_krea2_eval_log_policy() -> None:
log = krea2_eval_log.load_eval_log()
_expect(log.get("version") == 1, "Krea2 eval log version changed unexpectedly")
_expect("external ComfyUI artifacts" in str(log.get("artifact_policy") or ""), "Krea2 eval log should document external artifact policy")
entries = krea2_eval_log.entries()
_expect(entries, "Krea2 eval log has no entries")
catalog_keys = set(krea2_pose_variant_catalog.variant_keys())
@@ -6833,7 +6834,7 @@ def smoke_krea2_eval_log_policy() -> None:
image_path = str(entry.get(image_key) or "")
if image_path:
_expect(Path(image_path).is_absolute(), f"{entry_id}.{image_key} should be absolute when present")
_expect(Path(image_path).is_file(), f"{entry_id}.{image_key} is missing: {image_path}")
_expect(Path(image_path).suffix.lower() == ".png", f"{entry_id}.{image_key} should reference a PNG artifact")
boobjob_entries = krea2_eval_log.entries_for_variant("pov_boobjob_upright_cleavage", result="accepted")
_expect(boobjob_entries and boobjob_entries[0].get("seed") == 7302, "Boobjob accepted eval evidence changed")
mutation = krea2_eval_log.entries_for_variant("pov_handjob_upright_centered")[0]
@@ -8870,6 +8871,7 @@ def smoke_node_hardcore_position_registration() -> None:
"SxCPHardcorePositionPool",
"SxCPHardcoreActionFilter",
"SxCPKrea2PoseVariant",
"SxCPKrea2VariantEvidence",
]
for node_name in required_nodes:
_expect(node_name in sxcp_nodes.NODE_CLASS_MAPPINGS, f"{node_name} missing from node registry")
@@ -8931,6 +8933,29 @@ def smoke_node_hardcore_position_registration() -> None:
_expect("torso bent forward" in avoid_cues, "Krea2 Pose Variant lost avoid cues output")
_expect("variant=pov_boobjob_upright_cleavage" in variant_summary, "Krea2 Pose Variant summary lost key")
evidence_node = sxcp_nodes.NODE_CLASS_MAPPINGS["SxCPKrea2VariantEvidence"]
evidence_inputs = evidence_node.INPUT_TYPES().get("required") or {}
_expect("variant_key" in evidence_inputs, "Krea2 Variant Evidence lost variant selector")
_expect("tooltip" in evidence_inputs["variant_key"][1], "Krea2 Variant Evidence tooltip injection missing")
(
evidence_summary,
baseline_image,
candidate_image,
evidence_json,
evidence_seed,
evidence_decision,
) = evidence_node().build(
"pov_boobjob_upright_cleavage",
"accepted",
"",
)
parsed_evidence = json.loads(evidence_json)
_expect(evidence_seed == 7302, "Krea2 Variant Evidence returned wrong fixed seed")
_expect(evidence_decision == "generator_patch", "Krea2 Variant Evidence returned wrong decision")
_expect("boobjob-7302" in evidence_summary, "Krea2 Variant Evidence summary lost entry id")
_expect(baseline_image.endswith(".png") and candidate_image.endswith(".png"), "Krea2 Variant Evidence lost image paths")
_expect(parsed_evidence.get("variant_key") == "pov_boobjob_upright_cleavage", "Krea2 Variant Evidence returned wrong JSON")
def smoke_node_formatter_registration() -> None:
required_nodes = [