Spaces:
Running on Zero
Running on Zero
update
Browse files
app.py
CHANGED
|
@@ -56,6 +56,13 @@ CSV_FILE = "dataset_index.csv"
|
|
| 56 |
HF_REPO_ID = "HorizonRobotics/EmbodiedGenData"
|
| 57 |
HF_LOCAL_DIR = "EmbodiedGenData"
|
| 58 |
CAMERA_ZOOM = 3.2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 59 |
|
| 60 |
# Compatible with huggingface space zero GPU
|
| 61 |
import spaces
|
|
@@ -1034,6 +1041,8 @@ with gr.Blocks(
|
|
| 1034 |
gallery.select(
|
| 1035 |
fn=show_asset_from_gallery,
|
| 1036 |
inputs=[primary, secondary, category, search_box, gallery_df_state],
|
|
|
|
|
|
|
| 1037 |
outputs=[
|
| 1038 |
(visual_path_state := gr.State()),
|
| 1039 |
(collision_path_state := gr.State()),
|
|
@@ -1082,33 +1091,51 @@ with gr.Blocks(
|
|
| 1082 |
# JS-trigger the browser download -> unlock. Selecting another asset
|
| 1083 |
# resets the buttons independently (see `.success` above).
|
| 1084 |
urdf_dl_btn.click(
|
| 1085 |
-
fn=lambda: _lock_downloads("urdf"), outputs=dl_btns
|
| 1086 |
).then(
|
| 1087 |
-
fn=download_urdf,
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1088 |
).then(fn=lambda *a: None, inputs=[urdf_dl_btn], js=download_js).then(
|
| 1089 |
fn=_unlock_downloads, outputs=dl_btns
|
| 1090 |
)
|
| 1091 |
|
| 1092 |
-
usd_dl_btn.click(
|
| 1093 |
-
fn=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1094 |
).then(fn=lambda *a: None, inputs=[usd_dl_btn], js=download_js).then(
|
| 1095 |
fn=_unlock_downloads, outputs=dl_btns
|
| 1096 |
)
|
| 1097 |
|
| 1098 |
mjcf_dl_btn.click(
|
| 1099 |
-
fn=lambda: _lock_downloads("mjcf"), outputs=dl_btns
|
| 1100 |
).then(
|
| 1101 |
-
fn=download_mjcf,
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1102 |
).then(fn=lambda *a: None, inputs=[mjcf_dl_btn], js=download_js).then(
|
| 1103 |
fn=_unlock_downloads, outputs=dl_btns
|
| 1104 |
)
|
| 1105 |
|
| 1106 |
affordance_dl_btn.click(
|
| 1107 |
-
fn=lambda: _lock_downloads("affordance"),
|
|
|
|
|
|
|
| 1108 |
).then(
|
| 1109 |
fn=download_affordance,
|
| 1110 |
inputs=[asset_folder],
|
| 1111 |
outputs=[affordance_dl_btn],
|
|
|
|
|
|
|
| 1112 |
).then(
|
| 1113 |
fn=lambda *a: None, inputs=[affordance_dl_btn], js=download_js
|
| 1114 |
).then(fn=_unlock_downloads, outputs=dl_btns)
|
|
|
|
| 56 |
HF_REPO_ID = "HorizonRobotics/EmbodiedGenData"
|
| 57 |
HF_LOCAL_DIR = "EmbodiedGenData"
|
| 58 |
CAMERA_ZOOM = 3.2
|
| 59 |
+
# Gradio's default per-event concurrency limit is 1, which would make every
|
| 60 |
+
# user's HF snapshot_download (potentially several seconds) serialize behind
|
| 61 |
+
# whichever user clicked first. Give the HF-fetching events their own shared
|
| 62 |
+
# pool so several users can download/preview assets in parallel, bounded to
|
| 63 |
+
# avoid hammering the HF API with too many simultaneous requests.
|
| 64 |
+
HF_IO_CONCURRENCY_ID = "hf_asset_io"
|
| 65 |
+
HF_IO_CONCURRENCY_LIMIT = 6
|
| 66 |
|
| 67 |
# Compatible with huggingface space zero GPU
|
| 68 |
import spaces
|
|
|
|
| 1041 |
gallery.select(
|
| 1042 |
fn=show_asset_from_gallery,
|
| 1043 |
inputs=[primary, secondary, category, search_box, gallery_df_state],
|
| 1044 |
+
concurrency_id=HF_IO_CONCURRENCY_ID,
|
| 1045 |
+
concurrency_limit=HF_IO_CONCURRENCY_LIMIT,
|
| 1046 |
outputs=[
|
| 1047 |
(visual_path_state := gr.State()),
|
| 1048 |
(collision_path_state := gr.State()),
|
|
|
|
| 1091 |
# JS-trigger the browser download -> unlock. Selecting another asset
|
| 1092 |
# resets the buttons independently (see `.success` above).
|
| 1093 |
urdf_dl_btn.click(
|
| 1094 |
+
fn=lambda: _lock_downloads("urdf"), outputs=dl_btns, queue=False
|
| 1095 |
).then(
|
| 1096 |
+
fn=download_urdf,
|
| 1097 |
+
inputs=[asset_folder],
|
| 1098 |
+
outputs=[urdf_dl_btn],
|
| 1099 |
+
concurrency_id=HF_IO_CONCURRENCY_ID,
|
| 1100 |
+
concurrency_limit=HF_IO_CONCURRENCY_LIMIT,
|
| 1101 |
).then(fn=lambda *a: None, inputs=[urdf_dl_btn], js=download_js).then(
|
| 1102 |
fn=_unlock_downloads, outputs=dl_btns
|
| 1103 |
)
|
| 1104 |
|
| 1105 |
+
usd_dl_btn.click(
|
| 1106 |
+
fn=lambda: _lock_downloads("usd"), outputs=dl_btns, queue=False
|
| 1107 |
+
).then(
|
| 1108 |
+
fn=download_usd,
|
| 1109 |
+
inputs=[asset_folder],
|
| 1110 |
+
outputs=[usd_dl_btn],
|
| 1111 |
+
concurrency_id=HF_IO_CONCURRENCY_ID,
|
| 1112 |
+
concurrency_limit=HF_IO_CONCURRENCY_LIMIT,
|
| 1113 |
).then(fn=lambda *a: None, inputs=[usd_dl_btn], js=download_js).then(
|
| 1114 |
fn=_unlock_downloads, outputs=dl_btns
|
| 1115 |
)
|
| 1116 |
|
| 1117 |
mjcf_dl_btn.click(
|
| 1118 |
+
fn=lambda: _lock_downloads("mjcf"), outputs=dl_btns, queue=False
|
| 1119 |
).then(
|
| 1120 |
+
fn=download_mjcf,
|
| 1121 |
+
inputs=[asset_folder],
|
| 1122 |
+
outputs=[mjcf_dl_btn],
|
| 1123 |
+
concurrency_id=HF_IO_CONCURRENCY_ID,
|
| 1124 |
+
concurrency_limit=HF_IO_CONCURRENCY_LIMIT,
|
| 1125 |
).then(fn=lambda *a: None, inputs=[mjcf_dl_btn], js=download_js).then(
|
| 1126 |
fn=_unlock_downloads, outputs=dl_btns
|
| 1127 |
)
|
| 1128 |
|
| 1129 |
affordance_dl_btn.click(
|
| 1130 |
+
fn=lambda: _lock_downloads("affordance"),
|
| 1131 |
+
outputs=dl_btns,
|
| 1132 |
+
queue=False,
|
| 1133 |
).then(
|
| 1134 |
fn=download_affordance,
|
| 1135 |
inputs=[asset_folder],
|
| 1136 |
outputs=[affordance_dl_btn],
|
| 1137 |
+
concurrency_id=HF_IO_CONCURRENCY_ID,
|
| 1138 |
+
concurrency_limit=HF_IO_CONCURRENCY_LIMIT,
|
| 1139 |
).then(
|
| 1140 |
fn=lambda *a: None, inputs=[affordance_dl_btn], js=download_js
|
| 1141 |
).then(fn=_unlock_downloads, outputs=dl_btns)
|