Improve POV face-sitting wording

This commit is contained in:
2026-06-25 17:27:40 +02:00
parent 4fc68beec7
commit aedeb14395
2 changed files with 26 additions and 1 deletions
+20 -1
View File
@@ -471,6 +471,16 @@ def _pov_hardcore_pose_sentence(
def outercourse_sentence(base: str) -> str:
return _clean(base).rstrip(".")
if (
"face-sitting" in context
or "face sitting" in context
or ("straddles" in context and "face" in context and "pussy" in context)
):
return outercourse_sentence(
"The woman is above the camera in a close first-person underview, straddling the viewer's face with her thighs on both sides of his head; "
"her pussy is directly over the viewer's mouth in the lower foreground, tongue contact visible from below"
)
if _is_outercourse_text(context, action_lower):
if any(term in context for term in ("boobjob", "titjob", "breast sex", "breast-sex")):
return outercourse_sentence(
@@ -1763,6 +1773,11 @@ def _composition_phrase(
action_lower = _clean(action).lower()
composition_lower = composition.lower()
detail_density = _normalize_hardcore_detail_density(detail_density)
if "first-person underview" in action_lower or "straddling the viewer's face" in action_lower:
if any(token in composition_lower for token in ("mirror-reflected", "oral scene", "face and body visible")):
return (
f"{prefix} close first-person underview with the woman's thighs framing the camera and the oral contact centered"
)
oral_pose_tokens = (
"kneeling oral",
"side-lying oral",
@@ -1833,7 +1848,11 @@ def _expression_phrase(expression: Any) -> str:
expression = _clean(expression)
if not expression:
return ""
if ";" in expression or re.search(r"\b(?:Woman|Man) [A-Z] has\b|\bthe (?:woman|man) has\b", expression):
if ";" in expression or re.search(
r"\b(?:Woman|Man) [A-Z] has\b|\bthe (?:woman|man) has\b",
expression,
flags=re.IGNORECASE,
):
return f"Expressions: {expression}"
return f"with {expression}"
+6
View File
@@ -5198,6 +5198,7 @@ def _role_graph(
*((item_axis_values or {}).values()),
)
)
man_is_pov = man in pov_set
woman_gives = any(
term in text
for term in (
@@ -5232,6 +5233,11 @@ def _role_graph(
if "sixty-nine" in position_text or ("sixty-nine" in text and not position_text):
return f"{woman} and {man} lie head-to-hips in a sixty-nine position, with {woman}'s mouth on {man}'s penis and {man}'s mouth on {woman}'s pussy."
if "face-sitting" in position_text or ("face-sitting" in text and not position_text):
if man_is_pov:
return (
f"{woman} is above the POV camera, straddling the POV viewer's face with thighs on both sides of his head, "
"pussy directly over the POV viewer's mouth for close first-person underview tongue contact."
)
return f"{man} lies on his back while {woman} straddles his face with her thighs around his head and {man}'s mouth pressed to her pussy."
if "straddled oral" in position_text or ("straddled oral" in text and not position_text):
if woman_gives and not man_gives: