Jonny001 commited on
Commit
4aeaed8
·
verified ·
1 Parent(s): 365c42a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +261 -123
app.py CHANGED
@@ -45,9 +45,10 @@ custom_css = """
45
  @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700;900&family=Rajdhani:wght@300;400;500;600;700&display=swap');
46
 
47
  :root {
48
- --cyber-blue: #00f3ff;
49
- --cyber-pink: #ff00ff;
50
- --cyber-green: #00ff9d;
 
51
  --dark-bg: #0a0a12;
52
  --card-bg: rgba(20, 20, 30, 0.95);
53
  }
@@ -61,217 +62,351 @@ custom_css = """
61
  body {
62
  background: var(--dark-bg) !important;
63
  font-family: 'Rajdhani', sans-serif !important;
 
64
  }
65
 
66
  .gradio-container {
67
- background: linear-gradient(135deg, var(--dark-bg) 0%, #000000 100%) !important;
68
  min-height: 100vh;
69
  color: #ffffff !important;
70
  }
71
 
72
- /* Header Styles */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  .header-container {
74
  text-align: center;
75
- padding: 40px 20px 30px 20px;
76
- background: linear-gradient(180deg, rgba(10,10,18,0.9) 0%, rgba(10,10,18,0.7) 100%);
77
- border-bottom: 1px solid rgba(0, 243, 255, 0.3);
78
- margin-bottom: 10px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  }
80
 
81
  .main-title {
82
  font-family: 'Orbitron', monospace !important;
83
  font-weight: 900 !important;
84
- font-size: 3rem !important;
85
- background: linear-gradient(45deg, #00f3ff, #ff00ff, #00ff9d) !important;
86
  -webkit-background-clip: text !important;
87
  -webkit-text-fill-color: transparent !important;
88
- margin-bottom: 10px !important;
89
- letter-spacing: 2px !important;
 
 
 
 
 
 
90
  }
91
 
92
  .subtitle {
93
  font-family: 'Orbitron', monospace !important;
94
- font-size: 1.2rem !important;
95
- color: #00ff9d !important;
96
- letter-spacing: 1px !important;
97
- opacity: 0.9;
 
 
98
  }
99
 
100
- /* Tab Styles */
101
  .tab-nav {
102
- background: rgba(20, 20, 30, 0.8) !important;
103
- border: 1px solid rgba(0, 243, 255, 0.2) !important;
104
- border-radius: 12px !important;
105
- padding: 8px !important;
106
- margin: 20px auto !important;
107
- max-width: 500px !important;
 
 
 
108
  }
109
 
110
  .tab-nav button {
111
  font-family: 'Orbitron', monospace !important;
112
- font-weight: 600 !important;
113
- font-size: 0.9rem !important;
114
  background: transparent !important;
115
- color: #00f3ff !important;
116
- border: 1px solid transparent !important;
117
- border-radius: 8px !important;
118
- padding: 12px 20px !important;
119
- margin: 0 2px !important;
120
- transition: all 0.3s ease !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
  }
122
 
123
  .tab-nav button.selected {
124
  background: rgba(0, 243, 255, 0.15) !important;
125
- border: 1px solid #00f3ff !important;
126
- box-shadow: 0 0 15px rgba(0, 243, 255, 0.3) !important;
 
 
 
 
127
  }
128
 
129
  .tab-nav button:hover:not(.selected) {
130
- border: 1px solid #ff00ff !important;
131
- color: #ff00ff !important;
 
 
132
  }
133
 
134
- /* Content Cards */
135
  .tabitem {
136
  background: var(--card-bg) !important;
137
- border: 1px solid rgba(0, 243, 255, 0.1) !important;
138
- border-radius: 16px !important;
139
- margin: 20px 0 !important;
140
- padding: 25px !important;
 
 
 
141
  }
142
 
143
- /* Input Components */
144
  .gr-image {
145
- background: rgba(0, 0, 0, 0.3) !important;
146
- border: 2px dashed rgba(0, 243, 255, 0.3) !important;
147
- border-radius: 12px !important;
148
- min-height: 300px !important;
 
 
 
 
 
 
149
  }
150
 
151
  .gr-textbox {
152
- background: rgba(0, 0, 0, 0.3) !important;
153
- border: 2px solid rgba(0, 243, 255, 0.3) !important;
154
- border-radius: 10px !important;
155
  color: #ffffff !important;
156
- font-size: 1rem !important;
157
- padding: 15px !important;
 
 
 
 
 
 
158
  }
159
 
160
  .gr-textbox::placeholder {
161
- color: rgba(0, 243, 255, 0.6) !important;
 
162
  }
163
 
164
- /* Labels */
165
  .label {
166
  font-family: 'Orbitron', monospace !important;
167
- font-weight: 600 !important;
168
- font-size: 1.1rem !important;
169
- color: #00ff9d !important;
170
- margin-bottom: 15px !important;
171
- letter-spacing: 0.5px !important;
 
 
 
172
  }
173
 
174
- /* Buttons */
175
- .gr-button {
176
  font-family: 'Orbitron', monospace !important;
177
- font-weight: 700 !important;
178
- font-size: 1rem !important;
179
- background: linear-gradient(45deg, #00f3ff, #00ff9d) !important;
180
  color: #000000 !important;
181
  border: none !important;
182
- border-radius: 10px !important;
183
- padding: 15px 30px !important;
184
- margin: 10px 0 !important;
185
- transition: all 0.3s ease !important;
186
  text-transform: uppercase !important;
187
- letter-spacing: 1px !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
188
  }
189
 
190
- .gr-button:hover {
191
- transform: translateY(-2px) !important;
192
- box-shadow: 0 10px 25px rgba(0, 243, 255, 0.4) !important;
 
 
 
 
193
  }
194
 
195
- /* Image Slider - Fixed Styling */
 
 
 
 
196
  .image-slider-container {
197
- border: 2px solid rgba(0, 243, 255, 0.2) !important;
198
- border-radius: 12px !important;
199
- padding: 10px !important;
200
- background: rgba(0, 0, 0, 0.2) !important;
 
 
 
201
  }
202
 
203
- /* Markdown Text */
204
  .gr-markdown {
205
  color: #ffffff !important;
206
  font-family: 'Rajdhani', sans-serif !important;
207
- font-size: 1rem !important;
208
- line-height: 1.6 !important;
209
  }
210
 
211
  .gr-markdown h3 {
212
  font-family: 'Orbitron', monospace !important;
213
- font-size: 1.3rem !important;
214
- color: #00f3ff !important;
215
- margin: 20px 0 15px 0 !important;
216
- border-left: 3px solid #ff00ff !important;
217
- padding-left: 15px !important;
 
218
  }
219
 
220
- /* Footer */
221
  .footer {
222
  text-align: center;
223
- padding: 30px 20px;
224
- color: #00f3ff !important;
225
  font-family: 'Rajdhani', sans-serif !important;
226
- border-top: 1px solid rgba(0, 243, 255, 0.2);
227
- margin-top: 30px;
 
228
  }
229
 
230
  .footer h3 {
231
  font-family: 'Orbitron', monospace !important;
232
- font-size: 1.2rem !important;
233
- margin-bottom: 10px !important;
234
- color: #00ff9d !important;
 
235
  }
236
 
237
  .footer p {
238
- margin: 5px 0 !important;
239
- font-size: 0.95rem !important;
240
  opacity: 0.9;
241
  }
242
 
243
  /* Layout Improvements */
244
  .gr-row {
245
- gap: 25px !important;
246
  margin: 0 !important;
247
  }
248
 
249
  .gr-column {
250
- gap: 20px !important;
251
  }
252
 
253
- /* Scrollbar */
254
  ::-webkit-scrollbar {
255
- width: 8px;
256
  }
257
 
258
  ::-webkit-scrollbar-track {
259
  background: rgba(0, 243, 255, 0.1);
 
260
  }
261
 
262
  ::-webkit-scrollbar-thumb {
263
- background: linear-gradient(#00f3ff, #00ff9d);
264
- border-radius: 4px;
 
 
 
 
 
265
  }
266
 
267
  /* Responsive Design */
268
  @media (max-width: 768px) {
269
  .main-title {
270
- font-size: 2.2rem !important;
271
  }
272
 
273
  .subtitle {
274
- font-size: 1rem !important;
275
  }
276
 
277
  .tab-nav {
@@ -280,19 +415,24 @@ body {
280
  }
281
 
282
  .tab-nav button {
283
- font-size: 0.8rem !important;
284
- padding: 10px 15px !important;
 
 
 
 
 
285
  }
286
  }
287
  """
288
 
289
  with gr.Blocks(css=custom_css, theme=gr.themes.Base(primary_hue="blue")) as demo:
290
 
291
- # Header
292
  gr.HTML("""
293
  <div class="header-container">
294
  <div class="main-title">⚡ CYBER-BG REMOVER ⚡</div>
295
- <div class="subtitle">AI-POWERED BACKGROUND ERASURE TECHNOLOGY</div>
296
  </div>
297
  """)
298
 
@@ -302,24 +442,23 @@ with gr.Blocks(css=custom_css, theme=gr.themes.Base(primary_hue="blue")) as demo
302
  with gr.Column(scale=1):
303
  gr.Markdown("### 📤 UPLOAD IMAGE")
304
  image_upload = gr.Image(
305
- label="Drag & Drop or Click to Upload",
306
  type="pil",
307
- height=320
308
  )
309
  process_btn1 = gr.Button(
310
- "🚀 Remove Background",
311
- variant="primary",
312
- size="lg"
313
  )
314
 
315
  with gr.Column(scale=1):
316
  gr.Markdown("### 🎯 PROCESSED RESULT")
317
  with gr.Column(elem_classes="image-slider-container"):
318
  slider1 = gr.ImageSlider(
319
- label="Original vs Processed",
320
  type="pil",
321
  format="png",
322
- height=350,
323
  show_download_button=True
324
  )
325
 
@@ -334,25 +473,24 @@ with gr.Blocks(css=custom_css, theme=gr.themes.Base(primary_hue="blue")) as demo
334
  with gr.Column(scale=1):
335
  gr.Markdown("### 🔗 ENTER IMAGE URL")
336
  url_input = gr.Textbox(
337
- label="Paste Image URL",
338
  placeholder="https://example.com/image.jpg",
339
  lines=1,
340
  max_lines=1
341
  )
342
  process_btn2 = gr.Button(
343
- "🚀 Remove Background",
344
- variant="primary",
345
- size="lg"
346
  )
347
 
348
  with gr.Column(scale=1):
349
  gr.Markdown("### 🎯 PROCESSED RESULT")
350
  with gr.Column(elem_classes="image-slider-container"):
351
  slider2 = gr.ImageSlider(
352
- label="Original vs Processed",
353
  type="pil",
354
  format="png",
355
- height=350,
356
  show_download_button=True
357
  )
358
 
@@ -362,13 +500,13 @@ with gr.Blocks(css=custom_css, theme=gr.themes.Base(primary_hue="blue")) as demo
362
  outputs=slider2
363
  )
364
 
365
- # Footer
366
  gr.HTML("""
367
  <div class="footer">
368
  <h3>🛠️ SYSTEM STATUS: ONLINE</h3>
369
- <p><strong>BiRefNet AI Core:</strong> Operational</p>
370
- <p><strong>Processing Unit:</strong> Ready</p>
371
- <p><em>Cyber-BG Remover v2.0 - Advanced Background Elimination</em></p>
372
  </div>
373
  """)
374
 
 
45
  @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700;900&family=Rajdhani:wght@300;400;500;600;700&display=swap');
46
 
47
  :root {
48
+ --neon-blue: #00f3ff;
49
+ --neon-pink: #ff00ff;
50
+ --neon-green: #00ff9d;
51
+ --neon-purple: #8a2be2;
52
  --dark-bg: #0a0a12;
53
  --card-bg: rgba(20, 20, 30, 0.95);
54
  }
 
62
  body {
63
  background: var(--dark-bg) !important;
64
  font-family: 'Rajdhani', sans-serif !important;
65
+ overflow-x: hidden;
66
  }
67
 
68
  .gradio-container {
69
+ background: linear-gradient(135deg, #0a0a12 0%, #000000 100%) !important;
70
  min-height: 100vh;
71
  color: #ffffff !important;
72
  }
73
 
74
+ /* Neon Glow Effects */
75
+ .neon-glow {
76
+ text-shadow:
77
+ 0 0 5px currentColor,
78
+ 0 0 10px currentColor,
79
+ 0 0 15px currentColor,
80
+ 0 0 20px currentColor;
81
+ }
82
+
83
+ .neon-border {
84
+ box-shadow:
85
+ 0 0 5px currentColor,
86
+ 0 0 10px currentColor,
87
+ 0 0 15px currentColor,
88
+ inset 0 0 5px currentColor;
89
+ }
90
+
91
+ /* Header Styles with Neon */
92
  .header-container {
93
  text-align: center;
94
+ padding: 50px 20px 40px 20px;
95
+ background: linear-gradient(180deg, rgba(10,10,18,0.95) 0%, rgba(10,10,18,0.8) 100%);
96
+ border-bottom: 3px solid var(--neon-blue);
97
+ margin-bottom: 20px;
98
+ position: relative;
99
+ }
100
+
101
+ .header-container::before {
102
+ content: '';
103
+ position: absolute;
104
+ top: 0;
105
+ left: 0;
106
+ right: 0;
107
+ bottom: 0;
108
+ background: linear-gradient(45deg,
109
+ transparent 0%,
110
+ rgba(0, 243, 255, 0.1) 50%,
111
+ transparent 100%);
112
+ animation: shimmer 3s ease-in-out infinite;
113
+ }
114
+
115
+ @keyframes shimmer {
116
+ 0%, 100% { opacity: 0.3; }
117
+ 50% { opacity: 0.8; }
118
  }
119
 
120
  .main-title {
121
  font-family: 'Orbitron', monospace !important;
122
  font-weight: 900 !important;
123
+ font-size: 3.5rem !important;
124
+ background: linear-gradient(45deg, var(--neon-blue), var(--neon-pink), var(--neon-green)) !important;
125
  -webkit-background-clip: text !important;
126
  -webkit-text-fill-color: transparent !important;
127
+ margin-bottom: 15px !important;
128
+ letter-spacing: 3px !important;
129
+ text-transform: uppercase;
130
+ position: relative;
131
+ text-shadow:
132
+ 0 0 10px var(--neon-blue),
133
+ 0 0 20px var(--neon-pink),
134
+ 0 0 30px var(--neon-green) !important;
135
  }
136
 
137
  .subtitle {
138
  font-family: 'Orbitron', monospace !important;
139
+ font-size: 1.4rem !important;
140
+ color: var(--neon-green) !important;
141
+ letter-spacing: 2px !important;
142
+ text-shadow:
143
+ 0 0 10px var(--neon-green),
144
+ 0 0 20px rgba(0, 255, 157, 0.5) !important;
145
  }
146
 
147
+ /* Tab Styles with Neon */
148
  .tab-nav {
149
+ background: rgba(20, 20, 30, 0.9) !important;
150
+ border: 2px solid var(--neon-blue) !important;
151
+ border-radius: 15px !important;
152
+ padding: 10px !important;
153
+ margin: 30px auto !important;
154
+ max-width: 550px !important;
155
+ box-shadow:
156
+ 0 0 20px rgba(0, 243, 255, 0.3),
157
+ inset 0 0 20px rgba(0, 243, 255, 0.1) !important;
158
  }
159
 
160
  .tab-nav button {
161
  font-family: 'Orbitron', monospace !important;
162
+ font-weight: 700 !important;
163
+ font-size: 1rem !important;
164
  background: transparent !important;
165
+ color: var(--neon-blue) !important;
166
+ border: 2px solid transparent !important;
167
+ border-radius: 10px !important;
168
+ padding: 15px 25px !important;
169
+ margin: 0 5px !important;
170
+ transition: all 0.4s ease !important;
171
+ text-transform: uppercase;
172
+ letter-spacing: 1.5px;
173
+ position: relative;
174
+ overflow: hidden;
175
+ }
176
+
177
+ .tab-nav button::before {
178
+ content: '';
179
+ position: absolute;
180
+ top: 0;
181
+ left: -100%;
182
+ width: 100%;
183
+ height: 100%;
184
+ background: linear-gradient(90deg, transparent, rgba(0, 243, 255, 0.4), transparent);
185
+ transition: left 0.6s ease;
186
+ }
187
+
188
+ .tab-nav button:hover::before {
189
+ left: 100%;
190
  }
191
 
192
  .tab-nav button.selected {
193
  background: rgba(0, 243, 255, 0.15) !important;
194
+ border: 2px solid var(--neon-blue) !important;
195
+ box-shadow:
196
+ 0 0 20px var(--neon-blue),
197
+ 0 0 40px rgba(0, 243, 255, 0.3) !important;
198
+ color: var(--neon-blue) !important;
199
+ text-shadow: 0 0 10px currentColor !important;
200
  }
201
 
202
  .tab-nav button:hover:not(.selected) {
203
+ border: 2px solid var(--neon-pink) !important;
204
+ color: var(--neon-pink) !important;
205
+ box-shadow: 0 0 15px var(--neon-pink) !important;
206
+ text-shadow: 0 0 10px currentColor !important;
207
  }
208
 
209
+ /* Content Cards with Neon */
210
  .tabitem {
211
  background: var(--card-bg) !important;
212
+ border: 2px solid rgba(0, 243, 255, 0.3) !important;
213
+ border-radius: 20px !important;
214
+ margin: 25px 0 !important;
215
+ padding: 30px !important;
216
+ box-shadow:
217
+ 0 0 30px rgba(0, 243, 255, 0.2),
218
+ inset 0 0 30px rgba(0, 243, 255, 0.05) !important;
219
  }
220
 
221
+ /* Input Components with Neon */
222
  .gr-image {
223
+ background: rgba(0, 0, 0, 0.4) !important;
224
+ border: 3px dashed var(--neon-blue) !important;
225
+ border-radius: 15px !important;
226
+ min-height: 320px !important;
227
+ transition: all 0.3s ease !important;
228
+ }
229
+
230
+ .gr-image:hover {
231
+ border-color: var(--neon-pink) !important;
232
+ box-shadow: 0 0 25px rgba(255, 0, 255, 0.3) !important;
233
  }
234
 
235
  .gr-textbox {
236
+ background: rgba(0, 0, 0, 0.4) !important;
237
+ border: 2px solid var(--neon-blue) !important;
238
+ border-radius: 12px !important;
239
  color: #ffffff !important;
240
+ font-size: 1.1rem !important;
241
+ padding: 18px !important;
242
+ transition: all 0.3s ease !important;
243
+ }
244
+
245
+ .gr-textbox:focus {
246
+ border-color: var(--neon-pink) !important;
247
+ box-shadow: 0 0 20px rgba(255, 0, 255, 0.3) !important;
248
  }
249
 
250
  .gr-textbox::placeholder {
251
+ color: rgba(0, 243, 255, 0.7) !important;
252
+ font-style: italic;
253
  }
254
 
255
+ /* Labels with Neon */
256
  .label {
257
  font-family: 'Orbitron', monospace !important;
258
+ font-weight: 700 !important;
259
+ font-size: 1.3rem !important;
260
+ color: var(--neon-green) !important;
261
+ margin-bottom: 20px !important;
262
+ letter-spacing: 1px !important;
263
+ text-shadow:
264
+ 0 0 10px var(--neon-green),
265
+ 0 0 20px rgba(0, 255, 157, 0.3) !important;
266
  }
267
 
268
+ /* NEON BUTTONS - Improved */
269
+ .neon-button {
270
  font-family: 'Orbitron', monospace !important;
271
+ font-weight: 800 !important;
272
+ font-size: 1.2rem !important;
273
+ background: linear-gradient(45deg, var(--neon-blue), var(--neon-green)) !important;
274
  color: #000000 !important;
275
  border: none !important;
276
+ border-radius: 12px !important;
277
+ padding: 18px 35px !important;
278
+ margin: 15px 0 !important;
279
+ transition: all 0.4s ease !important;
280
  text-transform: uppercase !important;
281
+ letter-spacing: 2px !important;
282
+ position: relative !important;
283
+ overflow: hidden !important;
284
+ cursor: pointer !important;
285
+ box-shadow:
286
+ 0 0 15px var(--neon-blue),
287
+ 0 0 30px rgba(0, 243, 255, 0.4) !important;
288
+ }
289
+
290
+ .neon-button::before {
291
+ content: '';
292
+ position: absolute;
293
+ top: 0;
294
+ left: -100%;
295
+ width: 100%;
296
+ height: 100%;
297
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
298
+ transition: left 0.6s ease;
299
+ }
300
+
301
+ .neon-button:hover::before {
302
+ left: 100%;
303
  }
304
 
305
+ .neon-button:hover {
306
+ transform: translateY(-3px) scale(1.05) !important;
307
+ box-shadow:
308
+ 0 0 25px var(--neon-blue),
309
+ 0 0 50px rgba(0, 243, 255, 0.6),
310
+ 0 0 75px rgba(0, 255, 157, 0.3) !important;
311
+ background: linear-gradient(45deg, var(--neon-green), var(--neon-pink)) !important;
312
  }
313
 
314
+ .neon-button:active {
315
+ transform: translateY(-1px) scale(1.02) !important;
316
+ }
317
+
318
+ /* Image Slider with Neon */
319
  .image-slider-container {
320
+ border: 3px solid var(--neon-purple) !important;
321
+ border-radius: 15px !important;
322
+ padding: 15px !important;
323
+ background: rgba(0, 0, 0, 0.3) !important;
324
+ box-shadow:
325
+ 0 0 20px rgba(138, 43, 226, 0.4),
326
+ inset 0 0 20px rgba(138, 43, 226, 0.1) !important;
327
  }
328
 
329
+ /* Markdown Text with Neon */
330
  .gr-markdown {
331
  color: #ffffff !important;
332
  font-family: 'Rajdhani', sans-serif !important;
333
+ font-size: 1.1rem !important;
334
+ line-height: 1.7 !important;
335
  }
336
 
337
  .gr-markdown h3 {
338
  font-family: 'Orbitron', monospace !important;
339
+ font-size: 1.5rem !important;
340
+ color: var(--neon-blue) !important;
341
+ margin: 25px 0 20px 0 !important;
342
+ border-left: 4px solid var(--neon-pink) !important;
343
+ padding-left: 20px !important;
344
+ text-shadow: 0 0 10px rgba(0, 243, 255, 0.5) !important;
345
  }
346
 
347
+ /* Footer with Neon */
348
  .footer {
349
  text-align: center;
350
+ padding: 40px 20px;
351
+ color: var(--neon-blue) !important;
352
  font-family: 'Rajdhani', sans-serif !important;
353
+ border-top: 3px solid rgba(0, 243, 255, 0.3);
354
+ margin-top: 40px;
355
+ background: rgba(10, 10, 18, 0.9) !important;
356
  }
357
 
358
  .footer h3 {
359
  font-family: 'Orbitron', monospace !important;
360
+ font-size: 1.4rem !important;
361
+ margin-bottom: 15px !important;
362
+ color: var(--neon-green) !important;
363
+ text-shadow: 0 0 10px rgba(0, 255, 157, 0.5) !important;
364
  }
365
 
366
  .footer p {
367
+ margin: 8px 0 !important;
368
+ font-size: 1rem !important;
369
  opacity: 0.9;
370
  }
371
 
372
  /* Layout Improvements */
373
  .gr-row {
374
+ gap: 30px !important;
375
  margin: 0 !important;
376
  }
377
 
378
  .gr-column {
379
+ gap: 25px !important;
380
  }
381
 
382
+ /* Scrollbar Neon */
383
  ::-webkit-scrollbar {
384
+ width: 10px;
385
  }
386
 
387
  ::-webkit-scrollbar-track {
388
  background: rgba(0, 243, 255, 0.1);
389
+ border-radius: 5px;
390
  }
391
 
392
  ::-webkit-scrollbar-thumb {
393
+ background: linear-gradient(45deg, var(--neon-blue), var(--neon-pink));
394
+ border-radius: 5px;
395
+ box-shadow: 0 0 10px rgba(0, 243, 255, 0.5);
396
+ }
397
+
398
+ ::-webkit-scrollbar-thumb:hover {
399
+ background: linear-gradient(45deg, var(--neon-pink), var(--neon-green));
400
  }
401
 
402
  /* Responsive Design */
403
  @media (max-width: 768px) {
404
  .main-title {
405
+ font-size: 2.5rem !important;
406
  }
407
 
408
  .subtitle {
409
+ font-size: 1.1rem !important;
410
  }
411
 
412
  .tab-nav {
 
415
  }
416
 
417
  .tab-nav button {
418
+ font-size: 0.9rem !important;
419
+ padding: 12px 18px !important;
420
+ }
421
+
422
+ .neon-button {
423
+ font-size: 1.1rem !important;
424
+ padding: 15px 25px !important;
425
  }
426
  }
427
  """
428
 
429
  with gr.Blocks(css=custom_css, theme=gr.themes.Base(primary_hue="blue")) as demo:
430
 
431
+ # Header with Neon
432
  gr.HTML("""
433
  <div class="header-container">
434
  <div class="main-title">⚡ CYBER-BG REMOVER ⚡</div>
435
+ <div class="subtitle">NEON-POWERED AI BACKGROUND ERASURE</div>
436
  </div>
437
  """)
438
 
 
442
  with gr.Column(scale=1):
443
  gr.Markdown("### 📤 UPLOAD IMAGE")
444
  image_upload = gr.Image(
445
+ label="DRAG & DROP OR CLICK TO UPLOAD",
446
  type="pil",
447
+ height=340
448
  )
449
  process_btn1 = gr.Button(
450
+ "🚀 REMOVE BACKGROUND",
451
+ elem_classes="neon-button"
 
452
  )
453
 
454
  with gr.Column(scale=1):
455
  gr.Markdown("### 🎯 PROCESSED RESULT")
456
  with gr.Column(elem_classes="image-slider-container"):
457
  slider1 = gr.ImageSlider(
458
+ label="ORIGINAL VS PROCESSED",
459
  type="pil",
460
  format="png",
461
+ height=360,
462
  show_download_button=True
463
  )
464
 
 
473
  with gr.Column(scale=1):
474
  gr.Markdown("### 🔗 ENTER IMAGE URL")
475
  url_input = gr.Textbox(
476
+ label="PASTE IMAGE URL HERE",
477
  placeholder="https://example.com/image.jpg",
478
  lines=1,
479
  max_lines=1
480
  )
481
  process_btn2 = gr.Button(
482
+ "🚀 REMOVE BACKGROUND",
483
+ elem_classes="neon-button"
 
484
  )
485
 
486
  with gr.Column(scale=1):
487
  gr.Markdown("### 🎯 PROCESSED RESULT")
488
  with gr.Column(elem_classes="image-slider-container"):
489
  slider2 = gr.ImageSlider(
490
+ label="ORIGINAL VS PROCESSED",
491
  type="pil",
492
  format="png",
493
+ height=360,
494
  show_download_button=True
495
  )
496
 
 
500
  outputs=slider2
501
  )
502
 
503
+ # Footer with Neon
504
  gr.HTML("""
505
  <div class="footer">
506
  <h3>🛠️ SYSTEM STATUS: ONLINE</h3>
507
+ <p><strong>BiRefNet AI Core:</strong> OPERATIONAL</p>
508
+ <p><strong>Neon Processing Unit:</strong> ACTIVE</p>
509
+ <p><em>Cyber-BG Remover v3.0 - Ultimate Neon Edition</em></p>
510
  </div>
511
  """)
512