#!/usr/bin/env python import gradio as gr import PIL.Image import os from gradio_client import Client, file lgm_mini_client = Client("dylanebert/LGM-mini") triposr_client = Client("stabilityai/TripoSR") crm_client = Client("Zhengyi/CRM") def run(image, model_name): file_path = "temp.png" image.save(file_path) if model_name=='lgm-mini': result = lgm_mini_client.predict( file_path, # filepath in 'image' Image component api_name="/run" ) output = result elif model_name=='triposr': process_result = triposr_client.predict( file_path, # filepath in 'Input Image' Image component True, # bool in 'Remove Background' Checkbox component 0.85, # float (numeric value between 0.5 and 1.0) in 'Foreground Ratio' Slider component api_name="/preprocess") result = triposr_client.predict( process_result, # filepath in 'Processed Image' Image component 256, # float (numeric value between 32 and 320) in 'Marching Cubes Resolution' Slider component api_name="/generate") output = result[0] elif model_name=='crm': preprocess_result = crm_client.predict( file(file_path), # filepath in 'Image input' Image component "Auto Remove background", # Literal['Alpha as mask', 'Auto Remove background'] in 'backgroud choice' Radio component 1, # float (numeric value between 0.5 and 1.0) in 'Foreground Ratio' Slider component "#7F7F7F", # str in 'Background Color' Colorpicker component api_name="/preprocess_image" ) result = crm_client.predict( file(preprocess_result), # filepath in 'Processed Image' Image component 1234, # float in 'seed' Number component 5.5, # float in 'guidance_scale' Number component 30, # float in 'sample steps' Number component api_name="/gen_image" ) output = result[2] return output demo = gr.Interface( fn=run, inputs=[gr.Image(type="pil"),gr.Textbox(label="Model Name")], outputs=gr.Model3D(label="3D Model"), api_name="synthesize", description="Router for the [3D Arena space](https://huggingface.co/spaces/RamAnanth1/3D-Arena) that does most of the generation" ) demo.launch()