Zaiiida commited on
Commit
de9152c
·
verified ·
1 Parent(s): d92e0b1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +65 -56
app.py CHANGED
@@ -1,6 +1,7 @@
1
  import gradio as gr
2
  import time # Для эмуляции времени загрузки
3
  import tempfile
 
4
  import numpy as np
5
  import torch
6
  from PIL import Image
@@ -57,18 +58,13 @@ def generate(image):
57
  return mesh_path2.name
58
 
59
 
60
- # Функции для управления лоадерами
61
- def start_loading_processed():
62
- return "<div id='loading-bar-processed' style='display: block;'></div>"
63
 
64
- def stop_loading_processed():
65
- return "<div id='loading-bar-processed' style='display: none;'></div>"
66
 
67
- def start_loading_glb():
68
- return "<div id='loading-bar-glb' style='display: block;'></div>"
69
-
70
- def stop_loading_glb():
71
- return "<div id='loading-bar-glb' style='display: none;'></div>"
72
 
73
 
74
  # Настройка темы и CSS
@@ -87,7 +83,8 @@ class CustomTheme(gr.themes.Base):
87
 
88
 
89
  css = """
90
- /* Скрываем системный лоадер Gradio */
 
91
  footer {
92
  visibility: hidden;
93
  height: 0;
@@ -96,37 +93,67 @@ footer {
96
  overflow: hidden;
97
  }
98
 
99
- /* Общий стиль */
 
100
  body, input, button, textarea, select, .gr-button {
101
  font-family: 'Poppins', sans-serif;
102
  background-color: #191a1e !important;
103
  color: #FFFFFF;
104
  }
105
 
106
- /* Круговые лоадеры */
107
- #loading-bar-processed, #loading-bar-glb {
108
- display: none;
109
- position: absolute;
110
- top: 50%;
111
- left: 50%;
112
- transform: translate(-50%, -50%);
113
- width: 60px;
114
- height: 60px;
115
- border: 8px solid #f3f3f3;
116
- border-top: 8px solid #5271FF;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  border-radius: 50%;
118
- animation: spin 1s linear infinite;
119
  }
120
 
121
- @keyframes spin {
122
- 0% { transform: translate(-50%, -50%) rotate(0deg); }
123
- 100% { transform: translate(-50%, -50%) rotate(360deg); }
124
  }
125
 
126
- /* Текст CheckBox в белый */
127
- .gr-checkbox label {
 
128
  color: #FFFFFF !important;
 
 
 
 
 
 
129
  }
 
 
 
 
 
 
 
130
  """
131
 
132
  # Интерфейс
@@ -147,10 +174,7 @@ with gr.Blocks(theme=CustomTheme(), css=css) as demo:
147
  interactive=False,
148
  width=400,
149
  height=300,
150
- elem_id="processed-container",
151
  )
152
- processed_loader = gr.HTML("<div id='loading-bar-processed'></div>")
153
-
154
  foreground_ratio = gr.Slider(
155
  label="Foreground Ratio",
156
  minimum=0.5,
@@ -159,28 +183,17 @@ with gr.Blocks(theme=CustomTheme(), css=css) as demo:
159
  step=0.05,
160
  )
161
  do_remove_background = gr.Checkbox(
162
- label="Remove Background", # Текст перекрашен в белый через CSS
163
  value=True,
164
  )
165
-
166
- submit = gr.Button("Generate", elem_classes="generate-button")
167
-
168
- with gr.Row():
169
- output_model = gr.Model3D(
170
- label="Generated GLB Model",
171
- interactive=False,
172
- elem_classes="gr-model3d-container",
173
- )
174
- glb_loader = gr.HTML("<div id='loading-bar-glb'></div>")
175
 
176
  submit.click(
177
- fn=start_loading_processed,
178
- inputs=[],
179
- outputs=[processed_loader],
180
- ).then(
181
- fn=start_loading_glb,
182
  inputs=[],
183
- outputs=[glb_loader],
184
  ).then(
185
  fn=check_input_image,
186
  inputs=[input_image],
@@ -189,18 +202,14 @@ with gr.Blocks(theme=CustomTheme(), css=css) as demo:
189
  fn=preprocess,
190
  inputs=[input_image, do_remove_background, foreground_ratio],
191
  outputs=[processed_image]
192
- ).then(
193
- fn=stop_loading_processed,
194
- inputs=[],
195
- outputs=[processed_loader],
196
  ).then(
197
  fn=generate,
198
  inputs=[processed_image],
199
  outputs=[output_model]
200
  ).then(
201
- fn=stop_loading_glb,
202
  inputs=[],
203
- outputs=[glb_loader],
204
  )
