Spaces:
Build error
Build error
Update app.py
Browse files
app.py
CHANGED
|
@@ -389,8 +389,7 @@ def build_ui():
|
|
| 389 |
# ββ LEFT: inputs ββ
|
| 390 |
with gr.Column(scale=1, min_width=300):
|
| 391 |
input_img = gr.Image(
|
| 392 |
-
type="pil", label="Input Image"
|
| 393 |
-
image_mode="RGB"
|
| 394 |
)
|
| 395 |
|
| 396 |
gr.HTML("<div class='note'>Upload any size. Server-side processing on CPU.</div>")
|
|
@@ -467,7 +466,7 @@ gmic echo '$${fx_some_filter}'
|
|
| 467 |
filters = FILTER_GROUPS.get(group_name, [])
|
| 468 |
choices = [f[0] for f in filters]
|
| 469 |
val = choices[0] if choices else None
|
| 470 |
-
return gr.
|
| 471 |
|
| 472 |
def update_sliders(group_name, filter_name):
|
| 473 |
# Find the matching filter
|
|
@@ -480,16 +479,16 @@ gmic echo '$${fx_some_filter}'
|
|
| 480 |
for key in slider_components:
|
| 481 |
if key in active_pnames:
|
| 482 |
param = next(p for p in params if f"sl_{p[0]}" == key)
|
| 483 |
-
updates[slider_components[key]] = gr.
|
| 484 |
visible=True, label=param[1],
|
| 485 |
minimum=param[2], maximum=param[3],
|
| 486 |
step=param[4], value=param[5]
|
| 487 |
)
|
| 488 |
else:
|
| 489 |
-
updates[slider_components[key]] = gr.
|
| 490 |
else:
|
| 491 |
for sl in slider_components.values():
|
| 492 |
-
updates[sl] = gr.
|
| 493 |
return list(updates.values())
|
| 494 |
|
| 495 |
group_dd.change(
|
|
@@ -535,10 +534,11 @@ gmic echo '$${fx_some_filter}'
|
|
| 535 |
|
| 536 |
# βββ STARTUP ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 537 |
|
| 538 |
-
|
| 539 |
-
|
| 540 |
-
|
| 541 |
-
|
|
|
|
| 542 |
|
| 543 |
-
|
| 544 |
-
demo.launch()
|
|
|
|
| 389 |
# ββ LEFT: inputs ββ
|
| 390 |
with gr.Column(scale=1, min_width=300):
|
| 391 |
input_img = gr.Image(
|
| 392 |
+
type="pil", label="Input Image"
|
|
|
|
| 393 |
)
|
| 394 |
|
| 395 |
gr.HTML("<div class='note'>Upload any size. Server-side processing on CPU.</div>")
|
|
|
|
| 466 |
filters = FILTER_GROUPS.get(group_name, [])
|
| 467 |
choices = [f[0] for f in filters]
|
| 468 |
val = choices[0] if choices else None
|
| 469 |
+
return gr.update(choices=choices, value=val)
|
| 470 |
|
| 471 |
def update_sliders(group_name, filter_name):
|
| 472 |
# Find the matching filter
|
|
|
|
| 479 |
for key in slider_components:
|
| 480 |
if key in active_pnames:
|
| 481 |
param = next(p for p in params if f"sl_{p[0]}" == key)
|
| 482 |
+
updates[slider_components[key]] = gr.update(
|
| 483 |
visible=True, label=param[1],
|
| 484 |
minimum=param[2], maximum=param[3],
|
| 485 |
step=param[4], value=param[5]
|
| 486 |
)
|
| 487 |
else:
|
| 488 |
+
updates[slider_components[key]] = gr.update(visible=False)
|
| 489 |
else:
|
| 490 |
for sl in slider_components.values():
|
| 491 |
+
updates[sl] = gr.update(visible=False)
|
| 492 |
return list(updates.values())
|
| 493 |
|
| 494 |
group_dd.change(
|
|
|
|
| 534 |
|
| 535 |
# βββ STARTUP ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 536 |
|
| 537 |
+
# Prefetch gmic update file in background on cold start
|
| 538 |
+
import threading
|
| 539 |
+
threading.Thread(target=_fetch_update_if_needed, daemon=True).start()
|
| 540 |
+
|
| 541 |
+
demo = build_ui()
|
| 542 |
|
| 543 |
+
if __name__ == "__main__":
|
| 544 |
+
demo.launch()
|