import gradio as gr import random # Fixed composition for image description prefix COMPOSITION = ( "{name}, professional ultra-high resolution photograph, full color, high detail, photo-realistic, " "extreme close-up shot, subject filling the entire 9:16 vertical frame, no borders. " "The celebrity looks directly at the camera with confidence and power, filling the foreground. " "Professional soft, shadowless studio lighting with an ARRI SkyPanel, highlighting skin texture and lace, no harsh shadows. " "Sharp, dramatic focus on the eyes. Cinematic, powerful, and dramatic style. " "Shot on Canon EOS R5, Canon RF 85mm f/1.2L --style raw --ar 9:16." ) # Elements pool for randomized prompt creation, extracted and organized from BATUTO-ART ELEMENTS = { "scenarios": [ "modern corporate office with glass walls and city skyline view", "elegant law firm conference room with mahogany table", "high-tech design studio with inspiration boards and fabric samples", "executive boardroom with panoramic windows overlooking cityscape", "luxury spa reception with marble floors and ambient lighting", "stylish co-working space with minimalist design", "private executive office with a large desk and leather chair", "office break room with modern furniture and city view", "archive room with rows of filing cabinets", "office hallway with abstract art on the walls" ], "outfits": [ "ultra-short stretch cotton minidress with perfect and sensual thigh-high stockings featuring lace patterns and garters", "tight pencil skirt riding up to the thigh, with a semi-transparent blouse and perfect and sensual thigh-high stockings featuring lace patterns and garters", "bodycon mini dress with cutouts and perfect and sensual thigh-high stockings featuring lace patterns and garters", "short fitted skirt with a button-up shirt tied at the waist, and perfect and sensual thigh-high stockings featuring lace patterns and garters", "stretch mini skirt with a lace camisole and perfect and sensual thigh-high stockings featuring lace patterns and garters", "short wrap dress in a silky material with perfect and sensual thigh-high stockings featuring lace patterns and garters", "form-fitting mini dress with a plunging neckline and perfect and sensual thigh-high stockings featuring lace patterns and garters", "micro mini skirt with a tight sweater and perfect and sensual thigh-high stockings featuring lace patterns and garters", "satin mini dress with delicate straps and perfect and sensual thigh-high stockings featuring lace patterns and garters", "structured mini skirt suit with a short jacket and perfect and sensual thigh-high stockings featuring lace patterns and garters" ], "lingerie_sets": [ "a subtly contrasting black lace bra and thong panties set, perfectly matching sheer thigh-high stockings featuring intricate lace patterns and lace garter bands", "a subtly contrasting red lace bra and high-waisted bikini panties set, perfectly matching sheer thigh-high stockings featuring delicate floral lace and satin garter bands", "a subtly contrasting white lace bra and thong panties set, perfectly matching sheer thigh-high stockings featuring embroidered lace patterns and mesh garter bands", "a subtly contrasting burgundy lace bra and cheeky bikini panties set, perfectly matching sheer thigh-high stockings featuring velvet lace trim and ribbon garter bands", "a subtly contrasting emerald green lace bra and French cut thong panties set, perfectly matching sheer thigh-high stockings featuring scalloped lace edges and silk garter bands", "a subtly contrasting champagne lace bra and G-string thong set, perfectly matching sheer thigh-high stockings featuring intricate lace patterns and pearl accented garter bands", "a subtly contrasting midnight blue lace bra and control top bikini panties set, perfectly matching sheer thigh-high stockings featuring silver thread lace embroidery and satin garter bands", "a subtly contrasting hot pink lace bra and Brazilian cut thong panties set, perfectly matching sheer thigh-high stockings featuring playful bow details and lace garter bands", "a subtly contrasting charcoal gray lace bra and boy short bikini panties set, perfectly matching sheer thigh-high stockings featuring geometric lace patterns and elastic garter bands", "a subtly contrasting sheer nude lace bra and minimal coverage thong panties set, perfectly matching sheer thigh-high stockings featuring subtle shimmer and lace garter bands" ], "shoes": [ "elegant stiletto heels with ankle straps", "pointed-toe pumps with metallic finish", "thigh-high lace-up boots with stiletto heel", "pumps with back strap and open toe", "strappy sandals with crystal embellishments", "patent leather pointed pumps", "over-the-knee suede boots with block heel", "platform shoes with glitter and arch strap", "matte leather ankle boots with stiletto heel", "clear PVC heels with metallic details" ], "poses": [ "sitting on a low stool, leaning back slightly, legs subtly parted in a seductive manner to reveal lace thong or bikini panties", "perched on the armrest of a chair, one leg dangling, dress riding up slightly to show lace thong or bikini panties, legs positioned suggestively and alluringly", "sitting cross-legged on a plush rug, dress opening slightly at the thighs to reveal lace thong or bikini panties, legs arranged to create an alluring and seductive shape", "sitting on a desk edge, leaning forward slightly, skirt naturally lifting to reveal lace thong or bikini panties, legs crossed at the ankle in a suggestive and enticing manner", "sitting on a window sill, legs pulled up slightly and subtly parted, dress revealing a glimpse of lace thong or bikini panties, pose is alluring and sensual", "sitting on a step, one leg extended in a seductive manner, skirt falling open slightly to reveal lace thong or bikini panties, other leg bent alluringly", "lounging on a chaise lounge, one leg bent and raised seductively, dress casually exposing thigh and a hint of lace thong or bikini panties, legs positioned to emphasize curves and allure", "sitting on the floor with back against a wall, knees up and subtly parted, skirt naturally parted to show lace thong or bikini panties, pose is suggestive and enticing", "sitting on a counter top, legs crossed at the ankle, skirt draped to the side revealing lace thong or bikini panties, body angled seductively and alluringly", "sitting in a deep armchair, sinking in, dress pulled taut across thighs revealing lace thong or bikini panties, legs positioned for maximum allure and seduction", "standing with hands on hips, skirt slightly lifted by hand in a suggestive manner, revealing lace thong or bikini panties", "bending over slightly to pick something up, dress riding high, revealing lace thong or bikini panties, pose is accidental and revealing", "adjusting thigh-high stocking while standing, skirt lifted slightly to reveal lace thong or bikini panties, action is subtle and sensual", "leaning against a wall with one knee bent, dress clinging and slightly lifted, revealing lace thong or bikini panties, pose is casual but alluring", "stepping out of a car, one foot still inside, skirt shifting to reveal lace thong or bikini panties, moment is fleeting and suggestive", "standing, one hand gently caressing a gluteus, the other hand lightly pressing one's own breast, pose is sensual and self-exploratory", "sitting at a desk, one hand resting on a thigh and gently caressing a gluteus, the other hand subtly pressing one's own breast, pose is discreetly sensual", "leaning against a filing cabinet, one hand sensually stroking a gluteus, the other hand subtly pressing one's own breast through clothing, pose is suggestive and alluring", "standing with one leg bent and foot resting on an office chair seat, skirt hiked up to reveal lace thong or bikini panties, pose is confident and revealing", "standing with one leg elevated and knee resting on a desk corner, dress pulled taut across the thigh to reveal lace thong or bikini panties, pose is bold and alluring", "standing, one foot propped on a stack of files, dress or skirt falling open slightly to reveal lace thong or bikini panties, pose is casual and revealing", "standing, one leg bent and foot on a low office table, with the skirt draped to the side, revealing lace thong or bikini panties, pose is relaxed and suggestive", "standing, leaning against a wall with one foot on a chair rung, dress or skirt lifted slightly to show lace thong or bikini panties, pose is casual and revealing" ], "angles": [ "extreme nadir view (from the ground), ultra close-up on celebrity, subject filling frame", "worm's-eye view, tight close-up on celebrity, subject filling frame from below", "low angle shot looking up, very close on celebrity, emphasizing form and presence", "extreme low angle, contrapicado, celebrity's lower body and legs filling frame, looking upwards", "nadir view, close-up on celebrity from directly below, intense perspective", "ground level view, celebrity towering above, filling the frame from a low vantage point" ], "hair_styles": [ "long, wavy, dyed hair cascading over shoulders", "long, straight, dyed hair parted down the middle", "long, loosely curled, dyed hair with face-framing layers", "long, dyed hair in a half-up elegant style", "long, dyed hair swept over one shoulder with a deep side part", "long, layered, dyed hair with subtle highlights", "long, dyed beach waves with a middle part", "long, smooth blowout on dyed hair with slight bend at ends", "long, dyed balayage with soft waves", "long, pin-straight, dyed hair with subtle ombre effect" ], "makeup_styles": [ "flawless, perfect makeup with defined eyes and lips", "immaculate makeup, highlighting perfect skin and features", "expertly applied makeup, emphasizing a polished and perfect look", "pristine makeup with sharp lines and perfect blending", "impeccable makeup, enhancing natural beauty with perfect finish" ] } def get_random_element(category): return random.choice(ELEMENTS[category]) def generate_single_prompt(name): scenario = get_random_element("scenarios") outfit = get_random_element("outfits") lingerie_set = get_random_element("lingerie_sets") # Use the new lingerie_sets category shoes = get_random_element("shoes") pose = get_random_element("poses") angle = get_random_element("angles") # Now selects from the updated low-angle list hair = get_random_element("hair_styles") makeup = get_random_element("makeup_styles") # Adjusting the phrasing to imply an unintentional panty peek for sitting poses panty_peek_phrase = "" if "sitting" in pose.lower() or "perched" in pose.lower() or "lounging" in pose.lower() or "reclining" in pose.lower(): panty_peek_phrase = ", dress or skirt slightly shifting to reveal a hint of the lace thong or bikini panties" # Adding the sensual expression expression_phrase = "with an expression of intense desire and pleasure, eyes half-closed, lips slightly parted" detailed_prompt = ( f"{COMPOSITION.format(name=name)} {expression_phrase}. Scenario: {scenario}. " f"Pose: {pose}{panty_peek_phrase}. " f"Wearing {outfit}, with a glimpse of a {lingerie_set} revealed, paired with {shoes}. " # Use lingerie_set here and phrase it as revealed f"Hair: {hair}. Makeup: {makeup}. Camera angle: {angle}." ) return detailed_prompt def generate_three_prompts(name): if not name.strip(): return ["Please enter a celebrity name.", "", ""] name = name.strip() return [generate_single_prompt(name) for _ in range(3)] import gradio as gr with gr.Blocks() as demo: gr.Markdown( """ # BATUTO-OFICIAL 🐾 """ ) celebrity_name = gr.Textbox(label="Enter Celebrity Name", placeholder="e.g. Scarlett Johansson", lines=1) generate_btn = gr.Button("Generate Prompts") prompt_outputs = [gr.Textbox(label=f"Prompt {i+1}", lines=6, interactive=False, show_copy_button=True) for i in range(3)] generate_btn.click(fn=generate_three_prompts, inputs=celebrity_name, outputs=prompt_outputs) demo.launch()