205
 
206
  # Запуск приложения
@@ -208,4 +217,4 @@ demo.launch(
208
  server_name="0.0.0.0",
209
  server_port=7860,
210
  share=True,
211
- )
 
1
  import gradio as gr
2
  import time # Для эмуляции времени загрузки
3
  import tempfile
4
+ import os
5
  import numpy as np
6
  import torch
7
  from PIL import Image
 
58
  return mesh_path2.name
59
 
60
 
61
+ # Функция для отображения загрузки
62
+ def start_loading():
63
+ return "<div id='loading-bar' style='display: block;'></div>"
64
 
 
 
65
 
66
+ def stop_loading():
67
+ return "<div id='loading-bar' style='display: none;'></div>"
 
 
 
68
 
69
 
70
  # Настройка темы и CSS
 
83
 
84
 
85
  css = """
86
+
87
+ /* Скрываем нижний колонтитул */
88
  footer {
89
  visibility: hidden;
90
  height: 0;
 
93
  overflow: hidden;
94
  }
95
 
96
+ /* Применяем шрифты */
97
+ @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;700&display=swap');
98
  body, input, button, textarea, select, .gr-button {
99
  font-family: 'Poppins', sans-serif;
100
  background-color: #191a1e !important;
101
  color: #FFFFFF;
102
  }
103
 
104
+ /* Настройки заголовков */
105
+ h1, h2, h3, h4, h5, h6 {
106
+ font-family: 'Poppins', sans-serif;
107
+ font-weight: 700;
108
+ color: #FFFFFF;
109
+ }
110
+
111
+ /* Стиль для текстовых полей и кнопок */
112
+ input[type="text"], textarea {
113
+ background-color: #191a1e !important;
114
+ color: #FFFFFF;
115
+ border: 1px solid #FFFFFF;
116
+ }
117
+
118
+ /* Слайдер */
119
+ .gr-slider {
120
+ height: 40px !important; /* Увеличение высоты слайдера */
121
+ transition: all 0.3s ease !important; /* Плавные переходы */
122
+ }
123
+
124
+ .gr-slider .slider-value {
125
+ display: none !important; /* Прячем текст значения */
126
+ }
127
+
128
+ .gr-slider .slider::-webkit-slider-thumb {
129
+ height: 15px !important;
130
+ width: 15px !important;
131
+ background-color: #5271FF !important; /* Цвет совпадает с кнопкой */
132
  border-radius: 50%;
 
133
  }
134
 
135
+ .gr-slider .slider::-webkit-slider-runnable-track {
136
+ background: #5271FF !important; /* Цвет заполнения слайдера */
 
137
  }
138
 
139
+ /* Кнопка Generate */
140
+ .generate-button {
141
+ background-color: #5271FF !important;
142
  color: #FFFFFF !important;
143
+ border: none;
144
+ font-weight: bold;
145
+ }
146
+
147
+ .generate-button:hover {
148
+ background-color: #405BBF !important; /* Цвет при наведении */
149
  }
150
+
151
+ /* Выделяем текст для Prompt */
152
+ .prompt-text {
153
+ font-weight: bold;
154
+ color: #FFFFFF;
155
+ }
156
+
157
  """
158
 
159
  # Интерфейс
 
174
  interactive=False,
175
  width=400,
176
  height=300,
 
177
  )
 
 
178
  foreground_ratio = gr.Slider(
179
  label="Foreground Ratio",
180
  minimum=0.5,
 
183
  step=0.05,
184
  )
185
  do_remove_background = gr.Checkbox(
186
+ label="Remove Background",
187
  value=True,
188
  )
189
+ submit = gr.Button("Generate")
190
+ loading_bar = gr.HTML("<div id='loading-bar'></div>")
191
+ output_model = gr.Model3D(label="Generated GLB Model", interactive=False)
 
 
 
 
 
 
 
192
 
193
  submit.click(
194
+ fn=start_loading,
 
 
 
 
195
  inputs=[],
196
+ outputs=[loading_bar],
197
  ).then(
198
  fn=check_input_image,
199
  inputs=[input_image],
 
202
  fn=preprocess,
203
  inputs=[input_image, do_remove_background, foreground_ratio],
204
  outputs=[processed_image]
 
 
 
 
205
  ).then(
206
  fn=generate,
207
  inputs=[processed_image],
208
  outputs=[output_model]
209
  ).then(
210
+ fn=stop_loading,
211
  inputs=[],
212
+ outputs=[loading_bar],
213
  )
214
 
215
  # Запуск приложения
 
217
  server_name="0.0.0.0",
218
  server_port=7860,
219
  share=True,
220
+ )