Zaiiida commited on
Commit
678bfe0
·
verified ·
1 Parent(s): 350fcee

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +79 -42
app.py CHANGED
@@ -150,26 +150,36 @@ input[type="text"], textarea {
150
  margin-right: auto;
151
  }
152
  """
153
-
154
  with gr.Blocks(theme=CustomTheme(), css=css) as demo:
155
  with gr.Column(elem_id="main-container"):
156
  # Заголовок
157
  gr.Markdown("**Upload and Process Your Image**", elem_classes="prompt-text")
158
 
159
- # Блок загрузки изображения и настроек
160
- with gr.Row(elem_id="upload-and-settings"):
161
- # Левый блок с загрузкой изображения
162
- with gr.Column(scale=3, elem_id="image-upload-container"):
163
- input_image = gr.Image(
164
- label="Upload Image",
165
- image_mode="RGBA",
166
- sources="upload",
167
- type="pil",
168
- elem_id="content_image",
169
- width=500, # Увеличена ширина входного изображения
170
- )
171
- # Правый блок с настройками
172
- with gr.Column(scale=2, elem_id="settings-container"):
 
 
 
 
 
 
 
 
 
 
 
173
  do_remove_background = gr.Checkbox(
174
  label="Remove Background",
175
  value=True,
@@ -181,38 +191,41 @@ with gr.Blocks(theme=CustomTheme(), css=css) as demo:
181
  value=0.85,
182
  step=0.05,
183
  )
184
-
185
- # Блок с обработанным изображением
186
- with gr.Row(elem_id="processed-image-container"):
187
- processed_image = gr.Image(
188
- label="Processed Image",
189
- interactive=False,
190
- elem_id="processed_image",
191
- )
192
-
193
- # Кнопка генерации
194
- with gr.Row(elem_id="generate-button-container"):
195
- submit = gr.Button(
196
- "Generate",
197
- scale=0,
198
- variant="primary",
199
- elem_classes="generate-button",
200
- )
201
 
202
  # Результаты генерации
203
  with gr.Row(elem_id="output-model-container"):
204
  with gr.Tab("OBJ Model"):
205
- output_model = gr.Model3D(
206
- label="Generated OBJ Model",
207
- interactive=False,
208
- )
 
 
 
 
 
 
209
  with gr.Tab("GLB Model"):
210
- output_model2 = gr.Model3D(
211
- label="Generated GLB Model",
212
- interactive=False,
213
- )
 
 
 
 
 
 
214
 
215
- # Привязка событий внутри контекста Blocks
216
  submit.click(
217
  fn=check_input_image,
218
  inputs=[input_image],
@@ -227,6 +240,30 @@ with gr.Blocks(theme=CustomTheme(), css=css) as demo:
227
  outputs=[output_model, output_model2]
228
  )
229
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
230
  # Запуск приложения
231
  demo.queue(max_size=10)
232
- demo.launch()
 
 
150
  margin-right: auto;
151
  }
152
  """
 
153
  with gr.Blocks(theme=CustomTheme(), css=css) as demo:
154
  with gr.Column(elem_id="main-container"):
155
  # Заголовок
156
  gr.Markdown("**Upload and Process Your Image**", elem_classes="prompt-text")
157
 
158
+ # Блок загрузки и обработанного изображения
159
+ with gr.Row(elem_id="image-row"):
160
+ # Загрузка изображения
161
+ input_image = gr.Image(
162
+ label="Upload Image",
163
+ image_mode="RGBA",
164
+ sources="upload",
165
+ type="pil",
166
+ elem_id="content_image",
167
+ width=400,
168
+ height=300, # Унификация высоты
169
+ )
170
+ # Обработанное изображение
171
+ processed_image = gr.Image(
172
+ label="Processed Image",
173
+ interactive=False,
174
+ elem_id="processed_image",
175
+ width=400,
176
+ height=300, # Унификация высоты
177
+ )
178
+
179
+ # Блок настроек и кнопки
180
+ with gr.Row(elem_id="settings-and-generate"):
181
+ # Настройки
182
+ with gr.Column(scale=1, elem_id="settings-container"):
183
  do_remove_background = gr.Checkbox(
184
  label="Remove Background",
185
  value=True,
 
191
  value=0.85,
192
  step=0.05,
193
  )
194
+ # Кнопка генерации
195
+ with gr.Column(scale=1, elem_id="generate-container"):
196
+ submit = gr.Button(
197
+ "Generate",
198
+ scale=0,
199
+ variant="primary",
200
+ elem_classes="generate-button",
201
+ )
 
 
 
 
 
 
 
 
 
202
 
203
  # Результаты генерации
204
  with gr.Row(elem_id="output-model-container"):
205
  with gr.Tab("OBJ Model"):
206
+ with gr.Column():
207
+ output_model = gr.Model3D(
208
+ label="Generated OBJ Model",
209
+ interactive=False,
210
+ )
211
+ # Кастомная анимация загрузки
212
+ loading_obj = gr.Label(
213
+ value="Loading...",
214
+ elem_classes="loading-spinner",
215
+ )
216
  with gr.Tab("GLB Model"):
217
+ with gr.Column():
218
+ output_model2 = gr.Model3D(
219
+ label="Generated GLB Model",
220
+ interactive=False,
221
+ )
222
+ # Кастомная анимация загрузки
223
+ loading_glb = gr.Label(
224
+ value="Loading...",
225
+ elem_classes="loading-spinner",
226
+ )
227
 
228
+ # Привязка событий
229
  submit.click(
230
  fn=check_input_image,
231
  inputs=[input_image],
 
240
  outputs=[output_model, output_model2]
241
  )
242
 
243
+ # CSS для унификации фона и анимации
244
+ css += """
245
+ /* Унификация фона Drop Image */
246
+ .gr-image-upload {
247
+ background-color: #191a1e !important;
248
+ border: 1px dashed #FFFFFF !important;
249
+ }
250
+
251
+ /* Кастомная анимация загрузки */
252
+ .loading-spinner {
253
+ font-size: 1.2rem;
254
+ color: #FFFFFF;
255
+ text-align: center;
256
+ margin-top: 20px;
257
+ animation: spin 1s linear infinite;
258
+ }
259
+
260
+ @keyframes spin {
261
+ 0% { transform: rotate(0deg); }
262
+ 100% { transform: rotate(360deg); }
263
+ }
264
+ """
265
+
266
  # Запуск приложения
267
  demo.queue(max_size=10)
268
+ demo.launch()
269
+