Expand private scene camera profiles
This commit is contained in:
+277
-6
@@ -29,7 +29,7 @@ SCENE_CAMERA_PROFILES: tuple[dict[str, Any], ...] = (
|
||||
{
|
||||
"key": "business_cafe",
|
||||
"family": "coworking",
|
||||
"terms": ("business cafe", "work cafe", "cafe"),
|
||||
"terms": ("business cafe", "work cafe", "coworking counter", "cafe counter with laptops", "coffee-counter work spots"),
|
||||
"layout_label": "Business cafe camera layout",
|
||||
"place": "business cafe coworking counter",
|
||||
"foreground": "counter edge, laptop corner, and small plant",
|
||||
@@ -91,8 +91,6 @@ SCENE_CAMERA_PROFILES: tuple[dict[str, Any], ...] = (
|
||||
"large library",
|
||||
"grand library",
|
||||
"reading room",
|
||||
"bookshelves",
|
||||
"book shelves",
|
||||
"book stacks",
|
||||
"rare-books",
|
||||
"rare books",
|
||||
@@ -110,6 +108,158 @@ SCENE_CAMERA_PROFILES: tuple[dict[str, Any], ...] = (
|
||||
"default": "classical library frame with the subjects near a bookshelf edge and long shelf depth behind them",
|
||||
},
|
||||
},
|
||||
{
|
||||
"key": "creator_bedroom",
|
||||
"family": "private_creator",
|
||||
"terms": (
|
||||
"creator bedroom",
|
||||
"content setup",
|
||||
"phone tripod",
|
||||
"ring light",
|
||||
"phone on a mini tripod",
|
||||
"creator studio",
|
||||
"creator-shot framing",
|
||||
"vertical creator-video",
|
||||
),
|
||||
"layout_label": "Creator room camera layout",
|
||||
"place": "private creator room",
|
||||
"foreground": "bed edge, phone tripod, and rumpled sheets",
|
||||
"midground": "ring light stand, warm lamps, pillows, and creator props",
|
||||
"background": "soft bedding, curtains, mirror edge, and warm private-room depth",
|
||||
"detail_label": "creator-room details",
|
||||
"composition": {
|
||||
"woman": "creator-room frame with the woman near the bed edge and phone-tripod setup behind her",
|
||||
"man": "creator-room frame with the man near the bed edge and phone-tripod setup behind him",
|
||||
"default": "creator-room frame with the subjects near the bed edge and phone-tripod setup behind them",
|
||||
},
|
||||
},
|
||||
{
|
||||
"key": "mirror_room",
|
||||
"family": "private_creator",
|
||||
"terms": (
|
||||
"mirror selfie setup",
|
||||
"mirror wall",
|
||||
"mirror-facing",
|
||||
"floor mirror",
|
||||
"vanity mirror",
|
||||
"phone reflection",
|
||||
"reflected bodies",
|
||||
"black lacquer mirror",
|
||||
"neon mirror wall",
|
||||
),
|
||||
"layout_label": "Mirror-room camera layout",
|
||||
"place": "private mirror room",
|
||||
"foreground": "mirror edge, reflected phone angle, and floor reflection line",
|
||||
"midground": "bedside surface, vanity bulbs, glossy furniture, and reflected body plane",
|
||||
"background": "mirror depth, warm lamps, curtains, and repeated reflected sightlines",
|
||||
"detail_label": "mirror-room details",
|
||||
"composition": {
|
||||
"woman": "mirror-room frame with the woman aligned to the reflected phone angle and room depth behind her",
|
||||
"man": "mirror-room frame with the man aligned to the reflected phone angle and room depth behind him",
|
||||
"default": "mirror-room frame with the subjects aligned to the reflected phone angle and room depth behind them",
|
||||
},
|
||||
},
|
||||
{
|
||||
"key": "boudoir_bedroom",
|
||||
"family": "private_creator",
|
||||
"terms": (
|
||||
"boudoir bedroom",
|
||||
"silk-sheet bed",
|
||||
"silk sheets",
|
||||
"velvet headboard",
|
||||
"canopy bed",
|
||||
"four-poster bed",
|
||||
"satin bedding",
|
||||
"bedside phone",
|
||||
"hotel bedroom",
|
||||
),
|
||||
"layout_label": "Boudoir bedroom camera layout",
|
||||
"place": "boudoir bedroom",
|
||||
"foreground": "sheet fold, bedside edge, and pillow line",
|
||||
"midground": "rumpled bedding, warm lamps, canopy curtains, and soft floor shadows",
|
||||
"background": "headboard, drapes, mirror edge, and intimate bedroom depth",
|
||||
"detail_label": "bedroom details",
|
||||
"composition": {
|
||||
"woman": "boudoir bedroom frame with the woman on or beside the bed and warm bedroom depth behind her",
|
||||
"man": "boudoir bedroom frame with the man on or beside the bed and warm bedroom depth behind him",
|
||||
"default": "boudoir bedroom frame with the subjects on or beside the bed and warm bedroom depth behind them",
|
||||
},
|
||||
},
|
||||
{
|
||||
"key": "bathroom_shower",
|
||||
"family": "private_creator",
|
||||
"terms": (
|
||||
"bathroom counter",
|
||||
"private bathroom",
|
||||
"shower room",
|
||||
"wet tile",
|
||||
"steam",
|
||||
"steamy",
|
||||
"glass reflections",
|
||||
"vanity counter",
|
||||
"wet towels",
|
||||
),
|
||||
"layout_label": "Bathroom camera layout",
|
||||
"place": "private bathroom",
|
||||
"foreground": "counter edge, glass partition line, and towel edge",
|
||||
"midground": "mirror haze, vanity bulbs, wet tile, and reflected glass seams",
|
||||
"background": "shower wall, warm reflected light, steam, and tight private-room depth",
|
||||
"detail_label": "bathroom details",
|
||||
"composition": {
|
||||
"woman": "bathroom frame with the woman near the mirror or glass partition and tile depth behind her",
|
||||
"man": "bathroom frame with the man near the mirror or glass partition and tile depth behind him",
|
||||
"default": "bathroom frame with the subjects near the mirror or glass partition and tile depth behind them",
|
||||
},
|
||||
},
|
||||
{
|
||||
"key": "private_studio",
|
||||
"family": "private_creator",
|
||||
"terms": (
|
||||
"fetish studio",
|
||||
"private studio",
|
||||
"glossy black floor",
|
||||
"harness-wall",
|
||||
"chrome studio",
|
||||
"industrial loft",
|
||||
"neon-lit lacquer",
|
||||
"reflective panels",
|
||||
"controlled rim light",
|
||||
),
|
||||
"layout_label": "Private studio camera layout",
|
||||
"place": "private studio set",
|
||||
"foreground": "floor reflection edge, prop stand, and lighting-stand line",
|
||||
"midground": "controlled lights, reflective panels, backdrop seams, and studio props",
|
||||
"background": "dark curtains, glossy walls, rim light, and staged private-set depth",
|
||||
"detail_label": "studio details",
|
||||
"composition": {
|
||||
"woman": "private studio frame with the woman on the glossy floor plane and controlled lights behind her",
|
||||
"man": "private studio frame with the man on the glossy floor plane and controlled lights behind him",
|
||||
"default": "private studio frame with the subjects on the glossy floor plane and controlled lights behind them",
|
||||
},
|
||||
},
|
||||
{
|
||||
"key": "car_interior",
|
||||
"family": "private_creator",
|
||||
"terms": (
|
||||
"parked car interior",
|
||||
"private car backseat",
|
||||
"car backseat",
|
||||
"dashboard glow",
|
||||
"tinted windows",
|
||||
"seat reflections",
|
||||
),
|
||||
"layout_label": "Car interior camera layout",
|
||||
"place": "parked car interior",
|
||||
"foreground": "seat edge, door frame, and dashboard glow",
|
||||
"midground": "upholstery seams, window reflections, center console, and tight cabin geometry",
|
||||
"background": "tinted windows, rear seat depth, and enclosed car interior shadows",
|
||||
"detail_label": "car-interior details",
|
||||
"composition": {
|
||||
"woman": "car interior frame with the woman inside the tight cabin geometry and window reflections behind her",
|
||||
"man": "car interior frame with the man inside the tight cabin geometry and window reflections behind him",
|
||||
"default": "car interior frame with the subjects inside the tight cabin geometry and window reflections behind them",
|
||||
},
|
||||
},
|
||||
{
|
||||
"key": "hotel_corridor",
|
||||
"family": "semi_public",
|
||||
@@ -175,7 +325,6 @@ SCENE_CAMERA_PROFILES: tuple[dict[str, Any], ...] = (
|
||||
"prop racks",
|
||||
"costume racks",
|
||||
"costume rails",
|
||||
"velvet curtains",
|
||||
"stage ropes",
|
||||
"scenery flats",
|
||||
),
|
||||
@@ -279,7 +428,6 @@ SCENE_CAMERA_PROFILES: tuple[dict[str, Any], ...] = (
|
||||
"station service passage",
|
||||
"metal lockers",
|
||||
"vending machines",
|
||||
"tiled walls",
|
||||
"utility doors",
|
||||
"warning stripes",
|
||||
),
|
||||
@@ -355,6 +503,13 @@ SCENE_CAMERA_PROFILE_KEYS = {str(profile["key"]): dict(profile) for profile in S
|
||||
|
||||
THEME_PROFILE_KEYS = {
|
||||
"classical_library": "classical_library",
|
||||
"creator_bedroom": "creator_bedroom",
|
||||
"mirror_room": "mirror_room",
|
||||
"boudoir_bedroom": "boudoir_bedroom",
|
||||
"bathroom_shower": "bathroom_shower",
|
||||
"private_studio": "private_studio",
|
||||
"car_interior": "car_interior",
|
||||
"fetish_studio": "private_studio",
|
||||
"hotel_corridor": "hotel_corridor",
|
||||
"parking_garage": "parking_garage",
|
||||
"theater_backstage": "theater_backstage",
|
||||
@@ -366,6 +521,118 @@ THEME_PROFILE_KEYS = {
|
||||
"restaurant_private_booth": "restaurant_private_booth",
|
||||
}
|
||||
|
||||
SCENE_SLUG_PROFILE_KEYS = {
|
||||
"coworking_lounge_window": "coworking_lounge",
|
||||
"business_cafe_counter": "business_cafe",
|
||||
"office_afterhours_affair": "office_after_hours",
|
||||
"classical_large_library": "classical_library",
|
||||
"old_world_reading_room": "classical_library",
|
||||
"hidden_library_stacks": "classical_library",
|
||||
"library_stacks_secret": "classical_library",
|
||||
"creator_bedroom_ring_light": "creator_bedroom",
|
||||
"onlyfans_mirror_bedroom": "mirror_room",
|
||||
"walk_in_closet_tryon": "mirror_room",
|
||||
"hotel_bed_phone_tripod": "creator_bedroom",
|
||||
"bathroom_counter_selfie": "bathroom_shower",
|
||||
"vanity_ring_light_close": "mirror_room",
|
||||
"apartment_floor_content": "creator_bedroom",
|
||||
"balcony_phone_selfie": "creator_bedroom",
|
||||
"car_interior_creator_selfie": "car_interior",
|
||||
"shower_steam_phone_reflection": "bathroom_shower",
|
||||
"studio_bedroom_backdrop": "creator_bedroom",
|
||||
"couch_lamp_creator_clip": "creator_bedroom",
|
||||
"large_bedroom_mirror_selfie": "mirror_room",
|
||||
"antique_mirror_boudoir": "mirror_room",
|
||||
"bathroom_mirror_haze": "bathroom_shower",
|
||||
"closet_full_length_mirror": "mirror_room",
|
||||
"hotel_mirror_city_view": "mirror_room",
|
||||
"neon_mirror_wall": "mirror_room",
|
||||
"gold_vanity_mirror": "mirror_room",
|
||||
"black_lacquer_mirror_room": "mirror_room",
|
||||
"hardcore_bedroom_mirror_pair": "mirror_room",
|
||||
"hardcore_hotel_mirror_pair": "mirror_room",
|
||||
"hardcore_shower_mirror_pair": "bathroom_shower",
|
||||
"hardcore_threesome_mirror_suite": "mirror_room",
|
||||
"warm_boudoir_canopy_bed": "boudoir_bedroom",
|
||||
"silk_bed_close_creator": "boudoir_bedroom",
|
||||
"velvet_headboard_bedroom": "boudoir_bedroom",
|
||||
"four_poster_lingerie_room": "boudoir_bedroom",
|
||||
"hotel_satin_bedroom": "boudoir_bedroom",
|
||||
"rose_lamp_bedroom": "boudoir_bedroom",
|
||||
"black_latex_studio_floor": "private_studio",
|
||||
"red_velvet_lacquer_room": "private_studio",
|
||||
"industrial_loft_private_set": "private_studio",
|
||||
"neon_lacquer_private_room": "private_studio",
|
||||
"harness_wall_studio": "private_studio",
|
||||
"chrome_fetish_set": "private_studio",
|
||||
"costume_dressing_room_phone": "theater_backstage",
|
||||
"burlesque_stage_close": "theater_backstage",
|
||||
"cabaret_backstage_vanity": "theater_backstage",
|
||||
"after_dark_private_office": "office_after_hours",
|
||||
"fantasy_parlor_content_set": "private_studio",
|
||||
"cosplay_hotel_mirror": "mirror_room",
|
||||
"hardcore_bedroom_phone_tripod": "creator_bedroom",
|
||||
"hardcore_hotel_bed_city": "boudoir_bedroom",
|
||||
"hardcore_mirror_bedroom": "mirror_room",
|
||||
"hardcore_low_mattress_studio": "private_studio",
|
||||
"hardcore_velvet_room": "private_studio",
|
||||
"hardcore_shower_room": "bathroom_shower",
|
||||
"hardcore_lounge_couch": "private_studio",
|
||||
"hardcore_floor_cushion_room": "boudoir_bedroom",
|
||||
"hardcore_ring_light_bed": "creator_bedroom",
|
||||
"hardcore_bathroom_counter": "bathroom_shower",
|
||||
"hardcore_walk_in_closet_floor": "mirror_room",
|
||||
"hardcore_car_backseat": "car_interior",
|
||||
"bed_edge_close_contact": "boudoir_bedroom",
|
||||
"low_bed_mirror_angle": "mirror_room",
|
||||
"hotel_bed_overhead": "boudoir_bedroom",
|
||||
"floor_mattress_creator_set": "creator_bedroom",
|
||||
"canopy_bed_explicit_set": "boudoir_bedroom",
|
||||
"velvet_bedroom_wide": "boudoir_bedroom",
|
||||
"penetration_mirror_bedroom": "mirror_room",
|
||||
"penetration_edge_of_bed": "boudoir_bedroom",
|
||||
"penetration_low_mattress": "private_studio",
|
||||
"penetration_couch_lounge": "private_studio",
|
||||
"penetration_shower_bench": "bathroom_shower",
|
||||
"penetration_floor_cushions": "boudoir_bedroom",
|
||||
"oral_bed_kneeling_close": "boudoir_bedroom",
|
||||
"oral_mirror_floor": "mirror_room",
|
||||
"oral_couch_front_view": "private_studio",
|
||||
"oral_shower_steam": "bathroom_shower",
|
||||
"oral_vanity_floor": "mirror_room",
|
||||
"oral_hotel_bed_close": "boudoir_bedroom",
|
||||
"anal_rear_mirror_bed": "mirror_room",
|
||||
"anal_bent_over_couch": "private_studio",
|
||||
"anal_edge_bed_low_angle": "boudoir_bedroom",
|
||||
"anal_shower_wall": "bathroom_shower",
|
||||
"anal_velvet_bench": "private_studio",
|
||||
"anal_floor_mattress_mirror": "mirror_room",
|
||||
"threesome_wide_bedroom": "boudoir_bedroom",
|
||||
"threesome_hotel_suite": "boudoir_bedroom",
|
||||
"threesome_floor_cushions": "boudoir_bedroom",
|
||||
"threesome_studio_mattress": "private_studio",
|
||||
"threesome_shower_room": "bathroom_shower",
|
||||
"threesome_velvet_lounge": "private_studio",
|
||||
"group_suite_wide_bed": "boudoir_bedroom",
|
||||
"group_studio_mattress_room": "private_studio",
|
||||
"group_velvet_orgy_room": "private_studio",
|
||||
"group_lounge_couches": "private_studio",
|
||||
"group_floor_pillow_room": "boudoir_bedroom",
|
||||
"group_shower_spa_room": "bathroom_shower",
|
||||
"group_rooftop_private_party": "creator_bedroom",
|
||||
"group_hotel_party_bedroom": "boudoir_bedroom",
|
||||
"group_backstage_private_room": "theater_backstage",
|
||||
"group_neon_loft_room": "private_studio",
|
||||
"group_mirror_wall_suite": "mirror_room",
|
||||
"group_lacquer_mirror_lounge": "mirror_room",
|
||||
"climax_bed_close_flash": "boudoir_bedroom",
|
||||
"climax_mirror_counter": "mirror_room",
|
||||
"climax_floor_sheets": "boudoir_bedroom",
|
||||
"climax_hotel_bed_flash": "boudoir_bedroom",
|
||||
"climax_shower_tile": "bathroom_shower",
|
||||
"climax_velvet_couch": "private_studio",
|
||||
}
|
||||
|
||||
PROFILE_TEXT_FIELDS = (
|
||||
"key",
|
||||
"family",
|
||||
@@ -475,13 +742,17 @@ def _scene_entry_text(scene_entry: Any) -> str:
|
||||
def _scene_entry_profile_key(scene_entry: Any) -> str:
|
||||
if not isinstance(scene_entry, dict):
|
||||
return ""
|
||||
return str(
|
||||
explicit = str(
|
||||
scene_entry.get("scene_camera_profile_key")
|
||||
or scene_entry.get("camera_profile_key")
|
||||
or scene_entry.get("camera_profile")
|
||||
or scene_entry.get("profile")
|
||||
or ""
|
||||
).strip()
|
||||
if explicit:
|
||||
return explicit
|
||||
slug = str(scene_entry.get("slug") or "").strip()
|
||||
return SCENE_SLUG_PROFILE_KEYS.get(slug, "")
|
||||
|
||||
|
||||
def _scene_entry_profile(scene_entry: Any) -> dict[str, Any]:
|
||||
|
||||
Reference in New Issue
Block a user