seawolf2357 commited on
Commit
d99e0f6
ยท
verified ยท
1 Parent(s): af31053

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +182 -242
app.py CHANGED
@@ -257,372 +257,312 @@ examples = [
257
  # ===== ์ปค์Šคํ…€ CSS (์ง„ํ•œ ๋ถ‰์€์ƒ‰ ๊ณ ๊ธ‰ ๋””์ž์ธ) =====
258
  custom_css = """
259
  :root {
260
- --color-primary: #8F1A3A;
261
- --color-secondary: #FF4B4B;
262
- --color-accent: #B91C3C;
263
- --color-dark-red: #7F1D1D;
264
- --color-gold: #D4AF37;
265
- --background-fill-primary: linear-gradient(135deg, #450A0A 0%, #7F1D1D 25%, #991B1B 50%, #B91C3C 75%, #DC2626 100%);
266
- --glass-bg: rgba(255, 255, 255, 0.1);
267
- --glass-border: rgba(255, 255, 255, 0.2);
268
- --shadow-primary: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
269
- --shadow-secondary: 0 10px 25px -3px rgba(0, 0, 0, 0.3);
270
- --shadow-accent: 0 4px 15px rgba(185, 28, 60, 0.4);
 
 
 
271
  }
272
 
273
  /* ์ „์ฒด ๋ฐฐ๊ฒฝ */
274
  footer {visibility: hidden;}
275
  .gradio-container {
276
- background: var(--background-fill-primary) !important;
277
  min-height: 100vh;
278
- position: relative;
279
- }
280
-
281
- /* ๋ฐฐ๊ฒฝ์— ํŒจํ„ด ์ถ”๊ฐ€ */
282
- .gradio-container::before {
283
- content: '';
284
- position: absolute;
285
- top: 0;
286
- left: 0;
287
- right: 0;
288
- bottom: 0;
289
- background-image:
290
- radial-gradient(circle at 25% 25%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
291
- radial-gradient(circle at 75% 75%, rgba(212, 175, 55, 0.1) 0%, transparent 50%);
292
- pointer-events: none;
293
- z-index: 1;
294
- }
295
-
296
- /* ๋ฉ”์ธ ์ฝ˜ํ…์ธ  z-index */
297
- .gradio-container > * {
298
- position: relative;
299
- z-index: 2;
300
  }
301
 
302
  /* ํƒ€์ดํ‹€ ์Šคํƒ€์ผ */
303
  .title {
304
- color: #FFFFFF !important;
305
- font-size: 3.5rem !important;
306
- font-weight: 800 !important;
307
  text-align: center;
308
  margin: 2rem 0;
309
- font-family: 'Playfair Display', serif;
310
- text-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);
311
- background: linear-gradient(135deg, #FFFFFF 0%, var(--color-gold) 50%, #FFFFFF 100%);
312
  -webkit-background-clip: text;
313
  -webkit-text-fill-color: transparent;
314
  background-clip: text;
 
315
  }
316
 
317
  .subtitle {
318
- color: #F3F4F6 !important;
319
- font-size: 1.3rem !important;
320
  text-align: center;
321
  margin-bottom: 2rem;
322
- font-style: italic;
323
- text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
324
  }
325
 
326
  .collection-link {
327
  text-align: center;
328
  margin-bottom: 2rem;
329
- font-size: 1.1rem;
330
  }
331
 
332
  .collection-link a {
333
- color: var(--color-gold);
334
  text-decoration: none;
335
  transition: all 0.3s ease;
336
- font-weight: 600;
337
- text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
338
  }
339
 
340
  .collection-link a:hover {
341
- color: #F59E0B;
342
- text-shadow: 0 4px 8px rgba(245, 158, 11, 0.5);
343
  }
344
 
345
- /* ๊ณ ๊ธ‰์Šค๋Ÿฌ์šด 3D ๋ฐ•์Šค ์Šคํƒ€์ผ */
346
  .model-description {
347
- background: linear-gradient(135deg, var(--glass-bg) 0%, rgba(255, 255, 255, 0.05) 100%);
348
- backdrop-filter: blur(20px);
349
- -webkit-backdrop-filter: blur(20px);
350
- border: 1px solid var(--glass-border);
351
- border-radius: 20px;
352
- padding: 30px;
353
- margin: 25px 0;
354
- box-shadow:
355
- var(--shadow-primary),
356
- inset 0 1px 0 rgba(255, 255, 255, 0.2),
357
- 0 0 30px rgba(185, 28, 60, 0.2);
358
- position: relative;
359
- overflow: hidden;
360
- transform: translateZ(0);
361
- }
362
-
363
- .model-description::before {
364
- content: '';
365
- position: absolute;
366
- top: 0;
367
- left: 0;
368
- right: 0;
369
- height: 1px;
370
- background: linear-gradient(90deg, transparent, var(--color-gold), transparent);
371
  }
372
 
373
  .model-description p {
374
- color: #F9FAFB !important;
375
- font-size: 1.1rem;
376
  line-height: 1.6;
377
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
378
  }
379
 
380
  /* ๋ฒ„ํŠผ ์Šคํƒ€์ผ */
381
  button.primary {
382
- background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-accent) 100%) !important;
383
- color: #FFFFFF !important;
384
- border: none !important;
385
- box-shadow:
386
- var(--shadow-accent),
387
- inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
388
- transition: all 0.3s ease !important;
389
  font-weight: 600 !important;
390
- text-transform: uppercase !important;
391
- letter-spacing: 0.5px !important;
392
  }
393
 
394
  button.primary:hover {
395
- transform: translateY(-3px) !important;
396
- box-shadow:
397
- 0 20px 40px rgba(185, 28, 60, 0.4),
398
- inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
399
- background: linear-gradient(135deg, var(--color-accent) 0%, #DC2626 100%) !important;
400
  }
401
 
402
  /* ์ž…๋ ฅ ์ปจํ…Œ์ด๋„ˆ */
403
  .input-container {
404
- background: linear-gradient(135deg, var(--glass-bg) 0%, rgba(255, 255, 255, 0.08) 100%);
405
- backdrop-filter: blur(25px);
406
- -webkit-backdrop-filter: blur(25px);
407
- border: 1px solid var(--glass-border);
408
- border-radius: 20px;
409
- padding: 25px;
410
- margin-bottom: 2rem;
411
- box-shadow: var(--shadow-secondary);
412
- position: relative;
413
- overflow: hidden;
414
- }
415
-
416
- .input-container::before {
417
- content: '';
418
- position: absolute;
419
- top: 0;
420
- left: 0;
421
- right: 0;
422
- height: 2px;
423
- background: linear-gradient(90deg, var(--color-primary), var(--color-gold), var(--color-primary));
424
  }
425
 
426
  /* ๊ณ ๊ธ‰ ์„ค์ • */
427
  .advanced-settings {
428
- background: linear-gradient(135deg, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.1) 100%);
429
- backdrop-filter: blur(15px);
430
- -webkit-backdrop-filter: blur(15px);
431
- border: 1px solid rgba(255, 255, 255, 0.1);
432
- border-radius: 16px;
433
- padding: 20px;
434
- margin-top: 1.5rem;
435
- box-shadow: var(--shadow-secondary);
436
  }
437
 
438
  /* ์˜ˆ์‹œ ์˜์—ญ */
439
  .example-region {
440
- background: linear-gradient(135deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.05) 100%);
441
- backdrop-filter: blur(20px);
442
- -webkit-backdrop-filter: blur(20px);
443
- border: 1px solid rgba(255, 255, 255, 0.15);
444
- border-radius: 16px;
445
- padding: 20px;
446
- margin-top: 1.5rem;
447
- box-shadow: var(--shadow-secondary);
448
  }
449
 
450
- /* ํ”„๋กฌํ”„ํŠธ ์ž…๋ ฅ์นธ ํฌ๊ธฐ 2๋ฐฐ ์ฆ๊ฐ€ + ์Šคํƒ€์ผ */
451
  .large-prompt textarea {
452
  min-height: 120px !important;
453
- font-size: 16px !important;
454
  line-height: 1.5 !important;
455
- background: rgba(0, 0, 0, 0.3) !important;
456
- border: 2px solid rgba(255, 255, 255, 0.2) !important;
457
  border-radius: 12px !important;
458
- color: #FFFFFF !important;
459
- backdrop-filter: blur(10px) !important;
460
  transition: all 0.3s ease !important;
 
461
  }
462
 
463
  .large-prompt textarea:focus {
464
- border-color: var(--color-gold) !important;
465
- box-shadow: 0 0 20px rgba(212, 175, 55, 0.3) !important;
 
466
  }
467
 
468
  .large-prompt textarea::placeholder {
469
- color: rgba(255, 255, 255, 0.6) !important;
 
470
  }
471
 
472
- /* ์ƒ์„ฑ ๋ฒ„ํŠผ ์ž‘๊ฒŒ ๋งŒ๋“ค๊ธฐ + 3D ํšจ๊ณผ */
473
  .small-generate-btn {
474
- max-width: 120px !important;
475
- height: 45px !important;
476
- font-size: 14px !important;
477
- padding: 10px 20px !important;
478
  border-radius: 12px !important;
479
- position: relative !important;
480
- overflow: hidden !important;
481
- }
482
-
483
- .small-generate-btn::before {
484
- content: '';
485
- position: absolute;
486
- top: 0;
487
- left: -100%;
488
- width: 100%;
489
- height: 100%;
490
- background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
491
- transition: left 0.5s ease;
492
- }
493
-
494
- .small-generate-btn:hover::before {
495
- left: 100%;
496
  }
497
 
498
- /* ํ”„๋กฌํ”„ํŠธ ์ฆ๊ฐ• ์„น์…˜ ์Šคํƒ€์ผ */
499
  .prompt-enhance-section {
500
- background: linear-gradient(135deg, rgba(212, 175, 55, 0.15) 0%, rgba(212, 175, 55, 0.05) 100%);
501
- backdrop-filter: blur(15px);
502
- -webkit-backdrop-filter: blur(15px);
503
- border: 1px solid rgba(212, 175, 55, 0.3);
504
- border-radius: 15px;
505
- padding: 20px;
506
- margin-top: 15px;
507
- box-shadow:
508
- 0 8px 25px rgba(0, 0, 0, 0.2),
509
- inset 0 1px 0 rgba(255, 255, 255, 0.1);
510
- position: relative;
511
- }
512
-
513
- .prompt-enhance-section::before {
514
- content: '';
515
- position: absolute;
516
- top: 0;
517
- left: 20px;
518
- right: 20px;
519
- height: 1px;
520
- background: linear-gradient(90deg, transparent, var(--color-gold), transparent);
521
  }
522
 
523
  /* ์Šคํƒ€์ผ ํ”„๋ฆฌ์…‹ ์„น์…˜ */
524
  .style-preset-section {
525
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 100%);
526
- backdrop-filter: blur(15px);
527
- -webkit-backdrop-filter: blur(15px);
528
- border: 1px solid rgba(255, 255, 255, 0.2);
529
- border-radius: 15px;
530
- padding: 20px;
531
- margin-top: 15px;
532
- box-shadow: var(--shadow-secondary);
533
  }
534
 
535
- /* ๋ผ๋ฒจ ํ…์ŠคํŠธ ์ƒ‰์ƒ ๋ฐ ํ•œ๊ธ€ ์ž‘์€ ๊ธ€์ž ์Šคํƒ€์ผ */
536
  label {
537
- color: #F9FAFB !important;
538
  font-weight: 600 !important;
539
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5) !important;
540
- }
541
-
542
- /* ํ•œ๊ธ€ ๋ถ€๋ถ„์„ ์ž‘๊ฒŒ ํ‘œ์‹œํ•˜๋Š” ์Šคํƒ€์ผ */
543
- label::after {
544
- font-size: 0.8em !important;
545
- opacity: 0.8 !important;
546
- font-weight: 400 !important;
547
- }
548
-
549
- /* ์ฒดํฌ๋ฐ•์Šค์™€ ๋ผ๋””์˜ค ๋ฒ„ํŠผ ๋ผ๋ฒจ์˜ ํ•œ๊ธ€ ๋ถ€๋ถ„ ์ž‘๊ฒŒ */
550
- .gradio-checkbox label,
551
- .gradio-radio label {
552
- font-size: 1rem !important;
553
  }
554
 
555
- /* ์ •๋ณด ํ…์ŠคํŠธ ์Šคํƒ€์ผ */
556
  .gr-info, .gr-textbox-info {
557
- color: rgba(255, 255, 255, 0.8) !important;
558
  font-size: 0.85rem !important;
559
- font-style: italic !important;
560
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) !important;
561
  line-height: 1.4 !important;
562
  }
563
 
564
- /* placeholder ํ…์ŠคํŠธ ์Šคํƒ€์ผ */
565
- .large-prompt textarea::placeholder {
566
- color: rgba(255, 255, 255, 0.5) !important;
567
- font-style: italic !important;
568
- }
569
-
570
- /* ์Šฌ๋ผ์ด๋” ๋ผ๋ฒจ์˜ ํ•œ๊ธ€ ๋ถ€๋ถ„ ์Šคํƒ€์ผ๋ง */
571
- .gr-block.gr-box .gr-form .gr-form-gap .gr-form-gap label {
572
- font-size: 0.95rem !important;
573
- }
574
-
575
- /* ์•„์ฝ”๋””์–ธ ํ—ค๋”์˜ ํ•œ๊ธ€ ๋ถ€๋ถ„ ์ž‘๊ฒŒ */
576
- .gr-accordion .gr-accordion-header {
577
- font-size: 1.1rem !important;
578
- }
579
-
580
- /* ์˜ˆ์‹œ ๋งˆํฌ๋‹ค์šด์˜ ํ•œ๊ธ€ ๋ถ€๋ถ„ ์ž‘๊ฒŒ */
581
  .example-region h3 {
582
- color: #F9FAFB !important;
583
  font-weight: 600 !important;
584
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5) !important;
585
  }
586
 
587
- /* ๋ผ๋””์˜ค ๋ฒ„ํŠผ ๋ฐ ์ฒดํฌ๋ฐ•์Šค ์Šคํƒ€์ผ */
588
  input[type="radio"], input[type="checkbox"] {
589
- accent-color: var(--color-gold) !important;
590
  }
591
 
592
- /* ์Šฌ๋ผ์ด๋” ์Šคํƒ€์ผ */
593
  input[type="range"] {
594
- accent-color: var(--color-gold) !important;
595
  }
596
 
597
  /* ๊ฒฐ๊ณผ ์ด๋ฏธ์ง€ ์ปจํ…Œ์ด๋„ˆ */
598
  .image-container {
599
- border-radius: 16px !important;
600
  overflow: hidden !important;
601
- box-shadow: var(--shadow-primary) !important;
602
- background: rgba(0, 0, 0, 0.3) !important;
603
- backdrop-filter: blur(10px) !important;
 
 
 
 
 
604
  }
605
 
606
- /* ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ถ”๊ฐ€ */
607
- @keyframes shimmer {
608
- 0% { transform: translateX(-100%); }
609
- 100% { transform: translateX(100%); }
 
610
  }
611
 
 
 
 
 
 
 
 
 
612
  .model-description, .input-container, .prompt-enhance-section, .style-preset-section {
613
- animation: fadeInUp 0.6s ease-out;
614
  }
615
 
616
  @keyframes fadeInUp {
617
  from {
618
  opacity: 0;
619
- transform: translateY(30px);
620
  }
621
  to {
622
  opacity: 1;
623
  transform: translateY(0);
624
  }
625
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
626
  """
627
 
628
  # ===== Gradio UI =====
 
257
  # ===== ์ปค์Šคํ…€ CSS (์ง„ํ•œ ๋ถ‰์€์ƒ‰ ๊ณ ๊ธ‰ ๋””์ž์ธ) =====
258
  custom_css = """
259
  :root {
260
+ --color-primary: #E91E63;
261
+ --color-secondary: #FCE4EC;
262
+ --color-accent: #F8BBD9;
263
+ --color-rose: #F06292;
264
+ --color-gold: #FFB74D;
265
+ --color-warm-gray: #F5F5F5;
266
+ --color-dark-gray: #424242;
267
+ --background-primary: linear-gradient(135deg, #FAFAFA 0%, #F5F5F5 50%, #EEEEEE 100%);
268
+ --background-accent: linear-gradient(135deg, #FCE4EC 0%, #F8BBD9 100%);
269
+ --text-primary: #212121;
270
+ --text-secondary: #757575;
271
+ --shadow-soft: 0 4px 20px rgba(0, 0, 0, 0.08);
272
+ --shadow-medium: 0 8px 30px rgba(0, 0, 0, 0.12);
273
+ --border-radius: 16px;
274
  }
275
 
276
  /* ์ „์ฒด ๋ฐฐ๊ฒฝ */
277
  footer {visibility: hidden;}
278
  .gradio-container {
279
+ background: var(--background-primary) !important;
280
  min-height: 100vh;
281
+ font-family: 'Inter', 'Noto Sans KR', sans-serif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
282
  }
283
 
284
  /* ํƒ€์ดํ‹€ ์Šคํƒ€์ผ */
285
  .title {
286
+ color: var(--text-primary) !important;
287
+ font-size: 3rem !important;
288
+ font-weight: 700 !important;
289
  text-align: center;
290
  margin: 2rem 0;
291
+ background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-rose) 50%, var(--color-gold) 100%);
 
 
292
  -webkit-background-clip: text;
293
  -webkit-text-fill-color: transparent;
294
  background-clip: text;
295
+ letter-spacing: -0.02em;
296
  }
297
 
298
  .subtitle {
299
+ color: var(--text-secondary) !important;
300
+ font-size: 1.2rem !important;
301
  text-align: center;
302
  margin-bottom: 2rem;
303
+ font-weight: 400;
 
304
  }
305
 
306
  .collection-link {
307
  text-align: center;
308
  margin-bottom: 2rem;
309
+ font-size: 1rem;
310
  }
311
 
312
  .collection-link a {
313
+ color: var(--color-primary);
314
  text-decoration: none;
315
  transition: all 0.3s ease;
316
+ font-weight: 500;
317
+ border-bottom: 1px solid transparent;
318
  }
319
 
320
  .collection-link a:hover {
321
+ color: var(--color-rose);
322
+ border-bottom-color: var(--color-rose);
323
  }
324
 
325
+ /* ์‹ฌํ”Œํ•œ ์นด๋“œ ์Šคํƒ€์ผ */
326
  .model-description {
327
+ background: rgba(255, 255, 255, 0.9);
328
+ border: 1px solid rgba(233, 30, 99, 0.1);
329
+ border-radius: var(--border-radius);
330
+ padding: 2rem;
331
+ margin: 1.5rem 0;
332
+ box-shadow: var(--shadow-soft);
333
+ backdrop-filter: blur(10px);
334
+ -webkit-backdrop-filter: blur(10px);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
335
  }
336
 
337
  .model-description p {
338
+ color: var(--text-primary) !important;
339
+ font-size: 1rem;
340
  line-height: 1.6;
341
+ margin: 0;
342
  }
343
 
344
  /* ๋ฒ„ํŠผ ์Šคํƒ€์ผ */
345
  button.primary {
346
+ background: var(--background-accent) !important;
347
+ color: var(--color-primary) !important;
348
+ border: 1px solid var(--color-accent) !important;
349
+ border-radius: 12px !important;
350
+ box-shadow: var(--shadow-soft) !important;
351
+ transition: all 0.2s ease !important;
 
352
  font-weight: 600 !important;
353
+ font-size: 0.95rem !important;
 
354
  }
355
 
356
  button.primary:hover {
357
+ background: linear-gradient(135deg, var(--color-accent) 0%, var(--color-secondary) 100%) !important;
358
+ transform: translateY(-1px) !important;
359
+ box-shadow: var(--shadow-medium) !important;
 
 
360
  }
361
 
362
  /* ์ž…๋ ฅ ์ปจํ…Œ์ด๋„ˆ */
363
  .input-container {
364
+ background: rgba(255, 255, 255, 0.8);
365
+ border: 1px solid rgba(233, 30, 99, 0.15);
366
+ border-radius: var(--border-radius);
367
+ padding: 1.5rem;
368
+ margin-bottom: 1.5rem;
369
+ box-shadow: var(--shadow-soft);
370
+ backdrop-filter: blur(10px);
371
+ -webkit-backdrop-filter: blur(10px);
 
 
 
 
 
 
 
 
 
 
 
 
372
  }
373
 
374
  /* ๊ณ ๊ธ‰ ์„ค์ • */
375
  .advanced-settings {
376
+ background: rgba(255, 255, 255, 0.6);
377
+ border: 1px solid rgba(233, 30, 99, 0.1);
378
+ border-radius: var(--border-radius);
379
+ padding: 1.5rem;
380
+ margin-top: 1rem;
381
+ box-shadow: var(--shadow-soft);
382
+ backdrop-filter: blur(8px);
383
+ -webkit-backdrop-filter: blur(8px);
384
  }
385
 
386
  /* ์˜ˆ์‹œ ์˜์—ญ */
387
  .example-region {
388
+ background: rgba(252, 228, 236, 0.3);
389
+ border: 1px solid rgba(233, 30, 99, 0.15);
390
+ border-radius: var(--border-radius);
391
+ padding: 1.5rem;
392
+ margin-top: 1rem;
393
+ box-shadow: var(--shadow-soft);
 
 
394
  }
395
 
396
+ /* ํ”„๋กฌํ”„ํŠธ ์ž…๋ ฅ์นธ ์Šคํƒ€์ผ */
397
  .large-prompt textarea {
398
  min-height: 120px !important;
399
+ font-size: 15px !important;
400
  line-height: 1.5 !important;
401
+ background: rgba(255, 255, 255, 0.9) !important;
402
+ border: 2px solid rgba(233, 30, 99, 0.2) !important;
403
  border-radius: 12px !important;
404
+ color: var(--text-primary) !important;
 
405
  transition: all 0.3s ease !important;
406
+ padding: 1rem !important;
407
  }
408
 
409
  .large-prompt textarea:focus {
410
+ border-color: var(--color-primary) !important;
411
+ box-shadow: 0 0 0 3px rgba(233, 30, 99, 0.1) !important;
412
+ outline: none !important;
413
  }
414
 
415
  .large-prompt textarea::placeholder {
416
+ color: var(--text-secondary) !important;
417
+ font-style: italic;
418
  }
419
 
420
+ /* ์ƒ์„ฑ ๋ฒ„ํŠผ */
421
  .small-generate-btn {
422
+ max-width: 140px !important;
423
+ height: 48px !important;
424
+ font-size: 15px !important;
425
+ padding: 12px 24px !important;
426
  border-radius: 12px !important;
427
+ font-weight: 600 !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
428
  }
429
 
430
+ /* ํ”„๋กฌํ”„ํŠธ ์ฆ๊ฐ• ์„น์…˜ */
431
  .prompt-enhance-section {
432
+ background: linear-gradient(135deg, rgba(255, 183, 77, 0.1) 0%, rgba(252, 228, 236, 0.2) 100%);
433
+ border: 1px solid rgba(255, 183, 77, 0.3);
434
+ border-radius: var(--border-radius);
435
+ padding: 1.2rem;
436
+ margin-top: 1rem;
437
+ box-shadow: var(--shadow-soft);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
438
  }
439
 
440
  /* ์Šคํƒ€์ผ ํ”„๋ฆฌ์…‹ ์„น์…˜ */
441
  .style-preset-section {
442
+ background: linear-gradient(135deg, rgba(248, 187, 217, 0.15) 0%, rgba(252, 228, 236, 0.2) 100%);
443
+ border: 1px solid rgba(233, 30, 99, 0.2);
444
+ border-radius: var(--border-radius);
445
+ padding: 1.2rem;
446
+ margin-top: 1rem;
447
+ box-shadow: var(--shadow-soft);
 
 
448
  }
449
 
450
+ /* ๋ผ๋ฒจ ํ…์ŠคํŠธ */
451
  label {
452
+ color: var(--text-primary) !important;
453
  font-weight: 600 !important;
454
+ font-size: 0.95rem !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
455
  }
456
 
457
+ /* ์ •๋ณด ํ…์ŠคํŠธ */
458
  .gr-info, .gr-textbox-info {
459
+ color: var(--text-secondary) !important;
460
  font-size: 0.85rem !important;
 
 
461
  line-height: 1.4 !important;
462
  }
463
 
464
+ /* ์˜ˆ์‹œ ๋งˆํฌ๋‹ค์šด */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
465
  .example-region h3 {
466
+ color: var(--text-primary) !important;
467
  font-weight: 600 !important;
468
+ margin-bottom: 1rem !important;
469
  }
470
 
471
+ /* ํผ ์š”์†Œ๋“ค */
472
  input[type="radio"], input[type="checkbox"] {
473
+ accent-color: var(--color-primary) !important;
474
  }
475
 
 
476
  input[type="range"] {
477
+ accent-color: var(--color-primary) !important;
478
  }
479
 
480
  /* ๊ฒฐ๊ณผ ์ด๋ฏธ์ง€ ์ปจํ…Œ์ด๋„ˆ */
481
  .image-container {
482
+ border-radius: var(--border-radius) !important;
483
  overflow: hidden !important;
484
+ box-shadow: var(--shadow-medium) !important;
485
+ background: rgba(255, 255, 255, 0.9) !important;
486
+ border: 1px solid rgba(233, 30, 99, 0.1) !important;
487
+ }
488
+
489
+ /* ์Šฌ๋ผ์ด๋” ์ปจํ…Œ์ด๋„ˆ ์Šคํƒ€์ผ๋ง */
490
+ .gr-slider {
491
+ margin: 0.5rem 0 !important;
492
  }
493
 
494
+ /* ์•„์ฝ”๋””์–ธ ์Šคํƒ€์ผ */
495
+ .gr-accordion {
496
+ border: 1px solid rgba(233, 30, 99, 0.15) !important;
497
+ border-radius: var(--border-radius) !important;
498
+ background: rgba(255, 255, 255, 0.7) !important;
499
  }
500
 
501
+ .gr-accordion-header {
502
+ background: var(--background-accent) !important;
503
+ color: var(--color-primary) !important;
504
+ font-weight: 600 !important;
505
+ border-radius: var(--border-radius) var(--border-radius) 0 0 !important;
506
+ }
507
+
508
+ /* ๋ถ€๋“œ๋Ÿฌ์šด ์• ๋‹ˆ๋ฉ”์ด์…˜ */
509
  .model-description, .input-container, .prompt-enhance-section, .style-preset-section {
510
+ animation: fadeInUp 0.4s ease-out;
511
  }
512
 
513
  @keyframes fadeInUp {
514
  from {
515
  opacity: 0;
516
+ transform: translateY(20px);
517
  }
518
  to {
519
  opacity: 1;
520
  transform: translateY(0);
521
  }
522
  }
523
+
524
+ /* ์ „์ฒด์ ์ธ ํ…์ŠคํŠธ ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ */
525
+ * {
526
+ -webkit-font-smoothing: antialiased;
527
+ -moz-osx-font-smoothing: grayscale;
528
+ }
529
+
530
+ /* ๋“œ๋กญ๋‹ค์šด ๋ฐ ์…€๋ ‰ํŠธ ์Šคํƒ€์ผ */
531
+ select, .gr-dropdown {
532
+ background: rgba(255, 255, 255, 0.9) !important;
533
+ border: 1px solid rgba(233, 30, 99, 0.2) !important;
534
+ border-radius: 8px !important;
535
+ color: var(--text-primary) !important;
536
+ }
537
+
538
+ /* ์ฒดํฌ๋ฐ•์Šค์™€ ๋ผ๋””์˜ค ๋ฒ„ํŠผ ๊ฐœ์„  */
539
+ .gr-checkbox, .gr-radio {
540
+ background: transparent !important;
541
+ }
542
+
543
+ /* ์ „์ฒด ์ปจํ…Œ์ด๋„ˆ ์—ฌ๋ฐฑ ์กฐ์ • */
544
+ .gr-container {
545
+ max-width: 1200px !important;
546
+ margin: 0 auto !important;
547
+ padding: 2rem 1rem !important;
548
+ }
549
+
550
+ /* ๋ชจ๋ฐ”์ผ ๋ฐ˜์‘ํ˜• */
551
+ @media (max-width: 768px) {
552
+ .title {
553
+ font-size: 2.2rem !important;
554
+ }
555
+
556
+ .model-description, .input-container, .advanced-settings, .example-region {
557
+ padding: 1rem !important;
558
+ margin: 1rem 0 !important;
559
+ }
560
+
561
+ .large-prompt textarea {
562
+ min-height: 100px !important;
563
+ font-size: 14px !important;
564
+ }
565
+ }
566
  """
567
 
568
  # ===== Gradio UI =====