import gradio as gr def load_data(query_params, model_3d): model_url = query_params.get("3d", None) if query_params else None hm_url = query_params.get("hm", None) if query_params else None img_url = query_params.get("image", None) if query_params else None slider_images = [] if hm_url: slider_images.append(hm_url) if img_url: slider_images.append(img_url) if not slider_images: slider_images = ["images/logo.png", "images/background.png"] return model_url, slider_images gr.set_static_paths(paths=["images/", "models/", "assets/"]) with gr.Blocks(theme="Surn/Beeuty") as demo: gr.Markdown("# 3D Model Viewer") with gr.Row(): model_3d = gr.Model3D( label="3D Model", value=None, height=400 ) image_slider = gr.ImageSlider( label="Images", value=["images/logo.png", "images/background.png"], height=400 ) with gr.Row(): upload_btn = gr.UploadButton( "Upload", file_types=[".glb", ".gltf", ".obj", ".png", ".jpg", ".ply"] ) # Use JavaScript to pass the query parameters to your callback. demo.load( load_data, inputs=[gr.JSON(), model_3d], outputs=[model_3d, image_slider], js="""() => { const params = Object.fromEntries(new URLSearchParams(window.location.search)); return params; }""" ) if __name__ == "__main__": demo.launch( allowed_paths=["assets", "assets/", "./assets", "images/", "./images", 'e:/TMP', 'models/'], favicon_path="./assets/favicon.ico" )