From 2429b77db1cf91f8da9d39e8e12baef5367596f0 Mon Sep 17 00:00:00 2001 From: Dawood Date: Wed, 18 Jan 2023 15:55:25 -0500 Subject: [PATCH 1/8] download button --- ui/packages/icons/src/Download.svelte | 16 +++++++++++ ui/packages/icons/src/index.ts | 1 + ui/packages/model3D/src/Model3D.svelte | 35 ++++++++++++++++++++++-- ui/packages/model3D/src/utils.ts | 38 ++++++++++++++++++++++++++ 4 files changed, 87 insertions(+), 3 deletions(-) create mode 100644 ui/packages/icons/src/Download.svelte create mode 100644 ui/packages/model3D/src/utils.ts diff --git a/ui/packages/icons/src/Download.svelte b/ui/packages/icons/src/Download.svelte new file mode 100644 index 0000000000000..9c7a8882990b9 --- /dev/null +++ b/ui/packages/icons/src/Download.svelte @@ -0,0 +1,16 @@ + + + diff --git a/ui/packages/icons/src/index.ts b/ui/packages/icons/src/index.ts index cef4f56a22cbf..5fa3eee757502 100644 --- a/ui/packages/icons/src/index.ts +++ b/ui/packages/icons/src/index.ts @@ -22,3 +22,4 @@ export { default as TextHighlight } from "./TextHighlight.svelte"; export { default as Tree } from "./Tree.svelte"; export { default as Undo } from "./Undo.svelte"; export { default as Video } from "./Video.svelte"; +export { default as Download } from "./Download.svelte"; diff --git a/ui/packages/model3D/src/Model3D.svelte b/ui/packages/model3D/src/Model3D.svelte index f662ca754291b..7479e39add52f 100644 --- a/ui/packages/model3D/src/Model3D.svelte +++ b/ui/packages/model3D/src/Model3D.svelte @@ -1,7 +1,12 @@ +{#if value} +
+
+ + + +
- + +
+{/if} diff --git a/ui/packages/model3D/src/utils.ts b/ui/packages/model3D/src/utils.ts new file mode 100644 index 0000000000000..30401457e368e --- /dev/null +++ b/ui/packages/model3D/src/utils.ts @@ -0,0 +1,38 @@ +import type { FileData } from "@gradio/upload"; + +export const prettyBytes = (bytes: number): string => { + let units = ["B", "KB", "MB", "GB", "PB"]; + let i = 0; + while (bytes > 1024) { + bytes /= 1024; + i++; + } + let unit = units[i]; + return bytes.toFixed(1) + " " + unit; +}; + +export const display_file_name = (value: FileData): string => { + var str: string; + str = value.orig_name || value.name; + if (str.length > 30) { + return `${str.substr(0, 30)}...`; + } else return str; +}; + +export const download_files = (value: FileData): string => { + return value.data; +}; + +export const display_file_size = ( + value: FileData | Array +): string => { + var total_size = 0; + if (Array.isArray(value)) { + for (var file of value) { + if (file.size !== undefined) total_size += file.size; + } + } else { + total_size = value.size || 0; + } + return prettyBytes(total_size); +}; From 9a2b3faf3970d89ea0de95ad65c6cbb7ceae60c2 Mon Sep 17 00:00:00 2001 From: Dawood Date: Wed, 18 Jan 2023 15:59:31 -0500 Subject: [PATCH 2/8] update model3d demo --- demo/model3D/run.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/demo/model3D/run.py b/demo/model3D/run.py index b7d8813a1f299..5a765cb190788 100644 --- a/demo/model3D/run.py +++ b/demo/model3D/run.py @@ -3,17 +3,14 @@ def load_mesh(mesh_file_name): - return mesh_file_name, mesh_file_name + return mesh_file_name demo = gr.Interface( fn=load_mesh, inputs=gr.Model3D(), - outputs=[ - gr.Model3D( + outputs=gr.Model3D( clear_color=[0.0, 0.0, 0.0, 0.0], label="3D Model"), - gr.File(label="Download 3D Model") - ], examples=[ [os.path.join(os.path.dirname(__file__), "files/Bunny.obj")], [os.path.join(os.path.dirname(__file__), "files/Duck.glb")], From 8bebcdbc4c1b2b91c9e54c8598a6c0ec78917284 Mon Sep 17 00:00:00 2001 From: Dawood Date: Wed, 18 Jan 2023 16:03:37 -0500 Subject: [PATCH 3/8] changelog --- CHANGELOG.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f89954499c8f..0977ba0b079fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,8 +14,6 @@ io.launch() ``` image - - ### conversational Demo ```python chatbot = gr.Interface.load("models/microsoft/DialoGPT-medium", @@ -27,6 +25,12 @@ chatbot.launch() By [@freddyaboulton](https://github.com/freddyaboulton) in [PR 3011](https://github.com/gradio-app/gradio/pull/3011) +### Download Button added to Model3D Output Component + +No need for an additional file output component to enable model3d file downloads anymore. We now added a download button to the model3d component itself. + +By [@dawoodkhan82](https://github.com/dawoodkhan82) in [PR 3014](https://github.com/gradio-app/gradio/pull/3014) + ## Bug Fixes: * Fixes bug where interpretation event was not configured correctly by [@freddyaboulton](https://github.com/freddyaboulton) in [PR 2993](https://github.com/gradio-app/gradio/pull/2993) * Fix relative import bug in reload mode by [@freddyaboulton](https://github.com/freddyaboulton) in [PR 2992](https://github.com/gradio-app/gradio/pull/2992) From 92c65eeb00660f5c66527dbdedd172e045698e97 Mon Sep 17 00:00:00 2001 From: Dawood Khan Date: Wed, 18 Jan 2023 22:04:22 +0100 Subject: [PATCH 4/8] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0977ba0b079fc..48ede07f2d762 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ By [@freddyaboulton](https://github.com/freddyaboulton) in [PR 3011](https://git ### Download Button added to Model3D Output Component No need for an additional file output component to enable model3d file downloads anymore. We now added a download button to the model3d component itself. +Screenshot 2023-01-18 at 3 52 45 PM By [@dawoodkhan82](https://github.com/dawoodkhan82) in [PR 3014](https://github.com/gradio-app/gradio/pull/3014) From a96977dcdddcdb143016c5bee2a970637c052b85 Mon Sep 17 00:00:00 2001 From: Dawood Khan Date: Wed, 18 Jan 2023 22:05:13 +0100 Subject: [PATCH 5/8] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 48ede07f2d762..98a47d4b78e9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ By [@freddyaboulton](https://github.com/freddyaboulton) in [PR 3011](https://git ### Download Button added to Model3D Output Component No need for an additional file output component to enable model3d file downloads anymore. We now added a download button to the model3d component itself. + Screenshot 2023-01-18 at 3 52 45 PM By [@dawoodkhan82](https://github.com/dawoodkhan82) in [PR 3014](https://github.com/gradio-app/gradio/pull/3014) From 8ca5982bfbafc5cf3c6dcfe7ccfc462df56f448c Mon Sep 17 00:00:00 2001 From: Dawood Date: Thu, 19 Jan 2023 16:43:02 -0500 Subject: [PATCH 6/8] add download button to filepreview --- ui/packages/file/src/FilePreview.svelte | 4 +++- ui/packages/model3D/src/Model3D.svelte | 6 +----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/ui/packages/file/src/FilePreview.svelte b/ui/packages/file/src/FilePreview.svelte index 71a30439c31dc..3ff6353ccf9c7 100644 --- a/ui/packages/file/src/FilePreview.svelte +++ b/ui/packages/file/src/FilePreview.svelte @@ -1,5 +1,7 @@