Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,8 +1,7 @@
|
|
| 1 |
import random
|
| 2 |
import gradio as gr
|
| 3 |
|
| 4 |
-
|
| 5 |
-
# Dataset with essential elements for prompts
|
| 6 |
fashion_elements = {
|
| 7 |
"hairstyles": [
|
| 8 |
"long wavy auburn hair with elegant curls",
|
|
@@ -19,223 +18,108 @@ fashion_elements = {
|
|
| 19 |
"long updo with strawberry blonde",
|
| 20 |
"long ponytail with sandy blonde"
|
| 21 |
],
|
| 22 |
-
"
|
| 23 |
-
"
|
| 24 |
-
"
|
| 25 |
-
"
|
| 26 |
-
"
|
| 27 |
-
"
|
| 28 |
-
"
|
| 29 |
-
"
|
| 30 |
-
"
|
| 31 |
-
"
|
| 32 |
-
"
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
"
|
| 36 |
-
"
|
| 37 |
-
"
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
"
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
"mysterious gaze",
|
| 125 |
-
"soft and suggestive gaze",
|
| 126 |
-
"seductive gaze at the camera",
|
| 127 |
-
"confident gaze",
|
| 128 |
-
"confident expression",
|
| 129 |
-
"attractive gaze",
|
| 130 |
-
"penetrating gaze",
|
| 131 |
-
"sweet expression",
|
| 132 |
-
"intense desire",
|
| 133 |
-
"subtle ecstatic gesture",
|
| 134 |
-
"gazing upwards with desire",
|
| 135 |
-
"subtle moan-like expression",
|
| 136 |
-
"playful desire",
|
| 137 |
-
"subtle ecstasy",
|
| 138 |
-
"passionate desire",
|
| 139 |
-
"gazing with desire",
|
| 140 |
-
"desirous look",
|
| 141 |
-
"passionately gazing",
|
| 142 |
-
"desire",
|
| 143 |
-
"subtle flush",
|
| 144 |
-
"desirous smile",
|
| 145 |
-
"intense gaze",
|
| 146 |
-
"desirous expression",
|
| 147 |
-
"subtle gesture",
|
| 148 |
-
"direct seductive look",
|
| 149 |
-
"eyes with desire",
|
| 150 |
-
"gazing",
|
| 151 |
-
"soft gaze",
|
| 152 |
-
"seductive expression",
|
| 153 |
-
"intense gaze",
|
| 154 |
-
"serene expression",
|
| 155 |
-
"subtle smile",
|
| 156 |
-
"eyes gently closed",
|
| 157 |
-
"eyes on camera",
|
| 158 |
-
"soft smile",
|
| 159 |
-
"sultry look",
|
| 160 |
-
"elegant gaze",
|
| 161 |
-
"relaxed posture",
|
| 162 |
-
"playful smile",
|
| 163 |
-
"peaceful expression",
|
| 164 |
-
"eyes downward",
|
| 165 |
-
"intense gaze",
|
| 166 |
-
"inviting expression",
|
| 167 |
-
"contemplative look",
|
| 168 |
-
"soft gaze",
|
| 169 |
-
"seductive gaze",
|
| 170 |
-
"intense gaze",
|
| 171 |
-
"elegant expression",
|
| 172 |
-
"gaze towards the lens or profile",
|
| 173 |
-
"seductive gaze",
|
| 174 |
-
"natural, confident, and relaxed expression",
|
| 175 |
-
"soft and confident expression",
|
| 176 |
-
"direct eye contact or a low gaze",
|
| 177 |
-
"direct gaze on the lens, or slightly to the side",
|
| 178 |
-
"soft and confident expression for an intimate connection",
|
| 179 |
-
"natural, confident, and relaxed expression, avoiding tension"
|
| 180 |
-
],
|
| 181 |
-
"poses_thongs": [
|
| 182 |
-
"arching her back while stretching, outfit lifting to reveal thong, looking back with intense desire",
|
| 183 |
-
"leaning back on a surface, legs subtly spread hinting thong, eyes locked with subtle orgasmic gesture",
|
| 184 |
-
"sipping coffee lounging to reveal thong, subtle ecstasy"
|
| 185 |
-
],
|
| 186 |
-
"lingerie_sets": [
|
| 187 |
-
"black lace set with push-up bra, floral thong, and sheer thigh-high stockings with a lace top",
|
| 188 |
-
"red satin set with underwire bra, bow accents thong, and fishnet thigh-high stockings with a pattern",
|
| 189 |
-
"white mesh set with sheer-cup bra, transparent thong, and silk thigh-high stockings with a smooth finish",
|
| 190 |
-
"pink lace set with demi-cup bra, scalloped-edge thong, and thigh-high stockings with a garter",
|
| 191 |
-
"blue silk set with smooth-cup bra, a sleek thong, and velvet thigh-high stockings with a soft texture",
|
| 192 |
-
"green velvet set with padded bra, a textured thong, and satin thigh-high stockings with a subtle shine",
|
| 193 |
-
"purple satin set with balconette bra, a glossy thong, and mesh thigh-high stockings with a net pattern",
|
| 194 |
-
"yellow chiffon set with a light-coverage bra, a light thong, and thigh-high stockings with a light, airy feel",
|
| 195 |
-
"black mesh set with transparent-strap bra, a net-pattern thong, and opaque thigh-high stockings with a matte look",
|
| 196 |
-
"red lace set with embroidered bra, an embroidered thong, and sheer thigh-high stockings with a red tint",
|
| 197 |
-
"white satin set with pearl-accented bra, a pearl-detailed thong, and fishnet thigh-high stockings with a diamond pattern",
|
| 198 |
-
"pink silk set with delicate-lace-trim bra, a delicate-strap thong, and shiny silk thigh-high stockings",
|
| 199 |
-
"blue velvet set with a plush bra, a plush thong, and lace thigh-high stockings with a floral design",
|
| 200 |
-
"green lace set with a floral-pattern bra, a leaf-motif thong, and plush velvet thigh-high stockings",
|
| 201 |
-
"purple mesh set with sheer-panel bra, sheer-panel thong, and luxurious satin thigh-high stockings",
|
| 202 |
-
"yellow satin set with a shiny bra, a glossy thong, and transparent mesh thigh-high stockings",
|
| 203 |
-
"black chiffon set with a flowy-edged bra, a flowy-edged thong, and flowy chiffon thigh-high stockings",
|
| 204 |
-
"red mesh set with a bold bra, a bold-line thong, and opaque thigh-high stockings with a bold look",
|
| 205 |
-
"white lace set with a romantic bra, a romantic thong, and sheer thigh-high stockings for a subtle touch",
|
| 206 |
-
"pink velvet set with a soft-textured bra, a soft-pile thong, and fun fishnet thigh-high stockings",
|
| 207 |
-
"blue satin set with a sleek-line bra, a sleek thong, and elegant silk thigh_high stockings",
|
| 208 |
-
"green silk set with an elegant-feel bra, an elegant-drape thong, and romantic lace thigh_high stockings",
|
| 209 |
-
"purple chiffon set with an airy bra, an airy thong, and deep velvet thigh_high stockings",
|
| 210 |
-
"yellow lace set with a bright bra, a bright thong, and bright satin thigh_high stockings",
|
| 211 |
-
"black satin set with a luxurious bra, a luxurious thong, and edgy mesh thigh_high stockings",
|
| 212 |
-
"red velvet set with a deep-hued bra, a deep-colored thong, and airy chiffon thigh_high stockings",
|
| 213 |
-
"white mesh set with a modern bra, a modern-grid thong, and clean opaque thigh_high stockings",
|
| 214 |
-
"pink chiffon set with a feminine bra, a feminine-ruffle thong, and blush-pink sheer thigh_high stockings",
|
| 215 |
-
"blue lace set with a wave-pattern bra, a wave-pattern thong, and playful fishnet thigh_high stockings",
|
| 216 |
-
"green satin set with a natural-color bra, a natural-hued thong, and natural-color silk thigh_high stockings",
|
| 217 |
-
"purple velvet set with a royal-style bra, a royal-vibe thong, and ornate lace thigh_high stockings",
|
| 218 |
-
"yellow mesh set with a sunny-transparency bra, a sunny thong, and sunny velvet thigh_high stockings",
|
| 219 |
-
"black lace set with a gothic bra, a gothic-element thong, and thigh-high stockings with a shadow-black lace top",
|
| 220 |
-
"red silk set with a passionate bra, a passionate thong, and passionate-red mesh thigh-high stockings",
|
| 221 |
-
"white chiffon set with a pure-white bra, a pure-white thong, and pure-white chiffon thigh-high stockings",
|
| 222 |
-
"pink satin set with a blush-pink bra, a blush-pink thong, and soft opaque thigh-high stockings",
|
| 223 |
-
"blue velvet set with a deep-blue bra, a deep-blue thong, and sheer thigh-high stockings in a calm blue",
|
| 224 |
-
"green lace set with an envious-green bra, an envious-green thong, and green fishnet thigh-high stockings",
|
| 225 |
-
"purple mesh set with a mysterious bra, a mysterious thong, and lavender fishnet thigh-high stockings",
|
| 226 |
-
"yellow chiffon set with a joyful-yellow bra, a joyful-yellow thong, and sunny-yellow silk thigh-high stockings",
|
| 227 |
-
"black silk set with a night-black bra, a night-black thong, and shadow-black lace thigh-high stockings",
|
| 228 |
-
"red satin set with a fire-red bra, a fire-red thong, and deep-red velvet thigh-high stockings",
|
| 229 |
-
"white velvet set with a snow-white bra, a snow-white thong, and white-sheer thigh-high stockings",
|
| 230 |
-
"pink lace set with a rose-pink bra, a rose-pink thong, and pink-rose lace thigh-high stockings",
|
| 231 |
-
"blue mesh set with a sky-blue bra, a sky-blue thong, and sky-blue mesh thigh-high stockings",
|
| 232 |
-
"green chiffon set with a forest-green bra, a forest-green thong, and forest-green chiffon thigh-high stockings",
|
| 233 |
-
"purple satin set with a lavender bra, a lavender thong, and lavender lace thigh-high stockings",
|
| 234 |
-
"yellow velvet set with a sun-yellow bra, a sun-yellow thong, and sun-yellow velvet thigh-high stockings",
|
| 235 |
-
"black mesh set with a shadow-black bra, a shadow-black thong, and shadow-black mesh thigh-high stockings",
|
| 236 |
-
"red chiffon set with a sunset-red bra, a sunset-red thong, and sunset-red chiffon thigh-high stockings"
|
| 237 |
-
],
|
| 238 |
-
"colors": [
|
| 239 |
"deep ruby red", "classic black", "emerald green", "sapphire blue", "royal purple",
|
| 240 |
"champagne gold", "silver metallic", "burgundy wine", "chocolate brown", "ivory white",
|
| 241 |
"hot pink", "electric blue", "vibrant orange", "forest green", "midnight navy",
|
|
@@ -253,128 +137,46 @@ fashion_elements = {
|
|
| 253 |
"a flowing chiffon mini dress with intricate patterns",
|
| 254 |
"a form-fitting leather mini skirt with bold accents",
|
| 255 |
],
|
| 256 |
-
"
|
| 257 |
-
"
|
| 258 |
-
"
|
| 259 |
-
"
|
| 260 |
-
"
|
| 261 |
-
"
|
| 262 |
-
"
|
| 263 |
-
"
|
| 264 |
-
"
|
| 265 |
-
"
|
| 266 |
-
"
|
| 267 |
-
"
|
| 268 |
-
"
|
| 269 |
-
"
|
| 270 |
-
"
|
| 271 |
-
"
|
| 272 |
-
"yellow babydoll dress with empire waist",
|
| 273 |
-
"black velvet dress with choker neck",
|
| 274 |
-
"red satin dress with cowl neck",
|
| 275 |
-
"white chiffon dress with layers",
|
| 276 |
-
"pink leather dress with zip front",
|
| 277 |
-
"blue denim dress with buttons",
|
| 278 |
-
"green sequin dress with fringe",
|
| 279 |
-
"purple tulle dress with tutu skirt",
|
| 280 |
-
"yellow mesh dress with underlay",
|
| 281 |
-
"black plaid dress with collar",
|
| 282 |
-
"red latex dress with shine",
|
| 283 |
-
"white satin dress with bow back",
|
| 284 |
-
"pink velvet dress with ruche",
|
| 285 |
-
"blue lace dress with illusion neck",
|
| 286 |
-
"green chiffon dress with drape",
|
| 287 |
-
"purple denim dress with distress",
|
| 288 |
-
"yellow leather dress with seams",
|
| 289 |
-
"black sequin dress with sparkle",
|
| 290 |
-
"red tulle dress with volume",
|
| 291 |
-
"white mesh dress with transparency",
|
| 292 |
-
"pink plaid dress with pattern",
|
| 293 |
-
"blue satin dress with gloss",
|
| 294 |
-
"green lace dress with romance",
|
| 295 |
-
"purple velvet dress with luxury",
|
| 296 |
-
"yellow chiffon dress with flow",
|
| 297 |
-
"black denim dress with casual",
|
| 298 |
-
"red leather dress with edge",
|
| 299 |
-
"white sequin dress with party",
|
| 300 |
-
"pink tulle dress with princess",
|
| 301 |
-
"blue velvet dress with texture",
|
| 302 |
-
"green plaid dress with preppy",
|
| 303 |
-
"purple lace dress with gothic",
|
| 304 |
-
"yellow mesh dress with sporty",
|
| 305 |
-
"black satin dress with elegance",
|
| 306 |
-
"red chiffon dress with boho"
|
| 307 |
-
],
|
| 308 |
-
"lingerie_details": [
|
| 309 |
-
"delicate lace trim",
|
| 310 |
-
"satin ribbon accents",
|
| 311 |
-
"strategic sheer panels",
|
| 312 |
-
"scalloped edges",
|
| 313 |
-
"embellished with subtle crystals",
|
| 314 |
-
"bow details",
|
| 315 |
-
"plunging neckline",
|
| 316 |
-
"underwire support",
|
| 317 |
-
"removable garter straps"
|
| 318 |
],
|
| 319 |
-
"
|
| 320 |
-
"
|
| 321 |
-
"
|
| 322 |
-
"
|
| 323 |
-
"
|
| 324 |
-
"
|
| 325 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
| 326 |
],
|
| 327 |
-
|
| 328 |
-
"
|
| 329 |
-
"
|
| 330 |
-
"
|
| 331 |
-
"
|
| 332 |
-
"
|
| 333 |
-
"
|
| 334 |
-
"
|
| 335 |
-
"
|
| 336 |
-
"
|
| 337 |
-
"
|
| 338 |
-
"white lace delicate miniskirt with floral patterns",
|
| 339 |
-
"blue denim cutoff miniskirt with pockets",
|
| 340 |
-
"green velvet wrap miniskirt with ties",
|
| 341 |
-
"pink leather high-waist miniskirt with studs",
|
| 342 |
-
"purple satin asymmetric miniskirt with drape",
|
| 343 |
-
"yellow plaid pleated miniskirt with suspenders",
|
| 344 |
-
"black chiffon sheer miniskirt with lining",
|
| 345 |
-
"red sequin glittering miniskirt with hemline",
|
| 346 |
-
"white tulle ballerina miniskirt with layers",
|
| 347 |
-
"blue leather bodycon miniskirt with seams",
|
| 348 |
-
"green lace romantic miniskirt with scallop",
|
| 349 |
-
"pink denim distressed miniskirt with fray",
|
| 350 |
-
"purple velvet ruched miniskirt with drawstring",
|
| 351 |
-
"yellow satin shiny miniskirt with pleats",
|
| 352 |
-
"black plaid tartan miniskirt with kilt pin",
|
| 353 |
-
"red mesh fishnet miniskirt with overlay",
|
| 354 |
-
"white chiffon boho miniskirt with embroidery",
|
| 355 |
-
"blue sequin party miniskirt with sparkle",
|
| 356 |
-
"green tulle voluminous miniskirt with petticoat",
|
| 357 |
-
"pink lace victorian miniskirt with ribbons",
|
| 358 |
-
"purple denim acid-wash miniskirt with patches",
|
| 359 |
-
"yellow leather moto miniskirt with zippers",
|
| 360 |
-
"black satin elegant miniskirt with slit",
|
| 361 |
-
"red velvet holiday miniskirt with trim",
|
| 362 |
-
"white plaid preppy miniskirt with buttons",
|
| 363 |
-
"blue chiffon summer miniskirt with flow",
|
| 364 |
-
"green sequin festival miniskirt with shine",
|
| 365 |
-
"pink tulle princess miniskirt with bows",
|
| 366 |
-
"purple lace gothic miniskirt with corset",
|
| 367 |
-
"yellow mesh sporty miniskirt with stripes",
|
| 368 |
-
"black denim classic miniskirt with belt",
|
| 369 |
-
"red leather edgy miniskirt with chains",
|
| 370 |
-
"white satin bridal miniskirt with veil",
|
| 371 |
-
"blue velvet luxurious miniskirt with texture",
|
| 372 |
-
"green plaid highland miniskirt with pattern",
|
| 373 |
-
"pink chiffon romantic miniskirt with ruffles",
|
| 374 |
-
"purple sequin disco miniskirt with glitter",
|
| 375 |
-
"yellow tulle fun miniskirt with colors",
|
| 376 |
-
"black lace sexy miniskirt with transparency",
|
| 377 |
-
"red denim casual miniskirt with wash"
|
| 378 |
],
|
| 379 |
"stockings": [
|
| 380 |
"sheer thigh-high stockings with a lace top",
|
|
@@ -445,7 +247,7 @@ fashion_elements = {
|
|
| 445 |
"a shadow-black thong", "a sunset-red thong"
|
| 446 |
],
|
| 447 |
"lingerie_bras": [
|
| 448 |
-
"push-up bra", "underwire bra", "sheer-cup bra", "demi-
|
| 449 |
"padded bra", "balconette bra", "a light-coverage bra", "transparent-strap bra",
|
| 450 |
"embroidered bra", "pearl-accented bra", "delicate-lace-trim bra", "a plush bra",
|
| 451 |
"a floral-pattern bra", "sheer-panel bra", "a shiny bra", "a flowy-edged bra",
|
|
@@ -458,70 +260,81 @@ fashion_elements = {
|
|
| 458 |
"a fire-red bra", "a snow-white bra", "a rose-pink bra", "a sky-blue bra",
|
| 459 |
"a forest-green bra", "a lavender bra", "a sun-yellow bra", "a shadow-black bra",
|
| 460 |
"a sunset-red bra"
|
| 461 |
-
],
|
| 462 |
-
"backgrounds": [
|
| 463 |
-
"a luxurious bedroom", "a modern office", "a chic studio apartment", "a dimly lit lounge",
|
| 464 |
-
"a stylish hotel room", "an industrial loft", "a minimalist living space", "a Parisian balcony",
|
| 465 |
-
"a vintage boudoir", "a serene garden setting"
|
| 466 |
-
],
|
| 467 |
-
"lighting": [
|
| 468 |
-
"soft natural window light", "dramatic chiaroscuro lighting", "warm golden hour glow",
|
| 469 |
-
"studio lighting with softboxes", "ambient moody lighting", "rim lighting to accentuate silhouette",
|
| 470 |
-
"cinematic lighting with subtle color grading", "ethereal backlight", "dynamic spotlighting"
|
| 471 |
]
|
| 472 |
}
|
| 473 |
|
| 474 |
class FashionPromptGenerator:
|
| 475 |
def __init__(self):
|
| 476 |
self.fashion_elements = fashion_elements
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 477 |
|
| 478 |
-
def
|
| 479 |
primary_color = random.choice(self.fashion_elements["colors"])
|
|
|
|
|
|
|
| 480 |
outfit = random.choice(self.fashion_elements["outfits"])
|
| 481 |
thong = random.choice(self.fashion_elements["lingerie_thongs"])
|
| 482 |
-
bra = random.choice(self.fashion_elements["lingerie_bras"]) if random.random() > 0.
|
|
|
|
| 483 |
lingerie_item = f"{primary_color} {thong}"
|
| 484 |
if bra:
|
| 485 |
-
lingerie_item += f" and {
|
| 486 |
-
|
| 487 |
-
|
| 488 |
-
|
|
|
|
| 489 |
hairstyle = random.choice(self.fashion_elements["hairstyles"])
|
| 490 |
background = random.choice(self.fashion_elements["backgrounds"])
|
| 491 |
lighting = random.choice(self.fashion_elements["lighting"])
|
| 492 |
-
camera_angle = random.choice(self.fashion_elements["camera_angles"])
|
| 493 |
expression = random.choice(self.fashion_elements["expressions"])
|
|
|
|
| 494 |
|
| 495 |
prompt = f"""
|
| 496 |
-
|
|
|
|
|
|
|
| 497 |
|
| 498 |
-
|
|
|
|
| 499 |
|
| 500 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 501 |
|
| 502 |
-
**
|
| 503 |
-
-
|
| 504 |
-
-
|
| 505 |
-
-
|
| 506 |
-
-
|
| 507 |
|
| 508 |
-
The image
|
| 509 |
|
| 510 |
-
Negative prompt:
|
| 511 |
"""
|
| 512 |
return prompt.strip()
|
| 513 |
|
| 514 |
def generate_five_prompts(self, celebrity_name):
|
| 515 |
-
|
|
|
|
|
|
|
| 516 |
|
| 517 |
|
| 518 |
def create_gradio_interface():
|
| 519 |
generator = FashionPromptGenerator()
|
| 520 |
|
| 521 |
-
with gr.Blocks(title="
|
| 522 |
-
.copy-btn {
|
| 523 |
-
margin-top: 8px;
|
| 524 |
-
}
|
| 525 |
.prompt-box {
|
| 526 |
border: 1px solid #e2e8f0;
|
| 527 |
border-radius: 8px;
|
|
@@ -541,42 +354,48 @@ def create_gradio_interface():
|
|
| 541 |
.dark .prompt-title {
|
| 542 |
color: #e2e8f0;
|
| 543 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
| 544 |
""") as demo:
|
| 545 |
-
|
| 546 |
-
gr.Markdown("
|
| 547 |
-
|
|
|
|
|
|
|
|
|
|
| 548 |
with gr.Row():
|
| 549 |
-
with gr.Column(scale=
|
| 550 |
celebrity_input = gr.Textbox(
|
| 551 |
label="Celebrity Name",
|
| 552 |
-
placeholder="
|
| 553 |
-
info="The
|
| 554 |
)
|
| 555 |
with gr.Column(scale=1):
|
| 556 |
-
generate_btn = gr.Button("Generate 5 Prompts", variant="primary", size="lg")
|
| 557 |
-
clear_btn = gr.Button("Clear All", variant="secondary")
|
| 558 |
|
| 559 |
gr.Markdown("## Generated Prompts")
|
|
|
|
| 560 |
|
| 561 |
output_prompts = []
|
| 562 |
-
|
| 563 |
-
prompt_columns = [] # Define prompt_columns here
|
| 564 |
|
| 565 |
for i in range(5):
|
| 566 |
with gr.Column(visible=False) as prompt_col:
|
| 567 |
-
gr.Markdown(f"### Prompt {i+1}", elem_classes="prompt-title")
|
| 568 |
-
|
| 569 |
-
|
| 570 |
-
|
| 571 |
-
|
| 572 |
-
|
| 573 |
-
|
| 574 |
-
|
| 575 |
-
|
| 576 |
-
|
| 577 |
-
)
|
| 578 |
output_prompts.append(prompt_output)
|
| 579 |
-
prompt_columns.append(prompt_col)
|
| 580 |
|
| 581 |
def generate_and_display_prompts(celebrity_name):
|
| 582 |
if not celebrity_name.strip():
|
|
@@ -585,6 +404,7 @@ def create_gradio_interface():
|
|
| 585 |
return [gr.update(visible=True)] * 5 + prompts
|
| 586 |
|
| 587 |
def clear_all():
|
|
|
|
| 588 |
return [gr.update(visible=False)] * 5 + [""] * 5
|
| 589 |
|
| 590 |
generate_btn.click(
|
|
@@ -600,14 +420,14 @@ def create_gradio_interface():
|
|
| 600 |
)
|
| 601 |
|
| 602 |
gr.Markdown("---")
|
| 603 |
-
gr.Markdown("###
|
| 604 |
gr.Examples(
|
| 605 |
examples=["Zendaya", "Ana de Armas", "Florence Pugh", "Sydney Sweeney", "Margot Robbie"],
|
| 606 |
inputs=celebrity_input,
|
| 607 |
outputs=prompt_columns + output_prompts,
|
| 608 |
fn=generate_and_display_prompts,
|
| 609 |
cache_examples=False,
|
| 610 |
-
label="Click
|
| 611 |
)
|
| 612 |
|
| 613 |
return demo
|
|
|
|
| 1 |
import random
|
| 2 |
import gradio as gr
|
| 3 |
|
| 4 |
+
# Dataset con elementos mejorados para mayor variedad
|
|
|
|
| 5 |
fashion_elements = {
|
| 6 |
"hairstyles": [
|
| 7 |
"long wavy auburn hair with elegant curls",
|
|
|
|
| 18 |
"long updo with strawberry blonde",
|
| 19 |
"long ponytail with sandy blonde"
|
| 20 |
],
|
| 21 |
+
"discovery_moments": [
|
| 22 |
+
"momentarily revealing lingerie as she adjusts her posture",
|
| 23 |
+
"subtly exposing lingerie while shifting weight between legs",
|
| 24 |
+
"accidentally revealing intimate details during a natural movement",
|
| 25 |
+
"playfully teasing the visibility of lingerie through fabric movement",
|
| 26 |
+
"unintentionally showing lingerie while reaching for an object",
|
| 27 |
+
"delicately revealing underwear as she crosses and uncrosses legs",
|
| 28 |
+
"offering a fleeting glimpse of lingerie during a graceful turn",
|
| 29 |
+
"exposing intimate apparel through the sheer fabric of her clothing",
|
| 30 |
+
"revealing lingerie edges while sitting down or standing up",
|
| 31 |
+
"showing subtle hints of underwear through strategic posing",
|
| 32 |
+
"creating an intimate reveal as the fabric clings to her form",
|
| 33 |
+
"allowing a private view of her lingerie during an unguarded moment",
|
| 34 |
+
"exposing delicate details through the transparency of her garment",
|
| 35 |
+
"revealing hidden layers through calculated body movements",
|
| 36 |
+
"creating sensual tension through partial concealment and revelation"
|
| 37 |
+
],"voyeuristic_angles": [
|
| 38 |
+
"extreme low angle from floor level, tilted upward to capture intimate details",
|
| 39 |
+
"worm's-eye view focusing on the revealing moment from below",
|
| 40 |
+
"low angle emphasizing the voyeuristic perspective of discovered lingerie",
|
| 41 |
+
"camera positioned as if secretly observing from a hidden vantage point",
|
| 42 |
+
"upward angle creating the sensation of an unauthorized glimpse",
|
| 43 |
+
"shot from knee level capturing the accidental exposure",
|
| 44 |
+
"perspective from below simulating a hidden camera view",
|
| 45 |
+
"low vantage point emphasizing the forbidden nature of the view",
|
| 46 |
+
"angle that suggests the viewer is discovering something intimate",
|
| 47 |
+
"camera placement that enhances the feeling of witnessing a private moment",
|
| 48 |
+
"view from beneath creating a sense of intimate discovery",
|
| 49 |
+
"low-angle shot that makes the reveal feel more personal and intrusive",
|
| 50 |
+
"perspective that captures the moment as if by chance observation",
|
| 51 |
+
"angle that emphasizes the vulnerability of the exposed moment",
|
| 52 |
+
"shot composition that feels like a secret being uncovered"
|
| 53 |
+
],
|
| 54 |
+
"lingerie_reveal_actions": [
|
| 55 |
+
"adjusting her stockings while revealing the thong underneath",
|
| 56 |
+
"smoothing her skirt only to expose more lingerie accidentally",
|
| 57 |
+
"reaching up high causing her outfit to ride up and show underwear",
|
| 58 |
+
"bending over to pick something up, offering a view of her thong",
|
| 59 |
+
"crossing her legs in a way that pulls the fabric taut against lingerie",
|
| 60 |
+
"stretching languidly, causing her clothing to shift and reveal",
|
| 61 |
+
"turning quickly, creating a momentary flash of intimate apparel",
|
| 62 |
+
"sitting down with a graceful motion that exposes lingerie edges",
|
| 63 |
+
"standing up from a chair, her skirt riding up to show the thong",
|
| 64 |
+
"playing with her hair while her other hand accidentally lifts her skirt",
|
| 65 |
+
"leaning forward to examine something, revealing her lingerie line",
|
| 66 |
+
"arching her back in a stretch that lifts her clothing",
|
| 67 |
+
"shifting position on a sofa, causing her dress to hike up",
|
| 68 |
+
"bending at the waist to tie her shoe, exposing her underwear",
|
| 69 |
+
"reclining back with legs slightly parted, hinting at her thong"
|
| 70 |
+
],
|
| 71 |
+
"lingerie_sets": [
|
| 72 |
+
"black lace set with push-up bra, floral thong, and sheer thigh-high stockings with a lace top",
|
| 73 |
+
"red satin set with underwire bra, bow accents thong, and fishnet thigh-high stockings with a pattern",
|
| 74 |
+
"white mesh set with sheer-cup bra, transparent thong, and silk thigh-high stockings with a smooth finish",
|
| 75 |
+
"pink lace set with demi-cup bra, scalloped-edge thong, and thigh-high stockings with a garter",
|
| 76 |
+
"blue silk set with smooth-cup bra, a sleek thong, and velvet thigh-high stockings with a soft texture",
|
| 77 |
+
"green velvet set with padded bra, a textured thong, and satin thigh-high stockings with a subtle shine",
|
| 78 |
+
"purple satin set with balconette bra, a glossy thong, and mesh thigh-high stockings with a net pattern",
|
| 79 |
+
"yellow chiffon set with a light-coverage bra, a light thong, and thigh-high stockings with a light, airy feel",
|
| 80 |
+
"black mesh set with transparent-strap bra, a net-pattern thong, and opaque thigh-high stockings with a matte look",
|
| 81 |
+
"red lace set with embroidered bra, an embroidered thong, and sheer thigh-high stockings with a red tint",
|
| 82 |
+
"white satin set with pearl-accented bra, a pearl-detailed thong, and fishnet thigh-high stockings with a diamond pattern",
|
| 83 |
+
"pink silk set with delicate-lace-trim bra, a delicate-strap thong, and shiny silk thigh-high stockings",
|
| 84 |
+
"blue velvet set with a plush bra, a plush thong, and lace thigh-high stockings with a floral design",
|
| 85 |
+
"green lace set with a floral-pattern bra, a leaf-motif thong, and plush velvet thigh-high stockings",
|
| 86 |
+
"purple mesh set with sheer-panel bra, sheer-panel thong, and luxurious satin thigh-high stockings",
|
| 87 |
+
"yellow satin set with a shiny bra, a glossy thong, and transparent mesh thigh-high stockings",
|
| 88 |
+
"black chiffon set with a flowy-edged bra, a flowy-edged thong, and flowy chiffon thigh-high stockings",
|
| 89 |
+
"red mesh set with a bold bra, a bold-line thong, and opaque thigh-high stockings with a bold look",
|
| 90 |
+
"white lace set with a romantic bra, a romantic thong, and sheer thigh-high stockings for a subtle touch",
|
| 91 |
+
"pink velvet set with a soft-textured bra, a soft-pile thong, and fun fishnet thigh-high stockings",
|
| 92 |
+
"blue satin set with a sleek-line bra, a sleek thong, and elegant silk thigh_high stockings",
|
| 93 |
+
"green silk set with an elegant-feel bra, an elegant-drape thong, and romantic lace thigh_high stockings",
|
| 94 |
+
"purple chiffon set with an airy bra, an airy thong, and deep velvet thigh_high stockings",
|
| 95 |
+
"yellow lace set with a bright bra, a bright thong, and bright satin thigh_high stockings",
|
| 96 |
+
"black satin set with a luxurious bra, a luxurious thong, and edgy mesh thigh_high stockings",
|
| 97 |
+
"red velvet set with a deep-hued bra, a deep-colored thong, and airy chiffon thigh_high stockings",
|
| 98 |
+
"white mesh set with a modern bra, a modern-grid thong, and clean opaque thigh_high stockings",
|
| 99 |
+
"pink chiffon set with a feminine bra, a feminine-ruffle thong, and blush-pink sheer thigh_high stockings",
|
| 100 |
+
"blue lace set with a wave-pattern bra, a wave-pattern thong, and playful fishnet thigh_high stockings",
|
| 101 |
+
"green satin set with a natural-color bra, a natural-hued thong, and natural-color silk thigh_high stockings",
|
| 102 |
+
"purple velvet set with a royal-style bra, a royal-vibe thong, and ornate lace thigh_high stockings",
|
| 103 |
+
"yellow mesh set with a sunny-transparency bra, a sunny thong, and sunny velvet thigh_high stockings",
|
| 104 |
+
"black lace set with a gothic bra, a gothic-element thong, and thigh-high stockings with a shadow-black lace top",
|
| 105 |
+
"red silk set with a passionate bra, a passionate thong, and passionate-red mesh thigh-high stockings",
|
| 106 |
+
"white chiffon set with a pure-white bra, a pure-white thong, and pure-white chiffon thigh-high stockings",
|
| 107 |
+
"pink satin set with a blush-pink bra, a blush-pink thong, and soft opaque thigh-high stockings",
|
| 108 |
+
"blue velvet set with a deep-blue bra, a deep-blue thong, and sheer thigh-high stockings in a calm blue",
|
| 109 |
+
"green lace set with an envious-green bra, an envious-green thong, and green fishnet thigh-high stockings",
|
| 110 |
+
"purple mesh set with a mysterious bra, a mysterious thong, and lavender fishnet thigh-high stockings",
|
| 111 |
+
"yellow chiffon set with a joyful-yellow bra, a joyful-yellow thong, and sunny-yellow silk thigh-high stockings",
|
| 112 |
+
"black silk set with a night-black bra, a night-black thong, and shadow-black lace thigh-high stockings",
|
| 113 |
+
"red satin set with a fire-red bra, a fire-red thong, and deep-red velvet thigh-high stockings",
|
| 114 |
+
"white velvet set with a snow-white bra, a snow-white thong, and white-sheer thigh-high stockings",
|
| 115 |
+
"pink lace set with a rose-pink bra, a rose-pink thong, and pink-rose lace thigh-high stockings",
|
| 116 |
+
"blue mesh set with a sky-blue bra, a sky-blue thong, and sky-blue mesh thigh-high stockings",
|
| 117 |
+
"green chiffon set with a forest-green bra, a forest-green thong, and forest-green chiffon thigh-high stockings",
|
| 118 |
+
"purple satin set with a lavender bra, a lavender thong, and lavender lace thigh-high stockings",
|
| 119 |
+
"yellow velvet set with a sun-yellow bra, a sun-yellow thong, and sun-yellow velvet thigh-high stockings",
|
| 120 |
+
"black mesh set with a shadow-black bra, a shadow-black thong, and shadow-black mesh thigh-high stockings",
|
| 121 |
+
"red chiffon set with a sunset-red bra, a sunset-red thong, and sunset-red chiffon thigh-high stockings"
|
| 122 |
+
], "colors": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 123 |
"deep ruby red", "classic black", "emerald green", "sapphire blue", "royal purple",
|
| 124 |
"champagne gold", "silver metallic", "burgundy wine", "chocolate brown", "ivory white",
|
| 125 |
"hot pink", "electric blue", "vibrant orange", "forest green", "midnight navy",
|
|
|
|
| 137 |
"a flowing chiffon mini dress with intricate patterns",
|
| 138 |
"a form-fitting leather mini skirt with bold accents",
|
| 139 |
],
|
| 140 |
+
"expressions": [
|
| 141 |
+
"unaware of being observed, natural and relaxed",
|
| 142 |
+
"slightly self-conscious but continuing her actions",
|
| 143 |
+
"lost in thought, completely natural in her movements",
|
| 144 |
+
"playfully teasing but pretending not to notice the camera",
|
| 145 |
+
"focused on her task, unaware of the revealing moment",
|
| 146 |
+
"exuding quiet confidence while her lingerie becomes visible",
|
| 147 |
+
"appearing distracted, allowing natural exposure to occur",
|
| 148 |
+
"maintaining composure while her clothing shifts revealingly",
|
| 149 |
+
"exhibiting casual elegance despite the intimate exposure",
|
| 150 |
+
"completely absorbed in the moment, natural and unposed",
|
| 151 |
+
"displaying innocent unawareness of the camera's presence",
|
| 152 |
+
"showing subtle confidence in her accidental revelation",
|
| 153 |
+
"maintaining natural grace during the unintentional exposure",
|
| 154 |
+
"expressing quiet contemplation while partially exposed",
|
| 155 |
+
"radiating natural beauty in the unguarded moment"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 156 |
],
|
| 157 |
+
"backgrounds": [
|
| 158 |
+
"a luxurious bedroom with soft ambient lighting",
|
| 159 |
+
"a modern office space during after-hours",
|
| 160 |
+
"a chic studio apartment with intimate atmosphere",
|
| 161 |
+
"a dimly lit lounge with moody shadows",
|
| 162 |
+
"a stylish hotel room with elegant decor",
|
| 163 |
+
"an industrial loft with dramatic lighting",
|
| 164 |
+
"a minimalist living space with clean lines",
|
| 165 |
+
"a Parisian balcony with romantic ambiance",
|
| 166 |
+
"a vintage boudoir with ornate details",
|
| 167 |
+
"a serene garden setting with natural beauty"
|
| 168 |
],
|
| 169 |
+
"lighting": [
|
| 170 |
+
"soft natural window light creating intimate shadows",
|
| 171 |
+
"dramatic chiaroscuro lighting emphasizing curves and reveals",
|
| 172 |
+
"warm golden hour glow enhancing skin tones",
|
| 173 |
+
"studio lighting with softboxes for a polished look",
|
| 174 |
+
"ambient moody lighting adding mystery and depth",
|
| 175 |
+
"rim lighting to accentuate silhouette and intimate details",
|
| 176 |
+
"cinematic lighting with subtle color grading",
|
| 177 |
+
"ethereal backlight creating a halo effect",
|
| 178 |
+
"dynamic spotlighting focusing on the revealed areas",
|
| 179 |
+
"low-key lighting enhancing the voyeuristic atmosphere"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 180 |
],
|
| 181 |
"stockings": [
|
| 182 |
"sheer thigh-high stockings with a lace top",
|
|
|
|
| 247 |
"a shadow-black thong", "a sunset-red thong"
|
| 248 |
],
|
| 249 |
"lingerie_bras": [
|
| 250 |
+
"push-up bra", "underwire bra", "sheer-cup bra", "demi-cup bra", "smooth-cup bra",
|
| 251 |
"padded bra", "balconette bra", "a light-coverage bra", "transparent-strap bra",
|
| 252 |
"embroidered bra", "pearl-accented bra", "delicate-lace-trim bra", "a plush bra",
|
| 253 |
"a floral-pattern bra", "sheer-panel bra", "a shiny bra", "a flowy-edged bra",
|
|
|
|
| 260 |
"a fire-red bra", "a snow-white bra", "a rose-pink bra", "a sky-blue bra",
|
| 261 |
"a forest-green bra", "a lavender bra", "a sun-yellow bra", "a shadow-black bra",
|
| 262 |
"a sunset-red bra"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 263 |
]
|
| 264 |
}
|
| 265 |
|
| 266 |
class FashionPromptGenerator:
|
| 267 |
def __init__(self):
|
| 268 |
self.fashion_elements = fashion_elements
|
| 269 |
+
self.previous_prompts = set() def generate_unique_prompt(self, celebrity_name):
|
| 270 |
+
"""Genera un prompt único evitando repeticiones"""
|
| 271 |
+
max_attempts = 10
|
| 272 |
+
for attempt in range(max_attempts):
|
| 273 |
+
prompt = self._build_prompt(celebrity_name)
|
| 274 |
+
prompt_hash = hash(prompt)
|
| 275 |
+
if prompt_hash not in self.previous_prompts:
|
| 276 |
+
self.previous_prompts.add(prompt_hash)
|
| 277 |
+
return prompt
|
| 278 |
+
# Si no encuentra único después de varios intentos, devuelve igual
|
| 279 |
+
return self._build_prompt(celebrity_name)
|
| 280 |
|
| 281 |
+
def _build_prompt(self, celebrity_name):
|
| 282 |
primary_color = random.choice(self.fashion_elements["colors"])
|
| 283 |
+
secondary_color = random.choice([c for c in self.fashion_elements["colors"] if c != primary_color])
|
| 284 |
+
|
| 285 |
outfit = random.choice(self.fashion_elements["outfits"])
|
| 286 |
thong = random.choice(self.fashion_elements["lingerie_thongs"])
|
| 287 |
+
bra = random.choice(self.fashion_elements["lingerie_bras"]) if random.random() > 0.3 else None
|
| 288 |
+
|
| 289 |
lingerie_item = f"{primary_color} {thong}"
|
| 290 |
if bra:
|
| 291 |
+
lingerie_item += f" and {secondary_color} {bra}"
|
| 292 |
+
|
| 293 |
+
discovery_moment = random.choice(self.fashion_elements["discovery_moments"])
|
| 294 |
+
reveal_action = random.choice(self.fashion_elements["lingerie_reveal_actions"])
|
| 295 |
+
voyeur_angle = random.choice(self.fashion_elements["voyeuristic_angles"])
|
| 296 |
hairstyle = random.choice(self.fashion_elements["hairstyles"])
|
| 297 |
background = random.choice(self.fashion_elements["backgrounds"])
|
| 298 |
lighting = random.choice(self.fashion_elements["lighting"])
|
|
|
|
| 299 |
expression = random.choice(self.fashion_elements["expressions"])
|
| 300 |
+
stocking = f"{primary_color} {random.choice(self.fashion_elements['stockings'])}"
|
| 301 |
|
| 302 |
prompt = f"""
|
| 303 |
+
Voyeuristic fashion photograph of {celebrity_name}, captured from {voyeur_angle}.
|
| 304 |
+
The composition creates an intimate, almost forbidden viewing experience, {discovery_moment}.
|
| 305 |
+
She is {reveal_action}, creating a natural and unposed moment of exposure.
|
| 306 |
|
| 307 |
+
She wears a {primary_color} {outfit} that subtly reveals her {lingerie_item} during movement.
|
| 308 |
+
Complemented by {stocking}. Her {hairstyle} frames her face as she maintains {expression}.
|
| 309 |
|
| 310 |
+
**Scene & Atmosphere:**
|
| 311 |
+
- **Setting:** {background} with {lighting}
|
| 312 |
+
- **Composition:** Full-body shot from below, maintaining complete figure visibility while emphasizing the intimate reveal
|
| 313 |
+
- **Mood:** Sensual, voyeuristic, natural, and subtly erotic
|
| 314 |
+
- **Focus:** Sharp detail on the revealed lingerie and facial expression, with soft background blur
|
| 315 |
|
| 316 |
+
**Technical Details:**
|
| 317 |
+
- Shot on professional DSLR with 85mm prime lens
|
| 318 |
+
- Shallow depth of field focusing on the intimate moment
|
| 319 |
+
- Natural skin tones with warm color grading
|
| 320 |
+
- Ultra HD resolution, professional retouching
|
| 321 |
|
| 322 |
+
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.
|
| 323 |
|
| 324 |
+
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
|
| 325 |
"""
|
| 326 |
return prompt.strip()
|
| 327 |
|
| 328 |
def generate_five_prompts(self, celebrity_name):
|
| 329 |
+
"""Genera 5 prompts únicos"""
|
| 330 |
+
self.previous_prompts.clear() # Limpiar historial para nueva generación
|
| 331 |
+
return [self.generate_unique_prompt(celebrity_name) for _ in range(5)]
|
| 332 |
|
| 333 |
|
| 334 |
def create_gradio_interface():
|
| 335 |
generator = FashionPromptGenerator()
|
| 336 |
|
| 337 |
+
with gr.Blocks(title="Voyeuristic Fashion Prompt Generator", theme=gr.themes.Soft(), css="""
|
|
|
|
|
|
|
|
|
|
| 338 |
.prompt-box {
|
| 339 |
border: 1px solid #e2e8f0;
|
| 340 |
border-radius: 8px;
|
|
|
|
| 354 |
.dark .prompt-title {
|
| 355 |
color: #e2e8f0;
|
| 356 |
}
|
| 357 |
+
.header {
|
| 358 |
+
text-align: center;
|
| 359 |
+
margin-bottom: 20px;
|
| 360 |
+
}
|
| 361 |
""") as demo:
|
| 362 |
+
|
| 363 |
+
gr.Markdown("""
|
| 364 |
+
# 🔍 Voyeuristic Fashion Prompt Generator
|
| 365 |
+
*Create intimate, discovery-focused fashion prompts with sensual lingerie reveals*
|
| 366 |
+
""")
|
| 367 |
+
|
| 368 |
with gr.Row():
|
| 369 |
+
with gr.Column(scale=4):
|
| 370 |
celebrity_input = gr.Textbox(
|
| 371 |
label="Celebrity Name",
|
| 372 |
+
placeholder="Enter celebrity name (e.g., Scarlett Johansson, Zendaya, Ana de Armas...)",
|
| 373 |
+
info="The celebrity who will appear in the sensual fashion prompts"
|
| 374 |
)
|
| 375 |
with gr.Column(scale=1):
|
| 376 |
+
generate_btn = gr.Button("✨ Generate 5 Unique Prompts", variant="primary", size="lg")
|
| 377 |
+
clear_btn = gr.Button("🗑️ Clear All", variant="secondary")
|
| 378 |
|
| 379 |
gr.Markdown("## Generated Prompts")
|
| 380 |
+
gr.Markdown("*Each prompt features unique angles, discovery moments, and lingerie reveals*")
|
| 381 |
|
| 382 |
output_prompts = []
|
| 383 |
+
prompt_columns = []
|
|
|
|
| 384 |
|
| 385 |
for i in range(5):
|
| 386 |
with gr.Column(visible=False) as prompt_col:
|
| 387 |
+
gr.Markdown(f"### 🎯 Prompt {i+1}", elem_classes="prompt-title")
|
| 388 |
+
prompt_output = gr.Textbox(
|
| 389 |
+
label="",
|
| 390 |
+
lines=12,
|
| 391 |
+
max_lines=15,
|
| 392 |
+
interactive=False,
|
| 393 |
+
elem_id=f"prompt_output_{i}",
|
| 394 |
+
show_copy_button=True,
|
| 395 |
+
elem_classes="prompt-box"
|
| 396 |
+
)
|
|
|
|
| 397 |
output_prompts.append(prompt_output)
|
| 398 |
+
prompt_columns.append(prompt_col)
|
| 399 |
|
| 400 |
def generate_and_display_prompts(celebrity_name):
|
| 401 |
if not celebrity_name.strip():
|
|
|
|
| 404 |
return [gr.update(visible=True)] * 5 + prompts
|
| 405 |
|
| 406 |
def clear_all():
|
| 407 |
+
generator.previous_prompts.clear()
|
| 408 |
return [gr.update(visible=False)] * 5 + [""] * 5
|
| 409 |
|
| 410 |
generate_btn.click(
|
|
|
|
| 420 |
)
|
| 421 |
|
| 422 |
gr.Markdown("---")
|
| 423 |
+
gr.Markdown("### 💡 Try these examples:")
|
| 424 |
gr.Examples(
|
| 425 |
examples=["Zendaya", "Ana de Armas", "Florence Pugh", "Sydney Sweeney", "Margot Robbie"],
|
| 426 |
inputs=celebrity_input,
|
| 427 |
outputs=prompt_columns + output_prompts,
|
| 428 |
fn=generate_and_display_prompts,
|
| 429 |
cache_examples=False,
|
| 430 |
+
label="Click any example to generate prompts"
|
| 431 |
)
|
| 432 |
|
| 433 |
return demo
|