Spaces:
Running
on
Zero
Running
on
Zero
update rec
Browse files
app.py
CHANGED
|
@@ -206,6 +206,9 @@ def ncut_run(
|
|
| 206 |
recursion_l2_n_eigs=50,
|
| 207 |
recursion_l3_n_eigs=20,
|
| 208 |
recursion_metric="euclidean",
|
|
|
|
|
|
|
|
|
|
| 209 |
video_output=False,
|
| 210 |
):
|
| 211 |
logging_str = ""
|
|
@@ -395,6 +398,9 @@ def run_fn(
|
|
| 395 |
recursion_l2_n_eigs=50,
|
| 396 |
recursion_l3_n_eigs=20,
|
| 397 |
recursion_metric="euclidean",
|
|
|
|
|
|
|
|
|
|
| 398 |
):
|
| 399 |
|
| 400 |
if images is None:
|
|
@@ -440,6 +446,9 @@ def run_fn(
|
|
| 440 |
"recursion_l2_n_eigs": recursion_l2_n_eigs,
|
| 441 |
"recursion_l3_n_eigs": recursion_l3_n_eigs,
|
| 442 |
"recursion_metric": recursion_metric,
|
|
|
|
|
|
|
|
|
|
| 443 |
"video_output": video_output,
|
| 444 |
}
|
| 445 |
# print(kwargs)
|
|
@@ -596,8 +605,7 @@ def make_output_images_section():
|
|
| 596 |
|
| 597 |
def make_parameters_section():
|
| 598 |
gr.Markdown("### Parameters <a style='color: #0044CC;' href='https://ncut-pytorch.readthedocs.io/en/latest/how_to_get_better_segmentation/' target='_blank'>Help</a>")
|
| 599 |
-
|
| 600 |
-
from backbone import list_models, get_demo_model_names
|
| 601 |
model_names = list_models()
|
| 602 |
model_names = sorted(model_names)
|
| 603 |
model_dropdown = gr.Dropdown(model_names, label="Backbone", value="DiNO(dino_vitb8_448)", elem_id="model_name")
|
|
@@ -608,7 +616,7 @@ def make_parameters_section():
|
|
| 608 |
def change_layer_slider(model_name):
|
| 609 |
# SD2, UNET
|
| 610 |
if "stable" in model_name.lower() and "diffusion" in model_name.lower():
|
| 611 |
-
from backbone import SD_KEY_DICT
|
| 612 |
default_layer = 'up_2_resnets_1_block' if 'diffusion-3' not in model_name else 'block_23'
|
| 613 |
return (gr.Slider(1, 49, step=1, label="Diffusion: Timestep (Noise)", value=5, elem_id="layer", visible=True, info="Noise level, 50 is max noise"),
|
| 614 |
gr.Dropdown(SD_KEY_DICT[model_name], label="Diffusion: Layer and Node", value=default_layer, elem_id="node_type", info="From the SD U-Net"))
|
|
@@ -760,7 +768,9 @@ with demo:
|
|
| 760 |
l2_num_eig_slider = gr.Slider(1, 1000, step=1, label="Recursion #2: N eigenvectors", value=50, elem_id="l2_num_eig")
|
| 761 |
l3_num_eig_slider = gr.Slider(1, 1000, step=1, label="Recursion #3: N eigenvectors", value=50, elem_id="l3_num_eig")
|
| 762 |
metric_dropdown = gr.Dropdown(["euclidean", "cosine"], label="Recursion distance metric", value="cosine", elem_id="recursion_metric")
|
| 763 |
-
|
|
|
|
|
|
|
| 764 |
[
|
| 765 |
model_dropdown, layer_slider, node_type_dropdown, num_eig_slider,
|
| 766 |
affinity_focal_gamma_slider, num_sample_ncut_slider, knn_ncut_slider,
|
|
@@ -769,6 +779,7 @@ with demo:
|
|
| 769 |
sampling_method_dropdown
|
| 770 |
] = make_parameters_section()
|
| 771 |
num_eig_slider.visible = False
|
|
|
|
| 772 |
# logging text box
|
| 773 |
with gr.Row():
|
| 774 |
with gr.Column(scale=5, min_width=200):
|
|
@@ -802,7 +813,8 @@ with demo:
|
|
| 802 |
embedding_method_dropdown, num_sample_tsne_slider, knn_tsne_slider,
|
| 803 |
perplexity_slider, n_neighbors_slider, min_dist_slider, sampling_method_dropdown,
|
| 804 |
false_placeholder, number_placeholder, true_placeholder,
|
| 805 |
-
l2_num_eig_slider, l3_num_eig_slider, metric_dropdown,
|
|
|
|
| 806 |
],
|
| 807 |
outputs=[l1_gallery, l2_gallery, l3_gallery, logging_text],
|
| 808 |
api_name="API_RecursiveCut"
|
|
|
|
| 206 |
recursion_l2_n_eigs=50,
|
| 207 |
recursion_l3_n_eigs=20,
|
| 208 |
recursion_metric="euclidean",
|
| 209 |
+
recursion_l1_gamma=0.5,
|
| 210 |
+
recursion_l2_gamma=0.5,
|
| 211 |
+
recursion_l3_gamma=0.5,
|
| 212 |
video_output=False,
|
| 213 |
):
|
| 214 |
logging_str = ""
|
|
|
|
| 398 |
recursion_l2_n_eigs=50,
|
| 399 |
recursion_l3_n_eigs=20,
|
| 400 |
recursion_metric="euclidean",
|
| 401 |
+
recursion_l1_gamma=0.5,
|
| 402 |
+
recursion_l2_gamma=0.5,
|
| 403 |
+
recursion_l3_gamma=0.5,
|
| 404 |
):
|
| 405 |
|
| 406 |
if images is None:
|
|
|
|
| 446 |
"recursion_l2_n_eigs": recursion_l2_n_eigs,
|
| 447 |
"recursion_l3_n_eigs": recursion_l3_n_eigs,
|
| 448 |
"recursion_metric": recursion_metric,
|
| 449 |
+
"recursion_l1_gamma": recursion_l1_gamma,
|
| 450 |
+
"recursion_l2_gamma": recursion_l2_gamma,
|
| 451 |
+
"recursion_l3_gamma": recursion_l3_gamma,
|
| 452 |
"video_output": video_output,
|
| 453 |
}
|
| 454 |
# print(kwargs)
|
|
|
|
| 605 |
|
| 606 |
def make_parameters_section():
|
| 607 |
gr.Markdown("### Parameters <a style='color: #0044CC;' href='https://ncut-pytorch.readthedocs.io/en/latest/how_to_get_better_segmentation/' target='_blank'>Help</a>")
|
| 608 |
+
from ncut_pytorch.backbone import list_models, get_demo_model_names
|
|
|
|
| 609 |
model_names = list_models()
|
| 610 |
model_names = sorted(model_names)
|
| 611 |
model_dropdown = gr.Dropdown(model_names, label="Backbone", value="DiNO(dino_vitb8_448)", elem_id="model_name")
|
|
|
|
| 616 |
def change_layer_slider(model_name):
|
| 617 |
# SD2, UNET
|
| 618 |
if "stable" in model_name.lower() and "diffusion" in model_name.lower():
|
| 619 |
+
from ncut_pytorch.backbone import SD_KEY_DICT
|
| 620 |
default_layer = 'up_2_resnets_1_block' if 'diffusion-3' not in model_name else 'block_23'
|
| 621 |
return (gr.Slider(1, 49, step=1, label="Diffusion: Timestep (Noise)", value=5, elem_id="layer", visible=True, info="Noise level, 50 is max noise"),
|
| 622 |
gr.Dropdown(SD_KEY_DICT[model_name], label="Diffusion: Layer and Node", value=default_layer, elem_id="node_type", info="From the SD U-Net"))
|
|
|
|
| 768 |
l2_num_eig_slider = gr.Slider(1, 1000, step=1, label="Recursion #2: N eigenvectors", value=50, elem_id="l2_num_eig")
|
| 769 |
l3_num_eig_slider = gr.Slider(1, 1000, step=1, label="Recursion #3: N eigenvectors", value=50, elem_id="l3_num_eig")
|
| 770 |
metric_dropdown = gr.Dropdown(["euclidean", "cosine"], label="Recursion distance metric", value="cosine", elem_id="recursion_metric")
|
| 771 |
+
l1_affinity_focal_gamma_slider = gr.Slider(0.01, 1, step=0.01, label="Recursion #1: Affinity focal gamma", value=0.5, elem_id="recursion_l1_gamma")
|
| 772 |
+
l2_affinity_focal_gamma_slider = gr.Slider(0.01, 1, step=0.01, label="Recursion #2: Affinity focal gamma", value=0.5, elem_id="recursion_l2_gamma")
|
| 773 |
+
l3_affinity_focal_gamma_slider = gr.Slider(0.01, 1, step=0.01, label="Recursion #3: Affinity focal gamma", value=0.5, elem_id="recursion_l3_gamma")
|
| 774 |
[
|
| 775 |
model_dropdown, layer_slider, node_type_dropdown, num_eig_slider,
|
| 776 |
affinity_focal_gamma_slider, num_sample_ncut_slider, knn_ncut_slider,
|
|
|
|
| 779 |
sampling_method_dropdown
|
| 780 |
] = make_parameters_section()
|
| 781 |
num_eig_slider.visible = False
|
| 782 |
+
affinity_focal_gamma_slider.visible = False
|
| 783 |
# logging text box
|
| 784 |
with gr.Row():
|
| 785 |
with gr.Column(scale=5, min_width=200):
|
|
|
|
| 813 |
embedding_method_dropdown, num_sample_tsne_slider, knn_tsne_slider,
|
| 814 |
perplexity_slider, n_neighbors_slider, min_dist_slider, sampling_method_dropdown,
|
| 815 |
false_placeholder, number_placeholder, true_placeholder,
|
| 816 |
+
l2_num_eig_slider, l3_num_eig_slider, metric_dropdown,
|
| 817 |
+
l1_affinity_focal_gamma_slider, l2_affinity_focal_gamma_slider, l3_affinity_focal_gamma_slider
|
| 818 |
],
|
| 819 |
outputs=[l1_gallery, l2_gallery, l3_gallery, logging_text],
|
| 820 |
api_name="API_RecursiveCut"
|