Spaces:
Running
on
Zero
Running
on
Zero
Update app.py
Browse files
app.py
CHANGED
@@ -332,11 +332,22 @@ def generate(
|
|
332 |
num_steps=64,
|
333 |
randomize_seed=True,
|
334 |
)
|
335 |
-
# Convert the GLB file to a base64 data URL
|
336 |
data_url = glb_to_data_url(glb_path)
|
|
|
337 |
html_output = f'''
|
338 |
-
<model-viewer src="{data_url}" alt="3D Model" auto-rotate camera-controls style="width: 100%; height: 400px;"></model-viewer>
|
339 |
<script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js"></script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
340 |
'''
|
341 |
yield gr.HTML(html_output)
|
342 |
return
|
|
|
332 |
num_steps=64,
|
333 |
randomize_seed=True,
|
334 |
)
|
335 |
+
# Convert the GLB file to a base64 data URL.
|
336 |
data_url = glb_to_data_url(glb_path)
|
337 |
+
# Create an HTML snippet that loads model-viewer and converts the data URL to a Blob URL.
|
338 |
html_output = f'''
|
|
|
339 |
<script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js"></script>
|
340 |
+
<model-viewer id="model-viewer" alt="3D Model" auto-rotate camera-controls
|
341 |
+
style="width: 100%; height: 400px;"></model-viewer>
|
342 |
+
<script>
|
343 |
+
(async () => {{
|
344 |
+
const response = await fetch("{data_url}");
|
345 |
+
const arrayBuffer = await response.arrayBuffer();
|
346 |
+
const blob = new Blob([arrayBuffer], {{type: 'model/gltf-binary'}});
|
347 |
+
const blobUrl = URL.createObjectURL(blob);
|
348 |
+
document.getElementById("model-viewer").src = blobUrl;
|
349 |
+
}})();
|
350 |
+
</script>
|
351 |
'''
|
352 |
yield gr.HTML(html_output)
|
353 |
return
|