Mark sixty-nine as low-priority control route

This commit is contained in:
2026-06-29 08:58:26 +02:00
parent 3467acbd6a
commit 1e9794eed0
5 changed files with 75 additions and 5 deletions
+4 -1
View File
@@ -336,6 +336,9 @@
"key": "pov_sixty_nine_close_reversed_oral",
"family": "sixty_nine",
"status": "unstable",
"difficulty": "hardest",
"priority": "low",
"control_requirement": "pose_or_image_guidance_first",
"atlas_folders": ["69"],
"action_family": "oral",
"position_keys": ["sixty_nine"],
@@ -368,7 +371,7 @@
"evidence": {
"fixed_seed_tests": [],
"guide_section": "",
"notes": "Atlas geometry is consistent but visually fragile for text-only Krea2 prompting; keep this unstable until fixed-seed tests prove a reliable wording or a control-image route is wired."
"notes": "Lowest-priority atlas route for now: geometry is consistent but visually fragile for text-only Krea2 prompting. Treat it as a pose/control-image or image-guidance-first case, not a normal prompt-only fixed-seed candidate."
}
},
{
+5 -4
View File
@@ -158,10 +158,11 @@ The `69` folder repeats a close first-person mutual-oral layout rather than a
wide side-by-side pose: the visible partner is reversed over the viewer, hips
closest to camera, head and torso receding away into the upper frame, and the
viewer face or mouth anchoring the lower foreground. Treat
`pov_sixty_nine_close_reversed_oral` as unstable until fixed-seed tests prove a
reliable wording. When exact geometry matters, prefer a pose/control image or a
narrower image-guided route; text alone can collapse this into generic oral
contact or lose the reversed-over-viewer body arrangement.
`pov_sixty_nine_close_reversed_oral` as the hardest and lowest-priority route in
the atlas for now. Do not queue it as a normal prompt-only fixed-seed candidate.
When exact geometry matters, prefer a pose/control image or a narrower
image-guided route; text alone can collapse this into generic oral contact or
lose the reversed-over-viewer body arrangement.
### Blowjob Top View
+18
View File
@@ -229,6 +229,24 @@ Do not over-prompt `viewer torso and thighs outside frame`; seeds `65` and
that. Prefer framing them as plausible foreground body cues rather than trying
to suppress them.
## Stronger-Control / Low-Priority Cases
Some atlas routes are useful to catalog but are not good prompt-only tuning
targets yet. Keep these out of the normal fixed-seed prompt queue until easier
pose families are covered.
### Sixty-Nine / Close Reversed POV
`pov_sixty_nine_close_reversed_oral` is currently the hardest and low-priority
atlas route. It should be treated as a pose/control image or image-guided route
first, not a normal prompt-only fixed-seed candidate.
The repeated atlas geometry is close and specific: the visible partner is
reversed over the viewer, hips closest to the camera, head and torso receding
away into the upper frame, and the viewer face or mouth anchoring the lower
foreground. Text-only prompting can collapse this into generic oral contact or
lose the reversed-over-viewer body arrangement.
## Style
Style should describe rendering, not camera mechanics.
+18
View File
@@ -53,6 +53,9 @@ def coverage_rows() -> list[dict[str, Any]]:
"family": variant.get("family") or "",
"action_family": variant.get("action_family") or "",
"status": status,
"difficulty": variant.get("difficulty") or "",
"priority": variant.get("priority") or "",
"control_requirement": variant.get("control_requirement") or "",
"coverage_state": _coverage_state(status, len(accepted)),
"accepted_evidence_count": len(accepted),
"total_evidence_count": len(evidence),
@@ -83,6 +86,11 @@ def coverage_summary() -> dict[str, Any]:
for row in rows
if row.get("coverage_state") in {"needs_fixed_seed_tests", "proven_missing_evidence"}
],
"stronger_control_cases": [
str(row.get("key"))
for row in rows
if row.get("coverage_state") == "needs_stronger_control"
],
}
@@ -256,6 +264,16 @@ def markdown_report(atlas_root: str | Path | None = None) -> str:
*[f"- {key}" for key in summary["next_test_candidates"]],
]
)
stronger_control_rows = [row for row in coverage_rows() if row.get("coverage_state") == "needs_stronger_control"]
if stronger_control_rows:
lines.extend(["", "## Stronger Control Cases", ""])
for row in stronger_control_rows:
difficulty = row.get("difficulty") or "unrated"
priority = row.get("priority") or "unprioritized"
control_requirement = row.get("control_requirement") or "control_needed"
lines.append(
f"- {row['key']}: {difficulty}, {priority} priority, {control_requirement}"
)
plans = next_test_plans()
if plans:
lines.extend(["", "## Next Test Plans"])
+30
View File
@@ -6874,6 +6874,12 @@ def smoke_krea2_pose_variant_catalog_policy() -> None:
)
sixty_nine = krea2_pose_variant_catalog.get_variant("pov_sixty_nine_close_reversed_oral")
_expect(sixty_nine.get("status") == "unstable", "Sixty-nine route should stay unstable until text-only evidence improves")
_expect(sixty_nine.get("difficulty") == "hardest", "Sixty-nine route should be marked as the hardest atlas route")
_expect(sixty_nine.get("priority") == "low", "Sixty-nine route should be marked low priority")
_expect(
sixty_nine.get("control_requirement") == "pose_or_image_guidance_first",
"Sixty-nine route should require pose/image guidance before prompt-only tuning",
)
_expect(
any("visible partner is reversed over the viewer with hips closest" in str(cue) for cue in sixty_nine.get("prompt_cues", [])),
"Sixty-nine variant lost reversed-over-viewer cue",
@@ -6990,6 +6996,15 @@ def smoke_krea2_eval_log_policy() -> None:
_expect(clean.get("observation") != "mutation should not leak", "Krea2 eval log leaked caller mutation")
def smoke_krea2_prompt_guide_policy() -> None:
guide = (ROOT / "docs" / "krea2-prompt-guide.md").read_text(encoding="utf-8")
_expect("## Stronger-Control / Low-Priority Cases" in guide, "Krea2 prompt guide lost stronger-control section")
_expect("pov_sixty_nine_close_reversed_oral" in guide, "Krea2 prompt guide lost sixty-nine unstable route")
_expect("hardest" in guide and "low-priority" in guide, "Krea2 prompt guide lost hardest low-priority wording")
_expect("not a normal prompt-only fixed-seed candidate" in guide, "Krea2 prompt guide should not queue sixty-nine as normal prompt tuning")
_expect("pose/control image" in guide or "image-guided" in guide, "Krea2 prompt guide lost control-first guidance")
def smoke_krea2_tuning_report_policy() -> None:
rows = krea2_tuning_report.coverage_rows()
catalog_keys = krea2_pose_variant_catalog.variant_keys()
@@ -7022,6 +7037,12 @@ def smoke_krea2_tuning_report_policy() -> None:
sixty_nine = by_key.get("pov_sixty_nine_close_reversed_oral") or {}
_expect(sixty_nine.get("coverage_state") == "needs_stronger_control", "Sixty-nine report should require stronger control")
_expect(sixty_nine.get("accepted_evidence_count") == 0, "Sixty-nine report should not have accepted evidence yet")
_expect(sixty_nine.get("difficulty") == "hardest", "Sixty-nine report lost hardest-route marker")
_expect(sixty_nine.get("priority") == "low", "Sixty-nine report lost low-priority marker")
_expect(
sixty_nine.get("control_requirement") == "pose_or_image_guidance_first",
"Sixty-nine report lost control-first marker",
)
spread = by_key.get("pov_spread_open_thigh_presentation") or {}
_expect(spread.get("coverage_state") == "needs_fixed_seed_tests", "Spread report should need fixed-seed tests")
_expect(spread.get("accepted_evidence_count") == 0, "Spread report should not have accepted evidence yet")
@@ -7081,6 +7102,10 @@ def smoke_krea2_tuning_report_policy() -> None:
],
f"Krea2 tuning report missing-evidence set changed: {summary.get('variants_without_accepted_evidence')}",
)
_expect(
summary.get("stronger_control_cases") == ["pov_sixty_nine_close_reversed_oral"],
f"Krea2 tuning report stronger-control set changed: {summary.get('stronger_control_cases')}",
)
plans = krea2_tuning_report.next_test_plans()
_expect(
"pov_sixty_nine_close_reversed_oral" not in [plan.get("key") for plan in plans],
@@ -7304,6 +7329,10 @@ def smoke_krea2_tuning_report_policy() -> None:
_expect("seed 7302" in markdown, "Krea2 tuning report markdown lost evidence seed")
_expect("generator_patch" in markdown, "Krea2 tuning report markdown lost evidence decision")
_expect("upright frontal boobjob geometry" in markdown, "Krea2 tuning report markdown lost evidence prompt summary")
_expect("## Stronger Control Cases" in markdown, "Krea2 tuning report markdown lost stronger-control section")
_expect("hardest" in markdown, "Krea2 tuning report markdown lost hardest-route marker")
_expect("low priority" in markdown, "Krea2 tuning report markdown lost low-priority marker")
_expect("pose_or_image_guidance_first" in markdown, "Krea2 tuning report markdown lost control-first marker")
_expect("pov_ballsucking_low_head" in markdown, "Krea2 tuning report markdown lost candidate variant")
_expect("pov_footjob_frontal_sole_stroke" in markdown, "Krea2 tuning report markdown lost footjob candidate variant")
_expect("pov_fingering_reclined_open_thighs" in markdown, "Krea2 tuning report markdown lost fingering candidate variant")
@@ -10333,6 +10362,7 @@ SMOKE_CASES: list[tuple[str, Callable[[], None]]] = [
("krea2_pov_pose_variant_catalog", smoke_krea2_pov_pose_variant_catalog),
("krea2_pose_variant_catalog_policy", smoke_krea2_pose_variant_catalog_policy),
("krea2_eval_log_policy", smoke_krea2_eval_log_policy),
("krea2_prompt_guide_policy", smoke_krea2_prompt_guide_policy),
("krea2_tuning_report_policy", smoke_krea2_tuning_report_policy),
("krea_pov_penetration_route", smoke_krea_pov_penetration_route),
("pov_outercourse_position_routes", smoke_pov_outercourse_position_routes),