Add Krea2 cowgirl candidate
This commit is contained in:
@@ -481,6 +481,44 @@
|
||||
"guide_section": "",
|
||||
"notes": "Atlas shows repeated high-leg folded missionary geometry; needs fixed-seed Krea2 tests before promotion to proven."
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "pov_cowgirl_frontal_straddle_penetration",
|
||||
"family": "cowgirl",
|
||||
"status": "candidate",
|
||||
"atlas_folders": ["5.cowgirl"],
|
||||
"action_family": "penetration",
|
||||
"position_keys": ["cowgirl", "frontal_straddle", "woman_on_top"],
|
||||
"canonical_geometry": "First-person frontal cowgirl view: the viewer reclines below while the woman straddles the viewer facing him, knees open to either side, torso upright above the contact line, and the viewer's thighs, pelvis, or hands anchor the lower foreground.",
|
||||
"prompt_cues": [
|
||||
"POV frontal cowgirl straddle penetration position",
|
||||
"woman straddles the viewer facing him",
|
||||
"her torso stays upright above the viewer",
|
||||
"her knees are open to either side of the viewer's hips",
|
||||
"viewer reclines below with thighs or pelvis in the lower foreground",
|
||||
"viewer hands may hold her thighs or hips without blocking the centered contact line"
|
||||
],
|
||||
"avoid_cues": [
|
||||
"missionary with the woman lying on her back",
|
||||
"reverse cowgirl with the woman facing away",
|
||||
"folded-leg knees-to-chest geometry",
|
||||
"rear-entry or doggy geometry",
|
||||
"cropping away the upright torso and straddling knees"
|
||||
],
|
||||
"reference_images": [
|
||||
"5.cowgirl/100_cowgirl.png",
|
||||
"5.cowgirl/101_cowgirl.png",
|
||||
"5.cowgirl/1_cowgirl.png"
|
||||
],
|
||||
"generator_hook": {
|
||||
"module": "krea_pov_actions.py",
|
||||
"route_terms": ["cowgirl", "frontal cowgirl", "woman-on-top"]
|
||||
},
|
||||
"evidence": {
|
||||
"fixed_seed_tests": [],
|
||||
"guide_section": "",
|
||||
"notes": "Atlas shows repeated frontal woman-on-top straddle geometry; needs fixed-seed Krea2 tests before promotion to proven."
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -179,3 +179,12 @@ high toward her chest, feet or ankles sit close to the camera, and the viewer's
|
||||
hands often hold her calves or ankles while the contact line stays below the
|
||||
raised legs. Treat `pov_missionary_folded_high_leg_penetration` as a candidate
|
||||
until it has fixed-seed Krea2 evidence.
|
||||
|
||||
### Cowgirl / Frontal Straddle Penetration
|
||||
|
||||
The `5.cowgirl` folder repeats a frontal woman-on-top first-person layout: the
|
||||
viewer reclines below, the woman straddles the viewer facing him, her torso
|
||||
stays upright above the contact line, and her knees open to either side of the
|
||||
viewer. Treat `pov_cowgirl_frontal_straddle_penetration` as a candidate until it
|
||||
has fixed-seed Krea2 evidence. Keep this separate from the alt and reverse
|
||||
cowgirl folders, which need their own geometry wording.
|
||||
|
||||
+23
-1
@@ -6788,6 +6788,7 @@ def smoke_krea2_pose_variant_catalog_policy() -> None:
|
||||
"pov_doggy_top_down_rear_entry",
|
||||
"pov_missionary_open_leg_penetration",
|
||||
"pov_missionary_folded_high_leg_penetration",
|
||||
"pov_cowgirl_frontal_straddle_penetration",
|
||||
],
|
||||
f"Krea2 pose-variant penetration filtering changed unexpectedly: {penetration}",
|
||||
)
|
||||
@@ -6883,6 +6884,12 @@ def smoke_krea2_pose_variant_catalog_policy() -> None:
|
||||
any("woman reclines on her back with knees folded high toward her chest" in str(cue) for cue in missionary_folded.get("prompt_cues", [])),
|
||||
"Folded missionary variant lost high-leg folded cue",
|
||||
)
|
||||
cowgirl = krea2_pose_variant_catalog.get_variant("pov_cowgirl_frontal_straddle_penetration")
|
||||
_expect(cowgirl.get("status") == "candidate", "Cowgirl variant should remain a candidate until fixed-seed evidence exists")
|
||||
_expect(
|
||||
any("woman straddles the viewer facing him" in str(cue) for cue in cowgirl.get("prompt_cues", [])),
|
||||
"Cowgirl variant lost frontal straddle cue",
|
||||
)
|
||||
refs = krea2_pose_variant_catalog.reference_paths("pov_boobjob_upright_cleavage")
|
||||
_expect(refs and all(path.name.endswith(".png") for path in refs), "Boobjob reference paths are not image paths")
|
||||
_expect(all("bg" not in str(path).lower() for path in refs), "Reference paths should not include background-only atlas images")
|
||||
@@ -6967,9 +6974,12 @@ def smoke_krea2_tuning_report_policy() -> None:
|
||||
missionary_folded = by_key.get("pov_missionary_folded_high_leg_penetration") or {}
|
||||
_expect(missionary_folded.get("coverage_state") == "needs_fixed_seed_tests", "Folded missionary report should need fixed-seed tests")
|
||||
_expect(missionary_folded.get("accepted_evidence_count") == 0, "Folded missionary report should not have accepted evidence yet")
|
||||
cowgirl = by_key.get("pov_cowgirl_frontal_straddle_penetration") or {}
|
||||
_expect(cowgirl.get("coverage_state") == "needs_fixed_seed_tests", "Cowgirl report should need fixed-seed tests")
|
||||
_expect(cowgirl.get("accepted_evidence_count") == 0, "Cowgirl report should not have accepted evidence yet")
|
||||
summary = krea2_tuning_report.coverage_summary()
|
||||
_expect(summary.get("status_counts", {}).get("proven") == 3, "Krea2 tuning report proven count changed")
|
||||
_expect(summary.get("status_counts", {}).get("candidate") == 10, "Krea2 tuning report candidate count changed")
|
||||
_expect(summary.get("status_counts", {}).get("candidate") == 11, "Krea2 tuning report candidate count changed")
|
||||
_expect(
|
||||
summary.get("variants_without_accepted_evidence") == [
|
||||
"pov_ballsucking_low_head",
|
||||
@@ -6982,6 +6992,7 @@ def smoke_krea2_tuning_report_policy() -> None:
|
||||
"pov_blowjob_sitting_upright_oral",
|
||||
"pov_missionary_open_leg_penetration",
|
||||
"pov_missionary_folded_high_leg_penetration",
|
||||
"pov_cowgirl_frontal_straddle_penetration",
|
||||
],
|
||||
f"Krea2 tuning report missing-evidence set changed: {summary.get('variants_without_accepted_evidence')}",
|
||||
)
|
||||
@@ -6999,6 +7010,7 @@ def smoke_krea2_tuning_report_policy() -> None:
|
||||
"pov_blowjob_sitting_upright_oral",
|
||||
"pov_missionary_open_leg_penetration",
|
||||
"pov_missionary_folded_high_leg_penetration",
|
||||
"pov_cowgirl_frontal_straddle_penetration",
|
||||
],
|
||||
"Krea2 tuning report next plans changed",
|
||||
)
|
||||
@@ -7097,6 +7109,15 @@ def smoke_krea2_tuning_report_policy() -> None:
|
||||
any(str(path).endswith("missionary_folded/16_missionary_folded.png") for path in missionary_folded_plan.get("reference_paths") or []),
|
||||
"Folded missionary test plan lost atlas reference path",
|
||||
)
|
||||
cowgirl_plan = plan_by_key["pov_cowgirl_frontal_straddle_penetration"]
|
||||
_expect(
|
||||
"woman straddles the viewer facing him" in " ".join(cowgirl_plan.get("prompt_cues") or []),
|
||||
"Cowgirl test plan lost frontal straddle cue",
|
||||
)
|
||||
_expect(
|
||||
any(str(path).endswith("5.cowgirl/100_cowgirl.png") for path in cowgirl_plan.get("reference_paths") or []),
|
||||
"Cowgirl test plan lost atlas reference path",
|
||||
)
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
atlas_root = Path(tmpdir)
|
||||
for folder in ("doggy", "doggy_control", "custom_pose", "custom_pose_control", "bg", "woman", "doggy_bg"):
|
||||
@@ -7138,6 +7159,7 @@ def smoke_krea2_tuning_report_policy() -> None:
|
||||
_expect("pov_blowjob_sitting_upright_oral" in markdown, "Krea2 tuning report markdown lost blowjob sitting candidate variant")
|
||||
_expect("pov_missionary_open_leg_penetration" in markdown, "Krea2 tuning report markdown lost missionary candidate variant")
|
||||
_expect("pov_missionary_folded_high_leg_penetration" in markdown, "Krea2 tuning report markdown lost folded missionary candidate variant")
|
||||
_expect("pov_cowgirl_frontal_straddle_penetration" in markdown, "Krea2 tuning report markdown lost cowgirl candidate variant")
|
||||
_expect("needs_fixed_seed_tests" in markdown, "Krea2 tuning report markdown lost coverage state")
|
||||
_expect("Prompt cues" in markdown, "Krea2 tuning report markdown lost next-test cue section")
|
||||
_expect("Avoid cues" in markdown, "Krea2 tuning report markdown lost next-test avoid section")
|
||||
|
||||
Reference in New Issue
Block a user