import gradio as gr load_js1 = """ async () => { const script = document.createElement("script"); script.onload = () => console.log("module loaded") ; script.type="module"; script.src = "https://ajax.googleapis.com/ajax/libs/model-viewer/3.1.1/model-viewer.min.js"; document.head.appendChild(script) }""" load_js2 = """ function(text_input, url_params) { console.log(text_input, url_params); const params = new URLSearchParams(window.location.search); url_params = Object.fromEntries(params); return [text_input, url_params] } """ def predict(text, url_params): mod_url="" mod=gr.HTML("") out = None valid=gr.update(visible=False) try: mod_url = url_params.get('url') if mod_url != None: #print (mod_url) out = gr.HTML.update(f"""

Loading model from:
{mod_url}

""") valid=gr.update(visible=False) else: out=gr.HTML.update(f"""

Enter Model URL

""") valid=gr.update(visible=True) except Exception as e: out=gr.HTML.update(f"""

Enter Model URL

""") valid=gr.update(visible=True) return ["" + text + "", mod,out,mod_url,valid] def find_model(url): out = None mod=None if url != "" and url != None: try: mod = gr.HTML(f'''
''') except Exception as e: out = gr.HTML(f'''

Could not find Model


System Message: {e}

''') else: out = gr.HTML(f'''

Enter Model URL

''') return mod,out with gr.Blocks(css="style.css") as app: markdown = gr.HTML("""""") with gr.Row(visible=False) as valid: inp = gr.Textbox(label="URL") go_btn=gr.Button("Load") out_html=gr.HTML('''''') ''' with gr.Tab("iFrame"): gr.HTML("""
""") ''' with gr.Row(visible=False): text_input=gr.Textbox() text_output=gr.Textbox() url_params = gr.JSON({}, visible=True, label="") app.load(None,None,None,_js=load_js1) app.load(fn=predict, inputs=[text_input,url_params], outputs=[text_output,out_html,markdown,inp,valid],_js=load_js2).then(find_model,inp,[out_html,markdown]) go_btn.click(find_model,inp,[out_html,markdown]) app.launch()