Spaces:
Paused
Paused
Update app.py
Browse files
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 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
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=
|
195 |
inputs=[],
|
196 |
-
outputs=[
|
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=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
inputs=[processed_image],
|
208 |
outputs=[output_model]
|
209 |
).then(
|
210 |
-
fn=
|
211 |
inputs=[],
|
212 |
-
outputs=[
|
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 |
+
)
|