Files
ComfyUI-Ethanfel-Prompt-Bui…/softcore_text_policy.py
T

48 lines
1.6 KiB
Python

from __future__ import annotations
from typing import Any
def _clean(value: Any) -> str:
return " ".join(str(value or "").strip().split())
def softcore_cast_presence_phrase(
*,
same_cast: bool,
pov_labels: list[str] | tuple[str, ...] | None = None,
cast_label: str = "",
woman_label: str = "the woman",
) -> str:
pov_labels = [str(label) for label in (pov_labels or []) if str(label).strip()]
cast_label = _clean(cast_label)
woman_label = _clean(woman_label) or "the woman"
if same_cast and pov_labels:
return (
f"{woman_label} is framed from the POV participant's first-person creator camera, "
"with the POV participant implied by camera position or foreground body cues"
)
if same_cast:
visible_cast = cast_label or "the named cast"
verb = "share" if " and " in visible_cast or "," in visible_cast else "shares"
return f"{visible_cast} {verb} a styled creator-teaser frame"
return f"solo creator frame with {woman_label} as the only visible subject"
def softcore_caption_setup_phrase(*, same_cast: bool, target_auto: bool = False) -> str:
if same_cast:
return (
"The softcore side keeps the same adult cast together in a styled creator setup"
if target_auto
else "The same adult cast shares a styled creator setup"
)
return (
"The softcore side is a solo styled creator setup"
if target_auto
else "Solo styled creator setup"
)
def softcore_style_directive() -> str:
return "Use seductive creator-shot teaser styling."