Fix exact Krea2 POV oral routing
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user