Spaces:
Running
Running
#!/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() |