Fix exact Krea2 POV oral routing

This commit is contained in:
2026-06-30 20:35:00 +02:00
parent 5f4dd7d77f
commit 3832044256
8 changed files with 182 additions and 12 deletions
+14 -2
View File
@@ -6,6 +6,14 @@ from typing import Any, Callable
MOUTH_EXPRESSION_TERMS = ("mouth", "oral", "tongue", "lips", "gagging", "saliva", "drool")
TOP_VIEW_ORAL_VARIANT = "pov_blowjob_top_down_vertical_shaft"
ORAL_CONTACT_VARIANTS = frozenset(
(
TOP_VIEW_ORAL_VARIANT,
"pov_blowjob_side_profile_oral",
"pov_blowjob_laying_frontal_oral",
"pov_blowjob_sitting_upright_oral",
)
)
@dataclass(frozen=True)
@@ -98,8 +106,12 @@ def _has_krea2_variant(row: dict[str, Any], key: str) -> bool:
return key in _krea2_variant_keys(row)
def _has_krea2_oral_contact_variant(row: dict[str, Any]) -> bool:
return any(key in ORAL_CONTACT_VARIANTS for key in _krea2_variant_keys(row))
def _filter_expression_for_krea2_variant(row: dict[str, Any], expression: Any) -> Any:
if not _has_krea2_variant(row, TOP_VIEW_ORAL_VARIANT):
if not _has_krea2_oral_contact_variant(row):
return expression
clauses = [clause.strip() for clause in str(expression or "").split(";") if clause.strip()]
if not clauses:
@@ -114,7 +126,7 @@ def _filter_expression_for_krea2_variant(row: dict[str, Any], expression: Any) -
def _filter_camera_scene_for_krea2_variant(row: dict[str, Any], camera_scene: Any) -> str:
text = str(camera_scene or "")
if _has_krea2_variant(row, TOP_VIEW_ORAL_VARIANT) and "eye-level" in text.lower():
if _has_krea2_oral_contact_variant(row) and "eye-level" in text.lower():
return ""
return text