MV3DR / test_ui.py
sharifIslam's picture
Temporarily disable model loading to test UI on HuggingFace
12dc10c
import gradio as gr
import os
# Load assets
def load_assets():
assets_dir = os.path.join(os.path.dirname(__file__), 'assets')
with open(os.path.join(assets_dir, 'style.css'), 'r') as f:
css = f.read()
with open(os.path.join(assets_dir, 'fullscreen.js'), 'r') as f:
fullscreen_js = f.read()
return css, fullscreen_js
css, fullscreen_js = load_assets()
# Dummy function for testing
def dummy_process(files, niter, as_pc, refinement, clean):
if files is None:
return None, []
return None, [("Dummy output", "Processing would happen here")]
with gr.Blocks(
title="Multi-View 3D Reconstruction (MV3DR)",
css=css,
theme=gr.themes.Base()
) as demo:
gr.Markdown("# Multi-View 3D Reconstruction (MV3DR)")
gr.Markdown("**Test UI - No Model Loaded**")
with gr.Row():
with gr.Column(scale=1):
input_files = gr.File(
file_count="multiple",
label="Images",
type="filepath"
)
run_btn = gr.Button("Run Inference")
with gr.Accordion("Settings", open=False):
n_iterations = gr.Slider(minimum=100, maximum=1000, value=300, step=10, label="Alignment Iterations")
render_mode = gr.Checkbox(value=True, label="Render as Point Cloud")
post_proc = gr.Checkbox(value=True, label="Filter Background Points")
clean_depth = gr.Checkbox(value=True, label="Clean Point Cloud")
with gr.Column(scale=2):
output_model = gr.Model3D(label="3D Output", height=600, elem_id="model-container")
full_screen_btn = gr.Button("Toggle Full Screen ⛶", size="sm")
gr.Markdown("---")
with gr.Row():
with gr.Column():
gr.Markdown("## RGB | DEPTH | CONFIDENCE")
artifact_gallery = gr.Gallery(columns=3, height="auto", label="Logs")
full_screen_btn.click(None, None, None, js=fullscreen_js)
run_btn.click(
fn=dummy_process,
inputs=[input_files, n_iterations, render_mode, post_proc, clean_depth],
outputs=[output_model, artifact_gallery]
)
if __name__ == "__main__":
demo.queue().launch()