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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -17
app.py CHANGED
@@ -156,11 +156,16 @@ input[type="text"], textarea {
156
 
157
  """
158
 
 
159
  # Интерфейс
160
  with gr.Blocks(theme=CustomTheme(), css=css) as demo:
161
  with gr.Column():
 
162
  gr.Markdown("<span style='color: white; font-weight: bold;'>Upload and Process Your Image</span>")
 
 
163
  with gr.Row():
 
164
  input_image = gr.Image(
165
  label="Upload Image",
166
  image_mode="RGBA",
@@ -169,12 +174,18 @@ with gr.Blocks(theme=CustomTheme(), css=css) as demo:
169
  width=400,
170
  height=300,
171
  )
172
- processed_image = gr.Image(
173
- label="Processed Image",
174
- interactive=False,
175
- width=400,
176
- height=300,
177
- )
 
 
 
 
 
 
178
  foreground_ratio = gr.Slider(
179
  label="Foreground Ratio",
180
  minimum=0.5,
@@ -186,30 +197,47 @@ with gr.Blocks(theme=CustomTheme(), css=css) as demo:
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],
200
  outputs=[]
201
  ).then(
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,4 +245,4 @@ demo.launch(
217
  server_name="0.0.0.0",
218
  server_port=7860,
219
  share=True,
220
- )
 
156
 
157
  """
158
 
159
+ # Интерфейс
160
  # Интерфейс
161
  with gr.Blocks(theme=CustomTheme(), css=css) as demo:
162
  with gr.Column():
163
+ # Заголовок
164
  gr.Markdown("<span style='color: white; font-weight: bold;'>Upload and Process Your Image</span>")
165
+
166
+ # Контейнер для загрузки изображения и обработанного изображения
167
  with gr.Row():
168
+ # Загрузка изображения
169
  input_image = gr.Image(
170
  label="Upload Image",
171
  image_mode="RGBA",
 
174
  width=400,
175
  height=300,
176
  )
177
+
178
+ # Обработанное изображение и лоадер
179
+ with gr.Column(elem_id="processed-container"): # Контейнер для центровки лоадера
180
+ processed_image = gr.Image(
181
+ label="Processed Image",
182
+ interactive=False,
183
+ width=400,
184
+ height=300,
185
+ )
186
+ processed_loader = gr.HTML("<div id='loading-bar-processed'></div>")
187
+
188
+ # Слайдер и чекбокс
189
  foreground_ratio = gr.Slider(
190
  label="Foreground Ratio",
191
  minimum=0.5,
 
197
  label="Remove Background",
198
  value=True,
199
  )
 
 
 
200
 
201
+ # Кнопка генерации
202
+ submit = gr.Button("Generate", elem_classes="generate-button")
203
+
204
+ # Контейнер для модели GLB и лоадера
205
+ with gr.Column(elem_id="glb-container"): # Контейнер для центровки лоадера
206
+ output_model = gr.Model3D(
207
+ label="Generated GLB Model",
208
+ interactive=False,
209
+ )
210
+ glb_loader = gr.HTML("<div id='loading-bar-glb'></div>")
211
+
212
+ # Логика кнопки и цепочки событий
213
  submit.click(
214
+ fn=start_loading_processed, # Запускаем лоадер для обработанного изображения
215
  inputs=[],
216
+ outputs=[processed_loader],
217
  ).then(
218
+ fn=check_input_image, # Проверяем изображение
219
  inputs=[input_image],
220
  outputs=[]
221
  ).then(
222
+ fn=preprocess, # Обрабатываем изображение
223
  inputs=[input_image, do_remove_background, foreground_ratio],
224
  outputs=[processed_image]
225
  ).then(
226
+ fn=stop_loading_processed, # Останавливаем лоадер для обработанного изображения
227
+ inputs=[],
228
+ outputs=[processed_loader],
229
+ ).then(
230
+ fn=start_loading_glb, # Запускаем лоадер для модели GLB
231
+ inputs=[],
232
+ outputs=[glb_loader],
233
+ ).then(
234
+ fn=generate, # Генерируем 3D модель
235
  inputs=[processed_image],
236
  outputs=[output_model]
237
  ).then(
238
+ fn=stop_loading_glb, # Останавливаем лоадер для модели GLB
239
  inputs=[],
240
+ outputs=[glb_loader],
241
  )
242
 
243
  # Запуск приложения
 
245
  server_name="0.0.0.0",
246
  server_port=7860,
247
  share=True,
248
+ )