Align outercourse action routing

This commit is contained in:
2026-06-27 16:15:27 +02:00
parent ff6195473b
commit 002c3b79d4
10 changed files with 393 additions and 67 deletions
+10 -5
View File
@@ -4,6 +4,7 @@ import re
from typing import Any
try:
from . import outercourse_action_policy as outercourse_policy
from .krea_action_context import (
axis_values_text,
is_close_foreplay_text,
@@ -13,6 +14,7 @@ try:
position_context_text,
)
except ImportError: # Allows local smoke tests with `python -c`.
import outercourse_action_policy as outercourse_policy
from krea_action_context import (
axis_values_text,
is_close_foreplay_text,
@@ -51,15 +53,18 @@ def hardcore_pose_anchor(role_graph: str, hard_item: str, composition: str = "",
if is_foreplay_text(role_graph, hard_item, composition, axis_values_text(axis_values)):
return ""
if is_outercourse_text(role_graph, hard_item, composition, axis_values_text(axis_values)):
if any(term in text for term in ("boobjob", "titjob", "breast sex", "breast-sex")):
action_kind = outercourse_policy.infer_outercourse_action_kind(position_text)
if action_kind == outercourse_policy.OUTERCOURSE_GENERIC:
action_kind = outercourse_policy.infer_outercourse_action_kind(text)
if action_kind == outercourse_policy.OUTERCOURSE_BOOBJOB:
return "breast-sex outercourse pose"
if any(term in text for term in ("testicle", "balls licking", "balls-licking", "balls and mouth")):
if action_kind == outercourse_policy.OUTERCOURSE_TESTICLE:
return "testicle-sucking outercourse pose"
if any(term in text for term in ("penis licking", "penis-licking", "tongue along", "tongue licking")):
if action_kind == outercourse_policy.OUTERCOURSE_PENIS_LICKING:
return "penis-licking outercourse pose"
if any(term in text for term in ("handjob", "hand job", "hand wrapped", "hand stroking", "manual stimulation")):
if action_kind == outercourse_policy.OUTERCOURSE_HANDJOB:
return "handjob outercourse pose"
if any(term in text for term in ("footjob", "soles", "toes curled", "feet stroking")):
if action_kind == outercourse_policy.OUTERCOURSE_FOOTJOB:
return "footjob outercourse pose"
return "non-penetrative outercourse pose"
if is_toy_assisted_double_text(role_graph, hard_item, composition, axis_values_text(axis_values)):