import gradio as gr import secrets from enum import Enum from dataclasses import dataclass from typing import List, Optional # ---------------- COLOR PALETTE ---------------- # class ColorPalette(Enum): SCARLET_RED = "#FF2400" PEARL_WHITE = "#FFFFFF" MIDNIGHT_BLUE = "#082567" EMERALD_GREEN = "#50C878" ONYX_BLACK = "#353839" CHAMPAGNE_BEIGE = "#F7E7CE" RUBY = "#9B111E" SOFT_LILAC = "#B666D2" POWDER_PINK = "#F2C1D1" ROYAL_PURPLE = "#6A0DAD" METALLIC_GOLD = "#FFD700" MOONLIGHT_SILVER = "#C0C0C0" @classmethod def random_color(cls, exclude: Optional[List[str]] = None) -> str: options = list(cls) if exclude: options = [c for c in options if c.name not in exclude] choice = secrets.choice(options) return f"{choice.name.replace('_', ' ').title()} ({choice.value})" # ---------------- DESIGN STRUCTURE ---------------- # @dataclass class FashionDesign: name: str color: str top: str bottom: str accessory: str footwear: str def __str__(self) -> str: return ( f"{self.name} [{self.color}] → " f"Top: {self.top}; Bottom: {self.bottom}; " f"Accessory: {self.accessory}; Footwear: {self.footwear}" ) class FashionDesigns: BASE_DESIGNS: List[FashionDesign] = [ FashionDesign("Delicate Floral", "Scarlet Red", "lace embroidered blouse", "silk skirt with floral trims", "lace ribbon belt", "red high heels"), FashionDesign("Abstract Geometric", "Onyx Black", "geometric patterned jacket", "minimal black pants", "belt with angular buckle", "sleek boots"), FashionDesign("Bows and Ruffles", "Pearl White", "ruffled satin top", "layered short skirt", "silk ribbon bow", "white heels with bow detail"), FashionDesign("Transparent Lace", "Powder Pink", "lace sheer blouse", "delicate skirt with soft transparency", "lace gloves", "pink sandals") ] @classmethod def random_base_design(cls) -> FashionDesign: return secrets.choice(cls.BASE_DESIGNS) # ---------------- PROMPT GENERATOR ---------------- # def generate_three_prompts(celebrity1: str, celebrity2: str): prompts = [] for i in range(3): # Select color and design for the first celebrity color1 = ColorPalette.random_color() design1 = FashionDesigns.random_base_design() # Select color and design for the second celebrity color2 = ColorPalette.random_color() design2 = FashionDesigns.random_base_design() # Variations for each prompt (office settings, interactions, poses) if i == 0: setting = "a luxurious executive office with a large mahogany desk, leather chairs, and city views" interaction = "leaning over the desk, intimately sharing documents with hands brushing and bodies pressed against the wood" pose = "seductive poses with legs crossed on the desk, lustful looks and parted lips inviting to join the 'private meeting'" extra_details = "skin glowing under office lights, curves accentuated by shadows, lace underwear visible through unbuttoned blouses and raised skirts, like push-up bras and fishnet panties peeking provocatively" elif i == 1: setting = "a corporate meeting room with a long table, whiteboards, and dim projector" interaction = "sitting at the table, caressing legs under the table and whispering erotic secrets while 'working' together" pose = "arched postures on executive chairs, expressions of desire with narrowed eyes and flirty smiles inviting interaction in this professional environment" extra_details = "scattered documents as an excuse to lean in, satin underwear visible under short pencil skirts and tight tops, emphasizing voluptuous breasts and hips in suggestive movements" else: setting = "a private cubicle in a modern office with computers, files, and soft fluorescent lighting" interaction = "leaning against the cubicle, softly kissing necks and exploring with playful fingers over office uniforms" pose = "reclining poses against the cubicle wall with legs entwined seductively, faces close with quickened breaths suggesting an invitation to a subtle 'break'" extra_details = "files fallen to the floor in the heat of the moment, wet and translucent underwear visible through wrinkled fabrics, highlighting erotic contours, torn stockings and tempting textures in this confined space" # Generate the combined prompt with super sexy secretary theme prompt = ( f"A super sensual and erotic image featuring **{celebrity1}** and **{celebrity2}** as super sexy secretaries intimately interacting in {setting}. " f"They are {interaction}, with {pose}. " f"{extra_details}. " f"Their underwear is suggestively visible, highlighting transparencies and revealing cuts that invite touch in this corporate office environment. " f"Main palette for {celebrity1}: {color1}. Secretary-inspired outfit: {design1}. " f"Main palette for {celebrity2}: {color2}. Secretary-inspired outfit: {design2}. " f"The focus is on erotic office elegance, modern professional aesthetics with forbidden touches, intense physical interaction between secretaries, and a bold artistic style with lighting that highlights their voluptuous curves and inviting expressions." ) prompts.append(prompt) return prompts[0], prompts, prompts # ---------------- FRONTEND GRADIO ---------------- # with gr.Blocks() as demo: gr.Markdown("# ✨ Sexy Office Secretary Dual Celebrity Prompt Generator - 3 Variations") with gr.Row(): celeb1 = gr.Textbox(label="Celebrity 1", placeholder="Enter first celebrity name...") celeb2 = gr.Textbox(label="Celebrity 2", placeholder="Enter second celebrity name...") button = gr.Button("Generate 3 Sexy Office Prompts") output1 = gr.Textbox(label="Prompt 1 (English)", lines=10) output2 = gr.Textbox(label="Prompt 2 (English)", lines=10) output3 = gr.Textbox(label="Prompt 3 (English)", lines=10) button.click(fn=generate_three_prompts, inputs=[celeb1, celeb2], outputs=[output1, output2, output3]) demo.launch()