Clarify penis shaft wording

This commit is contained in:
2026-06-25 16:43:25 +02:00
parent 7675bf3bea
commit 5cf1b43a3e
3 changed files with 36 additions and 36 deletions
+18 -18
View File
@@ -441,16 +441,16 @@
"close body alignment around the penis" "close body alignment around the penis"
], ],
"contact_detail": [ "contact_detail": [
"compressed soft tissue around the shaft", "compressed soft tissue around the penis shaft",
"glans kept visible at the mouth or between lips", "glans kept visible at the mouth or between lips",
"tongue and lips making clear contact", "tongue and lips making clear contact",
"soles pressing from both sides of the shaft", "soles pressing from both sides of the penis shaft",
"toes curled around the shaft", "toes curled around the penis shaft",
"balls held gently against the mouth", "balls held gently against the mouth",
"skin visibly compressed under fingers", "skin visibly compressed under fingers",
"wet contact visible on the penis", "wet contact visible on the penis",
"hand wrapped around the shaft with the glans visible", "hand wrapped around the penis shaft with the glans visible",
"fingers and palm visibly stroking the penis" "fingers and palm visibly stroking the penis shaft"
], ],
"expression_detail": [ "expression_detail": [
"focused downward gaze", "focused downward gaze",
@@ -470,22 +470,22 @@
"hands holding the ankles in place", "hands holding the ankles in place",
"one hand holding the base of the penis", "one hand holding the base of the penis",
"hands cupping balls close to the mouth", "hands cupping balls close to the mouth",
"fingers spreading the breasts around the shaft", "fingers spreading the breasts around the penis shaft",
"one hand wrapped around the shaft", "one hand wrapped around the penis shaft",
"both hands stroking the penis in the foreground" "both hands stroking the penis in the foreground"
], ],
"outer_act": [ "outer_act": [
"boobjob with the penis squeezed between both breasts", "boobjob with the penis squeezed between both breasts",
"titjob with the shaft compressed between breasts and the glans near the mouth", "titjob with the penis shaft compressed between breasts and the glans near the mouth",
"breast sex with hands pressing the breasts tightly around the penis", "breast sex with hands pressing the breasts tightly around the penis shaft",
"testicle sucking with lips around the balls", "testicle sucking with lips around the balls",
"balls licking with tongue contact under the shaft", "balls licking with tongue contact under the penis shaft",
"penis licking with tongue along the shaft and glans", "penis licking with tongue along the penis shaft and glans",
"slow tongue licking on the underside of the penis", "slow tongue licking on the underside of the penis",
"handjob with one hand wrapped around the penis", "handjob with one hand wrapped around the penis",
"two-handed handjob with the shaft centered in frame", "two-handed handjob with the penis shaft centered in frame",
"footjob with both soles wrapped around the penis", "footjob with both soles wrapped around the penis",
"footjob with toes curled around the shaft", "footjob with toes curled around the penis shaft",
"feet stroking the penis while the legs frame the contact" "feet stroking the penis while the legs frame the contact"
], ],
"position": [ "position": [
@@ -514,24 +514,24 @@
], ],
"texture_detail": [ "texture_detail": [
"realistic skin compression", "realistic skin compression",
"soft flesh squeezed around the shaft", "soft flesh squeezed around the penis shaft",
"matte skin texture visible in the close-up", "matte skin texture visible in the close-up",
"wet lips and tongue contact", "wet lips and tongue contact",
"slight saliva shine on skin", "slight saliva shine on skin",
"toes pressing into the shaft", "toes pressing into the penis shaft",
"fingers sliding along the shaft", "fingers sliding along the penis shaft",
"natural asymmetry and soft tissue movement", "natural asymmetry and soft tissue movement",
"visible pressure marks from fingers or soles" "visible pressure marks from fingers or soles"
], ],
"visibility": [ "visibility": [
"penis, breasts, and mouth clearly visible", "penis, breasts, and mouth clearly visible",
"shaft compressed between breasts", "penis shaft compressed between breasts",
"glans and lips visible at the same contact point", "glans and lips visible at the same contact point",
"balls and mouth contact visible", "balls and mouth contact visible",
"tongue contact on the penis clearly visible", "tongue contact on the penis clearly visible",
"hand and penis centered in frame", "hand and penis centered in frame",
"feet and penis centered in frame", "feet and penis centered in frame",
"soles and shaft contact clearly visible", "soles and penis shaft contact clearly visible",
"explicit non-penetrative genital contact visible" "explicit non-penetrative genital contact visible"
] ]
} }
+6 -6
View File
@@ -475,27 +475,27 @@ def _pov_hardcore_pose_sentence(
if any(term in context for term in ("boobjob", "titjob", "breast sex", "breast-sex")): if any(term in context for term in ("boobjob", "titjob", "breast sex", "breast-sex")):
return outercourse_sentence( return outercourse_sentence(
"The woman kneels low between the viewer's thighs, chest directly over his pelvis; " "The woman kneels low between the viewer's thighs, chest directly over his pelvis; "
"both hands press her breasts tightly around the viewer's penis, with the shaft vertical in the lower foreground and the glans just below her lips" "both hands press her breasts tightly around the viewer's penis, with the penis shaft vertical in the lower foreground and the glans just below her lips"
) )
if any(term in context for term in ("testicle", "balls licking", "balls-licking", "balls and mouth")): if any(term in context for term in ("testicle", "balls licking", "balls-licking", "balls and mouth")):
return outercourse_sentence( return outercourse_sentence(
"The woman kneels very low between the viewer's thighs, face below the shaft at testicle height; " "The woman kneels very low between the viewer's thighs, face below the penis shaft at testicle height; "
"her mouth and tongue contact the viewer's balls while his penis points upward above her forehead in the lower foreground" "her mouth and tongue contact the viewer's balls while his penis points upward above her forehead in the lower foreground"
) )
if any(term in context for term in ("penis licking", "penis-licking", "tongue along", "tongue licking")): if any(term in context for term in ("penis licking", "penis-licking", "tongue along", "tongue licking")):
return outercourse_sentence( return outercourse_sentence(
"The woman kneels close at the viewer's pelvis, face just above his hips; " "The woman kneels close at the viewer's pelvis, face just above his hips; "
"her tongue runs along the underside of the penis from shaft to glans while one hand steadies the base in the lower foreground" "her tongue runs along the underside of the penis from the penis shaft to the glans while one hand steadies the base of the penis in the lower foreground"
) )
if any(term in context for term in ("handjob", "hand job", "hand wrapped", "hand stroking", "manual stimulation")): if any(term in context for term in ("handjob", "hand job", "hand wrapped", "hand stroking", "manual stimulation")):
return outercourse_sentence( return outercourse_sentence(
"The woman kneels close at the viewer's pelvis with her face behind the shaft; " "The woman kneels close at the viewer's pelvis with her face behind the penis shaft; "
"one hand wraps around the penis and the other steadies the base as she strokes toward the glans in the lower foreground" "one hand wraps around the penis shaft and the other steadies the base of the penis as she strokes toward the glans in the lower foreground"
) )
if any(term in context for term in ("footjob", "soles", "toes curled", "feet stroking")): if any(term in context for term in ("footjob", "soles", "toes curled", "feet stroking")):
return outercourse_sentence( return outercourse_sentence(
"The woman faces the viewer with both legs raised toward the camera; " "The woman faces the viewer with both legs raised toward the camera; "
"her soles wrap around the penis in the lower foreground, toes curled around the shaft with her face visible beyond the contact" "her soles wrap around the penis in the lower foreground, toes curled around the penis shaft with her face visible beyond the contact"
) )
return outercourse_sentence( return outercourse_sentence(
"The woman stays close to the viewer's pelvis, keeping the non-penetrative contact centered in the lower foreground with her face visible behind the contact" "The woman stays close to the viewer's pelvis, keeping the non-penetrative contact centered in the lower foreground with her face visible behind the contact"
+12 -12
View File
@@ -5123,51 +5123,51 @@ def _role_graph(
if any(term in text for term in ("testicle", "balls-licking", "balls licking", "balls and mouth", "balls held")): if any(term in text for term in ("testicle", "balls-licking", "balls licking", "balls and mouth", "balls held")):
if man_is_pov: if man_is_pov:
return ( return (
f"{woman} kneels very low between the POV viewer's thighs, face below the shaft at testicle height, " f"{woman} kneels very low between the POV viewer's thighs, face below the penis shaft at testicle height, "
"mouth and tongue on the POV viewer's balls while his penis points upward above her forehead." "mouth and tongue on the POV viewer's balls while his penis points upward above her forehead."
) )
return ( return (
f"{man} sits with legs apart while {woman} kneels very low between his thighs, face below the shaft at testicle height, " f"{man} sits with legs apart while {woman} kneels very low between his thighs, face below the penis shaft at testicle height, "
f"mouth and tongue on his balls while {man}'s penis points upward above her forehead." f"mouth and tongue on his balls while {man}'s penis points upward above her forehead."
) )
if "penis-licking" in position_text or "penis licking" in text or "tongue along" in text or "tongue licking" in text: if "penis-licking" in position_text or "penis licking" in text or "tongue along" in text or "tongue licking" in text:
if man_is_pov: if man_is_pov:
return ( return (
f"{woman} kneels close at the POV viewer's pelvis, face just above his hips, " f"{woman} kneels close at the POV viewer's pelvis, face just above his hips, "
"tongue running along the underside of the POV viewer's penis from shaft to glans while one hand steadies the base." "tongue running along the underside of the POV viewer's penis from the penis shaft to the glans while one hand steadies the base of the penis."
) )
return ( return (
f"{woman} kneels close at {man}'s pelvis, face just above his hips, " f"{woman} kneels close at {man}'s pelvis, face just above his hips, "
f"tongue running along the underside of {man}'s penis from shaft to glans while one hand steadies the base." f"tongue running along the underside of {man}'s penis from the penis shaft to the glans while one hand steadies the base of the penis."
) )
if "handjob" in position_text or "handjob" in text or "hand job" in text or "hand wrapped" in text: if "handjob" in position_text or "handjob" in text or "hand job" in text or "hand wrapped" in text:
if man_is_pov: if man_is_pov:
return ( return (
f"{woman} kneels close at the POV viewer's pelvis with her face behind the shaft, " f"{woman} kneels close at the POV viewer's pelvis with her face behind the penis shaft, "
"one hand wrapped around the POV viewer's penis and the other hand steadying the base as she strokes toward the glans." "one hand wrapped around the POV viewer's penis shaft and the other hand steadying the base of the penis as she strokes toward the glans."
) )
return ( return (
f"{woman} kneels close at {man}'s pelvis with her face behind the shaft, " f"{woman} kneels close at {man}'s pelvis with her face behind the penis shaft, "
f"one hand wrapped around {man}'s penis and the other hand steadying the base as she strokes toward the glans." f"one hand wrapped around {man}'s penis shaft and the other hand steadying the base of the penis as she strokes toward the glans."
) )
if "footjob" in text or "soles" in text or "toes curled" in text or "feet stroking" in text: if "footjob" in text or "soles" in text or "toes curled" in text or "feet stroking" in text:
if man_is_pov: if man_is_pov:
return ( return (
f"{woman} faces the POV viewer with legs raised toward the camera, both soles wrapped around the POV viewer's penis " f"{woman} faces the POV viewer with legs raised toward the camera, both soles wrapped around the POV viewer's penis "
"in the lower foreground and toes curled around the shaft." "in the lower foreground and toes curled around the penis shaft."
) )
return ( return (
f"{man} reclines with hips forward while {woman} faces him and wraps both soles around {man}'s penis, " f"{man} reclines with hips forward while {woman} faces him and wraps both soles around {man}'s penis, "
"stroking the shaft with her feet while the contact stays centered." "stroking the penis shaft with her feet while the contact stays centered."
) )
if man_is_pov: if man_is_pov:
return ( return (
f"{woman} kneels close to the POV viewer's hips and keeps the POV viewer's penis centered in clear non-penetrative contact, " f"{woman} kneels close to the POV viewer's hips and keeps the POV viewer's penis centered in clear non-penetrative contact, "
"with her mouth, hands, breasts, or feet visibly working around the shaft." "with her mouth, hands, breasts, or feet visibly working around the penis shaft."
) )
return ( return (
f"{woman} kneels close to {man}'s hips and keeps {man}'s penis centered in clear non-penetrative contact, " f"{woman} kneels close to {man}'s hips and keeps {man}'s penis centered in clear non-penetrative contact, "
"with her mouth, hands, breasts, or feet visibly working around the shaft." "with her mouth, hands, breasts, or feet visibly working around the penis shaft."
) )
def oral_position_graph(woman: str, man: str) -> str: def oral_position_graph(woman: str, man: str) -> str: