Extract anal role graph wording

This commit is contained in:
2026-06-26 17:32:04 +02:00
parent 04ee754f68
commit ee62e2215d
6 changed files with 290 additions and 75 deletions
+40 -31
View File
@@ -138,6 +138,10 @@ def pov_hardcore_pose_sentence(
action_lower = action_text.lower()
if not context:
context = action_lower
position_text = ""
if isinstance(axis_values, dict):
position_text = _clean(axis_values.get("position", "")).lower()
position_context = position_text or context
def sentence(base: str) -> str:
details = ""
@@ -212,63 +216,68 @@ def pov_hardcore_pose_sentence(
contact = pov_contact_clause(action, role_graph, hard_item, axis_values, context)
if "reverse cowgirl" in context:
if "reverse cowgirl" in position_context:
return sentence(
"POV reverse cowgirl position: the viewer lies on his back while the woman straddles his hips facing away; "
f"her back, ass, thighs, and the viewer's foreground legs are visible {contact}"
)
if "cowgirl" in context or "straddling a partner" in context or "squatting on top" in context:
if "cowgirl" in position_context or "straddling a partner" in position_context or "squatting on top" in position_context:
return sentence(
"POV cowgirl position: the viewer lies on his back while the woman straddles his hips facing him; "
f"her torso, hips, and open thighs fill the frame from below {contact}"
)
if "lotus" in context or "seated in a partner's lap" in context:
if "lotus" in position_context or "seated in a partner's lap" in position_context:
return sentence(
"POV lotus position: the viewer sits upright while the woman sits in his lap facing him with her legs around his hips; "
f"her torso and hips stay close to the viewer {contact}"
)
if "kneeling straddle" in context:
if "kneeling straddle" in position_context:
return sentence(
"POV kneeling straddle position: the viewer kneels upright while the woman straddles his hips facing him; "
f"both torsos are upright and her hips press directly against him {contact}"
)
if "face-down" in context or "face down" in context:
if "face-down" in position_context or "face down" in position_context:
return sentence(
"The woman is seen from behind with her ass raised toward the POV viewer, lying face-down with hips lifted; "
f"the viewer looks down at her raised ass with foreground hands on her hips {contact}"
)
if "bent-over" in context or "bent over" in context or "bent forward" in context:
return sentence(
"The woman is seen from behind with her ass raised toward the POV viewer, bent forward at the waist with hips lifted and head turned back; "
f"the viewer looks down at her raised ass from behind with foreground hands near her hips {contact}"
)
if "doggy" in context or "all fours" in context or "rear-entry" in context:
return sentence(
"The woman is seen from behind with her ass raised toward the POV viewer, on all fours directly in front of him with hips high and back arched; "
f"the viewer looks down at her raised ass with his hands on her hips in the foreground {contact}"
)
if "standing" in context:
return sentence(
"POV standing rear-entry position: the woman stands braced in front of the viewer with hips angled back and legs steady; "
f"the viewer stands behind her at hip level {contact}"
)
if "spooning" in context or "side-lying" in context or "lies on her side" in context:
return sentence(
"POV side-lying sex position: the woman lies on her side in front of the viewer with thighs parted; "
f"the viewer is behind her along the same body line {contact}"
)
if (
"edge-supported" in context
or "raised edge" in context
or "edge of bed" in context
or "bed edge" in context
or "kneels between her legs" in context
"edge-supported" in position_context
or "raised edge" in position_context
or "edge of bed" in position_context
or "bed edge" in position_context
or (not position_text and "kneels between her legs" in context)
):
return sentence(
"POV raised-edge penetration position: the woman reclines at the raised edge with thighs open toward the viewer; "
f"the viewer kneels between her legs with his hands near her hips {contact}"
)
if "missionary" in context or ("lies on her back" in context and ("legs open" in context or "thighs open" in context)):
if "standing" in position_context:
return sentence(
"POV standing rear-entry position: the woman stands braced in front of the viewer with hips angled back and legs steady; "
f"the viewer stands behind her at hip level {contact}"
)
if "spooning" in position_context or "side-lying" in position_context or "lies on her side" in position_context:
return sentence(
"POV side-lying sex position: the woman lies on her side in front of the viewer with thighs parted; "
f"the viewer is behind her along the same body line {contact}"
)
if "doggy" in position_context or "all fours" in position_context or "rear-entry" in position_context:
return sentence(
"The woman is seen from behind with her ass raised toward the POV viewer, on all fours directly in front of him with hips high and back arched; "
f"the viewer looks down at her raised ass with his hands on her hips in the foreground {contact}"
)
if "kneeling" in position_context:
return sentence(
"POV kneeling rear-entry position: the woman kneels forward in front of the viewer with hips raised and thighs apart; "
f"the viewer kneels behind her at hip level with foreground hands near her waist {contact}"
)
if "bent-over" in position_context or "bent over" in position_context or "bent forward" in position_context:
return sentence(
"The woman is seen from behind with her ass raised toward the POV viewer, bent forward at the waist with hips lifted and head turned back; "
f"the viewer looks down at her raised ass from behind with foreground hands near her hips {contact}"
)
if "missionary" in position_context or (not position_text and "lies on her back" in context and ("legs open" in context or "thighs open" in context)):
return sentence(
"POV missionary position: the woman lies on her back with legs open around the viewer's hips; "
f"the viewer is above her with foreground arms braced beside her body {contact}"