Spaces:
Running
Running
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( | |
""" | |
<style> | |
@import url('https://fonts.googleapis.com/css2?family=Space+Mono&display=swap'); | |
h1 { | |
font-family: 'Space Mono', monospace; | |
font-size: 3em; /* Adjust size as needed */ | |
background: linear-gradient(to right, red, yellow, orange, green); | |
-webkit-background-clip: text; | |
-webkit-text-fill-color: transparent; | |
text-shadow: 2px 2px 4px rgba(64, 224, 208, 0.7); /* Turquoise shadow */ | |
text-align: center; /* Center the text */ | |
} | |
</style> | |
# 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() |