diff --git a/prompt_builder.py b/prompt_builder.py index 9045138..546461b 100644 --- a/prompt_builder.py +++ b/prompt_builder.py @@ -3565,16 +3565,16 @@ def _coworking_direction_detail( subject, pronoun = _coworking_subject_terms(subject_kind, pov_labels) if pov_labels: if "right side" in direction: - return f"{subject} is in right-side profile across the lower foreground ({foreground}); {midground} run horizontally behind {pronoun} toward {background}" + return f"{subject} is in right-side profile; {midground} run behind {pronoun} toward {background}, with coworking details kept at the frame edges" if "left side" in direction: - return f"{subject} is in left-side profile across the lower foreground ({foreground}); {midground} run horizontally behind {pronoun} toward {background}" + return f"{subject} is in left-side profile; {midground} run behind {pronoun} toward {background}, with coworking details kept at the frame edges" if "back-right" in direction or "back-left" in direction: - return f"{subject} is seen from a rear-quarter angle, turning back over one shoulder; {foreground} sits low in frame while {midground} lead into {background}" + return f"{subject} is seen from a rear-quarter angle, turning back over one shoulder; {midground} and {background} stay beyond {pronoun}, not in the lower foreground" if direction == "back view": - return f"the viewer looks past {subject}'s back toward {midground}, then into {background}, with POV body cues low in frame" + return f"the viewer looks past {subject}'s back toward {midground}, then into {background}; only POV body cues sit low in frame" if "front-right" in direction or "front-left" in direction: - return f"{subject} is close in a front-quarter view over the lower foreground ({foreground}); {midground} recede diagonally behind {pronoun} toward {background}" - return f"{subject} faces the viewer over the lower foreground ({foreground}); {midground} sit between {pronoun} and {background}" + return f"{subject} fills the first-person front-quarter view; {midground} recede diagonally behind {pronoun} toward {background}" + return f"{subject} faces the viewer in first-person view; {midground} and {background} stay behind {pronoun}, not between viewer and body" if "right side" in direction or "left side" in direction: return f"{subject} is held in side profile along the {foreground}; {midground} run laterally behind {pronoun}, with {background} still readable" if "back-right" in direction or "back-left" in direction: @@ -3589,6 +3589,12 @@ def _coworking_direction_detail( def _coworking_distance_detail(distance: str, profile: dict[str, str], subject_kind: str, pov_labels: list[str] | None = None) -> str: distance = str(distance or "").strip().lower() subject, _pronoun = _coworking_subject_terms(subject_kind, pov_labels) + if pov_labels: + if "wide" in distance or "full-body" in distance or "full body" in distance: + return f"wide POV keeps {subject} readable with coworking context behind them" + if "close" in distance: + return f"close POV keeps {subject} dominant with coworking context only at the sides or background" + return f"medium POV keeps {subject} dominant with room context behind them" if "wide" in distance or "full-body" in distance or "full body" in distance: return "wide crop keeps floor aisle, table rows, and window depth readable" if "close" in distance: @@ -3599,6 +3605,14 @@ def _coworking_distance_detail(distance: str, profile: dict[str, str], subject_k def _coworking_elevation_detail(elevation: str, profile: dict[str, str], subject_kind: str, pov_labels: list[str] | None = None) -> str: elevation = str(elevation or "").strip().lower() _subject, pronoun = _coworking_subject_terms(subject_kind, pov_labels) + if pov_labels: + if "low-angle" in elevation: + return f"low angle keeps POV body cues low while windows and partition lines rise behind {pronoun}" + if "elevated" in elevation: + return f"elevated angle shows {pronoun} from above with tabletop and glass lines only behind or beside the action" + if "high-angle" in elevation: + return f"high angle looks down from the viewer's position with desks and aisle only in the background" + return f"eye-level angle keeps tabletop lines and glass seams behind {pronoun}" if "low-angle" in elevation: return f"low angle keeps the foreground desk edge low while windows and partitions rise behind {pronoun}" if "elevated" in elevation: