import random import gradio as gr # Dataset con elementos mejorados para mayor variedad fashion_elements = { "hairstyles": [ "long wavy auburn hair with elegant curls", "long straight platinum blonde hair flowing down", "long curly deep brown hair with soft waves", "long layered red hair with voluminous style", "long sleek black hair with glossy finish", "long beach wave golden blonde hair", "long braided chestnut hair with loose ends", "intricate updo with honey highlights", "long messy mahogany hair", "long straight cherry red hair", "long braided platinum hair with twists", "long updo with strawberry blonde", "long ponytail with sandy blonde" ], "discovery_moments": [ "momentarily revealing lingerie as she adjusts her posture", "subtly exposing lingerie while shifting weight between legs", "accidentally revealing intimate details during a natural movement", "playfully teasing the visibility of lingerie through fabric movement", "unintentionally showing lingerie while reaching for an object", "delicately revealing underwear as she crosses and uncrosses legs", "offering a fleeting glimpse of lingerie during a graceful turn", "exposing intimate apparel through the sheer fabric of her clothing", "revealing lingerie edges while sitting down or standing up", "showing subtle hints of underwear through strategic posing", "creating an intimate reveal as the fabric clings to her form", "allowing a private view of her lingerie during an unguarded moment", "exposing delicate details through the transparency of her garment", "revealing hidden layers through calculated body movements", "creating sensual tension through partial concealment and revelation" ],"voyeuristic_angles": [ "extreme low angle from floor level, tilted upward to capture intimate details", "worm's-eye view focusing on the revealing moment from below", "low angle emphasizing the voyeuristic perspective of discovered lingerie", "camera positioned as if secretly observing from a hidden vantage point", "upward angle creating the sensation of an unauthorized glimpse", "shot from knee level capturing the accidental exposure", "perspective from below simulating a hidden camera view", "low vantage point emphasizing the forbidden nature of the view", "angle that suggests the viewer is discovering something intimate", "camera placement that enhances the feeling of witnessing a private moment", "view from beneath creating a sense of intimate discovery", "low-angle shot that makes the reveal feel more personal and intrusive", "perspective that captures the moment as if by chance observation", "angle that emphasizes the vulnerability of the exposed moment", "shot composition that feels like a secret being uncovered" ], "lingerie_reveal_actions": [ "adjusting her stockings while revealing the thong underneath", "smoothing her skirt only to expose more lingerie accidentally", "reaching up high causing her outfit to ride up and show underwear", "bending over to pick something up, offering a view of her thong", "crossing her legs in a way that pulls the fabric taut against lingerie", "stretching languidly, causing her clothing to shift and reveal", "turning quickly, creating a momentary flash of intimate apparel", "sitting down with a graceful motion that exposes lingerie edges", "standing up from a chair, her skirt riding up to show the thong", "playing with her hair while her other hand accidentally lifts her skirt", "leaning forward to examine something, revealing her lingerie line", "arching her back in a stretch that lifts her clothing", "shifting position on a sofa, causing her dress to hike up", "bending at the waist to tie her shoe, exposing her underwear", "reclining back with legs slightly parted, hinting at her thong" ], "lingerie_sets": [ "black lace set with push-up bra, floral thong, and sheer thigh-high stockings with a lace top", "red satin set with underwire bra, bow accents thong, and fishnet thigh-high stockings with a pattern", "white mesh set with sheer-cup bra, transparent thong, and silk thigh-high stockings with a smooth finish", "pink lace set with demi-cup bra, scalloped-edge thong, and thigh-high stockings with a garter", "blue silk set with smooth-cup bra, a sleek thong, and velvet thigh-high stockings with a soft texture", "green velvet set with padded bra, a textured thong, and satin thigh-high stockings with a subtle shine", "purple satin set with balconette bra, a glossy thong, and mesh thigh-high stockings with a net pattern", "yellow chiffon set with a light-coverage bra, a light thong, and thigh-high stockings with a light, airy feel", "black mesh set with transparent-strap bra, a net-pattern thong, and opaque thigh-high stockings with a matte look", "red lace set with embroidered bra, an embroidered thong, and sheer thigh-high stockings with a red tint", "white satin set with pearl-accented bra, a pearl-detailed thong, and fishnet thigh-high stockings with a diamond pattern", "pink silk set with delicate-lace-trim bra, a delicate-strap thong, and shiny silk thigh-high stockings", "blue velvet set with a plush bra, a plush thong, and lace thigh-high stockings with a floral design", "green lace set with a floral-pattern bra, a leaf-motif thong, and plush velvet thigh-high stockings", "purple mesh set with sheer-panel bra, sheer-panel thong, and luxurious satin thigh-high stockings", "yellow satin set with a shiny bra, a glossy thong, and transparent mesh thigh-high stockings", "black chiffon set with a flowy-edged bra, a flowy-edged thong, and flowy chiffon thigh-high stockings", "red mesh set with a bold bra, a bold-line thong, and opaque thigh-high stockings with a bold look", "white lace set with a romantic bra, a romantic thong, and sheer thigh-high stockings for a subtle touch", "pink velvet set with a soft-textured bra, a soft-pile thong, and fun fishnet thigh-high stockings", "blue satin set with a sleek-line bra, a sleek thong, and elegant silk thigh_high stockings", "green silk set with an elegant-feel bra, an elegant-drape thong, and romantic lace thigh_high stockings", "purple chiffon set with an airy bra, an airy thong, and deep velvet thigh_high stockings", "yellow lace set with a bright bra, a bright thong, and bright satin thigh_high stockings", "black satin set with a luxurious bra, a luxurious thong, and edgy mesh thigh_high stockings", "red velvet set with a deep-hued bra, a deep-colored thong, and airy chiffon thigh_high stockings", "white mesh set with a modern bra, a modern-grid thong, and clean opaque thigh_high stockings", "pink chiffon set with a feminine bra, a feminine-ruffle thong, and blush-pink sheer thigh_high stockings", "blue lace set with a wave-pattern bra, a wave-pattern thong, and playful fishnet thigh_high stockings", "green satin set with a natural-color bra, a natural-hued thong, and natural-color silk thigh_high stockings", "purple velvet set with a royal-style bra, a royal-vibe thong, and ornate lace thigh_high stockings", "yellow mesh set with a sunny-transparency bra, a sunny thong, and sunny velvet thigh_high stockings", "black lace set with a gothic bra, a gothic-element thong, and thigh-high stockings with a shadow-black lace top", "red silk set with a passionate bra, a passionate thong, and passionate-red mesh thigh-high stockings", "white chiffon set with a pure-white bra, a pure-white thong, and pure-white chiffon thigh-high stockings", "pink satin set with a blush-pink bra, a blush-pink thong, and soft opaque thigh-high stockings", "blue velvet set with a deep-blue bra, a deep-blue thong, and sheer thigh-high stockings in a calm blue", "green lace set with an envious-green bra, an envious-green thong, and green fishnet thigh-high stockings", "purple mesh set with a mysterious bra, a mysterious thong, and lavender fishnet thigh-high stockings", "yellow chiffon set with a joyful-yellow bra, a joyful-yellow thong, and sunny-yellow silk thigh-high stockings", "black silk set with a night-black bra, a night-black thong, and shadow-black lace thigh-high stockings", "red satin set with a fire-red bra, a fire-red thong, and deep-red velvet thigh-high stockings", "white velvet set with a snow-white bra, a snow-white thong, and white-sheer thigh-high stockings", "pink lace set with a rose-pink bra, a rose-pink thong, and pink-rose lace thigh-high stockings", "blue mesh set with a sky-blue bra, a sky-blue thong, and sky-blue mesh thigh-high stockings", "green chiffon set with a forest-green bra, a forest-green thong, and forest-green chiffon thigh-high stockings", "purple satin set with a lavender bra, a lavender thong, and lavender lace thigh-high stockings", "yellow velvet set with a sun-yellow bra, a sun-yellow thong, and sun-yellow velvet thigh-high stockings", "black mesh set with a shadow-black bra, a shadow-black thong, and shadow-black mesh thigh-high stockings", "red chiffon set with a sunset-red bra, a sunset-red thong, and sunset-red chiffon thigh-high stockings" ], "colors": [ "deep ruby red", "classic black", "emerald green", "sapphire blue", "royal purple", "champagne gold", "silver metallic", "burgundy wine", "chocolate brown", "ivory white", "hot pink", "electric blue", "vibrant orange", "forest green", "midnight navy", "soft lavender", "peachy coral", "platinum silver", "rose gold", "caramel nude" ], "outfits": [ "a sleek fitted mini dress with a subtle texture", "a stylish A-line mini skirt paired with a delicate blouse", "a form-fitting bodycon dress with elegant draping", "a sophisticated sheath mini dress with unique detailing", "a playful skater dress with a flattering silhouette", "a chic wrap mini dress that accentuates the waist", "a trendy slip dress with a luxurious satin finish", "a tailored pencil mini skirt with a modern cut", "a flowing chiffon mini dress with intricate patterns", "a form-fitting leather mini skirt with bold accents", ], "expressions": [ "unaware of being observed, natural and relaxed", "slightly self-conscious but continuing her actions", "lost in thought, completely natural in her movements", "playfully teasing but pretending not to notice the camera", "focused on her task, unaware of the revealing moment", "exuding quiet confidence while her lingerie becomes visible", "appearing distracted, allowing natural exposure to occur", "maintaining composure while her clothing shifts revealingly", "exhibiting casual elegance despite the intimate exposure", "completely absorbed in the moment, natural and unposed", "displaying innocent unawareness of the camera's presence", "showing subtle confidence in her accidental revelation", "maintaining natural grace during the unintentional exposure", "expressing quiet contemplation while partially exposed", "radiating natural beauty in the unguarded moment" ], "backgrounds": [ "a luxurious bedroom with soft ambient lighting", "a modern office space during after-hours", "a chic studio apartment with intimate atmosphere", "a dimly lit lounge with moody shadows", "a stylish hotel room with elegant decor", "an industrial loft with dramatic lighting", "a minimalist living space with clean lines", "a Parisian balcony with romantic ambiance", "a vintage boudoir with ornate details", "a serene garden setting with natural beauty" ], "lighting": [ "soft natural window light creating intimate shadows", "dramatic chiaroscuro lighting emphasizing curves and reveals", "warm golden hour glow enhancing skin tones", "studio lighting with softboxes for a polished look", "ambient moody lighting adding mystery and depth", "rim lighting to accentuate silhouette and intimate details", "cinematic lighting with subtle color grading", "ethereal backlight creating a halo effect", "dynamic spotlighting focusing on the revealed areas", "low-key lighting enhancing the voyeuristic atmosphere" ], "stockings": [ "sheer thigh-high stockings with a lace top", "fishnet thigh-high stockings with a pattern", "silk thigh-high stockings with a smooth finish", "thigh-high stockings with a garter", "velvet thigh-high stockings with a soft texture", "satin thigh-high stockings with a subtle shine", "mesh thigh-high stockings with a net pattern", "thigh-high stockings with a light, airy feel", "opaque thigh-high stockings with a matte look", "sheer thigh-high stockings with a red tint", "fishnet thigh-high stockings with a diamond pattern", "shiny silk thigh-high stockings", "lace thigh-high stockings with a floral design", "plush velvet thigh-high stockings", "luxurious satin thigh-high stockings", "transparent mesh thigh-high stockings", "flowy chiffon thigh-high stockings", "opaque thigh-high stockings with a bold look", "sheer thigh-high stockings for a subtle touch", "fun fishnet thigh-high stockings", "elegant silk thigh-high stockings", "romantic lace thigh-high stockings", "deep velvet thigh-high stockings", "bright satin thigh-high stockings", "edgy mesh thigh-high stockings", "airy chiffon thigh-high stockings", "clean opaque thigh-high stockings", "blush-pink sheer thigh-high stockings", "playful fishnet thigh-high stockings", "natural-color silk thigh-high stockings", "ornate lace thigh-high stockings", "sunny velvet thigh-high stockings", "thigh-high stockings with a shadow-black lace top", "passionate-red mesh thigh-high stockings", "pure-white chiffon thigh-high stockings", "soft opaque thigh-high stockings", "sheer thigh-high stockings in a calm blue", "green fishnet thigh-high stockings", "lavender fishnet thigh-high stockings", "sunny-yellow silk thigh-high stockings", "shadow-black lace thigh-high stockings", "deep-red velvet thigh-high stockings", "white-sheer thigh-high stockings", "pink-rose lace thigh-high stockings", "sky-blue mesh thigh-high stockings", "forest-green chiffon thigh-high stockings", "lavender lace thigh-high stockings", "sun-yellow velvet thigh-high stockings", "shadow-black mesh thigh-high stockings", "sunset-red chiffon thigh-high stockings" ], "lingerie_thongs": [ "floral thong", "bow accents thong", "transparent thong", "scalloped-edge thong", "a sleek thong", "a textured thong", "a glossy thong", "a light thong", "a net-pattern thong", "an embroidered thong", "a pearl-detailed thong", "a delicate-strap thong", "a plush thong", "a leaf-motif thong", "sheer-panel thong", "a shiny thong", "a flowy-edged thong", "a bold-line thong", "a romantic thong", "a soft-pile thong", "a sleek thong", "an elegant-drape thong", "an airy thong", "a bright thong", "a luxurious thong", "a deep-colored thong", "a modern-grid thong", "a feminine-ruffle thong", "a wave-pattern thong", "a natural-hued thong", "a royal-vibe thong", "a sunny thong", "a gothic-element thong", "a passionate thong", "a pure-white thong", "a blush-pink thong", "a deep-blue thong", "an envious-green thong", "a mysterious thong", "a joyful-yellow thong", "a night-black thong", "a fire-red thong", "a snow-white thong", "a rose-pink thong", "a sky-blue thong", "a sky-blue thong", "a forest-green thong", "a lavender thong", "a sun-yellow thong", "a shadow-black thong", "a sunset-red thong" ], "lingerie_bras": [ "push-up bra", "underwire bra", "sheer-cup bra", "demi-cup bra", "smooth-cup bra", "padded bra", "balconette bra", "a light-coverage bra", "transparent-strap bra", "embroidered bra", "pearl-accented bra", "delicate-lace-trim bra", "a plush bra", "a floral-pattern bra", "sheer-panel bra", "a shiny bra", "a flowy-edged bra", "a bold bra", "a romantic bra", "a soft-textured bra", "a sleek-line bra", "an elegant-feel bra", "an airy bra", "a bright bra", "a luxurious bra", "a deep-hued bra", "a modern bra", "a feminine bra", "a wave-pattern bra", "a natural-color bra", "a royal-style bra", "a sunny-transparency bra", "a gothic bra", "a passionate bra", "a pure-white bra", "a blush-pink bra", "a deep-blue bra", "an envious-green bra", "a mysterious bra", "a joyful-yellow bra", "a night-black bra", "a fire-red bra", "a snow-white bra", "a rose-pink bra", "a sky-blue bra", "a forest-green bra", "a lavender bra", "a sun-yellow bra", "a shadow-black bra", "a sunset-red bra" ] } class FashionPromptGenerator: def __init__(self): self.fashion_elements = fashion_elements self.previous_prompts = set() def generate_unique_prompt(self, celebrity_name): """Genera un prompt único evitando repeticiones""" max_attempts = 10 for attempt in range(max_attempts): prompt = self._build_prompt(celebrity_name) prompt_hash = hash(prompt) if prompt_hash not in self.previous_prompts: self.previous_prompts.add(prompt_hash) return prompt # Si no encuentra único después de varios intentos, devuelve igual return self._build_prompt(celebrity_name) def _build_prompt(self, celebrity_name): primary_color = random.choice(self.fashion_elements["colors"]) secondary_color = random.choice([c for c in self.fashion_elements["colors"] if c != primary_color]) outfit = random.choice(self.fashion_elements["outfits"]) thong = random.choice(self.fashion_elements["lingerie_thongs"]) bra = random.choice(self.fashion_elements["lingerie_bras"]) if random.random() > 0.3 else None lingerie_item = f"{primary_color} {thong}" if bra: lingerie_item += f" and {secondary_color} {bra}" discovery_moment = random.choice(self.fashion_elements["discovery_moments"]) reveal_action = random.choice(self.fashion_elements["lingerie_reveal_actions"]) voyeur_angle = random.choice(self.fashion_elements["voyeuristic_angles"]) hairstyle = random.choice(self.fashion_elements["hairstyles"]) background = random.choice(self.fashion_elements["backgrounds"]) lighting = random.choice(self.fashion_elements["lighting"]) expression = random.choice(self.fashion_elements["expressions"]) stocking = f"{primary_color} {random.choice(self.fashion_elements['stockings'])}" prompt = f""" Voyeuristic fashion photograph of {celebrity_name}, captured from {voyeur_angle}. The composition creates an intimate, almost forbidden viewing experience, {discovery_moment}. She is {reveal_action}, creating a natural and unposed moment of exposure. She wears a {primary_color} {outfit} that subtly reveals her {lingerie_item} during movement. Complemented by {stocking}. Her {hairstyle} frames her face as she maintains {expression}. **Scene & Atmosphere:** - **Setting:** {background} with {lighting} - **Composition:** Full-body shot from below, maintaining complete figure visibility while emphasizing the intimate reveal - **Mood:** Sensual, voyeuristic, natural, and subtly erotic - **Focus:** Sharp detail on the revealed lingerie and facial expression, with soft background blur **Technical Details:** - Shot on professional DSLR with 85mm prime lens - Shallow depth of field focusing on the intimate moment - Natural skin tones with warm color grading - Ultra HD resolution, professional retouching The image captures a fleeting, intimate moment that feels both spontaneous and beautifully composed, emphasizing the sensual discovery of hidden lingerie through natural movement and expert framing. Negative prompt: cropped body, cut off limbs, out of frame, border, harsh shadows, uneven lighting, (bad anatomy, deformed, ugly), blurry, noisy, oversaturated, text, watermark, signature, (anime, cartoon, 3d, painting), monochrome, low quality, plastic, doll, airbrushed, photoshopped, fake, surreal, explicit nudity, vulgar """ return prompt.strip() def generate_five_prompts(self, celebrity_name): """Genera 5 prompts únicos""" self.previous_prompts.clear() # Limpiar historial para nueva generación return [self.generate_unique_prompt(celebrity_name) for _ in range(5)] def create_gradio_interface(): generator = FashionPromptGenerator() with gr.Blocks(title="Voyeuristic Fashion Prompt Generator", theme=gr.themes.Soft(), css=""" .prompt-box { border: 1px solid #e2e8f0; border-radius: 8px; padding: 16px; margin-bottom: 16px; background-color: #f8fafc; } .prompt-title { font-weight: bold; margin-bottom: 8px; color: #4a5568; } .dark .prompt-box { background-color: #2d3748; border-color: #4a5568; } .dark .prompt-title { color: #e2e8f0; } .header { text-align: center; margin-bottom: 20px; } """) as demo: gr.Markdown(""" # 🔍 Voyeuristic Fashion Prompt Generator *Create intimate, discovery-focused fashion prompts with sensual lingerie reveals* """) with gr.Row(): with gr.Column(scale=4): celebrity_input = gr.Textbox( label="Celebrity Name", placeholder="Enter celebrity name (e.g., Scarlett Johansson, Zendaya, Ana de Armas...)", info="The celebrity who will appear in the sensual fashion prompts" ) with gr.Column(scale=1): generate_btn = gr.Button("✨ Generate 5 Unique Prompts", variant="primary", size="lg") clear_btn = gr.Button("🗑️ Clear All", variant="secondary") gr.Markdown("## Generated Prompts") gr.Markdown("*Each prompt features unique angles, discovery moments, and lingerie reveals*") output_prompts = [] prompt_columns = [] for i in range(5): with gr.Column(visible=False) as prompt_col: gr.Markdown(f"### 🎯 Prompt {i+1}", elem_classes="prompt-title") prompt_output = gr.Textbox( label="", lines=12, max_lines=15, interactive=False, elem_id=f"prompt_output_{i}", show_copy_button=True, elem_classes="prompt-box" ) output_prompts.append(prompt_output) prompt_columns.append(prompt_col) def generate_and_display_prompts(celebrity_name): if not celebrity_name.strip(): return [gr.update(visible=False)] * 5 + [""] * 5 prompts = generator.generate_five_prompts(celebrity_name) return [gr.update(visible=True)] * 5 + prompts def clear_all(): generator.previous_prompts.clear() return [gr.update(visible=False)] * 5 + [""] * 5 generate_btn.click( fn=generate_and_display_prompts, inputs=celebrity_input, outputs=prompt_columns + output_prompts ) clear_btn.click( fn=clear_all, inputs=None, outputs=prompt_columns + output_prompts ) gr.Markdown("---") gr.Markdown("### 💡 Try these examples:") gr.Examples( examples=["Zendaya", "Ana de Armas", "Florence Pugh", "Sydney Sweeney", "Margot Robbie"], inputs=celebrity_input, outputs=prompt_columns + output_prompts, fn=generate_and_display_prompts, cache_examples=False, label="Click any example to generate prompts" ) return demo if __name__ == "__main__": demo = create_gradio_interface() demo.launch(share=True)