Spaces:
Paused
Paused
| import gradio as gr | |
| import subprocess | |
| def run(input_ply): | |
| subprocess.run( | |
| "python3.10 convert.py big --force-cuda-rast --test_path " + input_ply, | |
| shell=True, | |
| ) | |
| return input_ply.replace(".ply", ".glb") | |
| def main(): | |
| title = """Splat to Mesh""" | |
| description = """ | |
| Converts Gaussian Splat (.ply) to Mesh (.glb) using [LGM](https://github.com/3DTopia/LGM). | |
| For faster inference without waiting in a queue, you may duplicate the space and upgrade to a GPU in the settings. | |
| """ | |
| css = """ | |
| #duplicate-button { | |
| margin: auto; | |
| color: white; | |
| background: #1565c0; | |
| border-radius: 100vh; | |
| } | |
| """ | |
| with gr.Blocks(title=title, css=css) as demo: | |
| gr.DuplicateButton( | |
| value="Duplicate Space for private use", elem_id="duplicate-button" | |
| ) | |
| with gr.Row(): | |
| with gr.Column(): | |
| gr.Markdown("# " + title + "\n" + description) | |
| with gr.Row(variant="panel"): | |
| with gr.Column(): | |
| input_ply = gr.Model3D(label="Input Splat") | |
| button_gen = gr.Button("Convert") | |
| with gr.Column(): | |
| output_glb = gr.Model3D(label="Output GLB") | |
| button_gen.click(run, inputs=[input_ply], outputs=[output_glb]) | |
| gr.Examples( | |
| ["data_test/catstatue.ply"], | |
| inputs=[input_ply], | |
| outputs=[output_glb], | |
| fn=lambda x: run(x), | |
| cache_examples=True, | |
| label="Examples", | |
| ) | |
| demo.queue().launch(server_name="0.0.0.0", server_port=7860) | |
| if __name__ == "__main__": | |
| main() | |