from asyncio import constants import gradio as gr import requests import os from base64 import b64decode from PIL import Image import io import numpy as np def generate_image(seed,psi): iface = gr.Interface.load("spaces/hysts/StyleGAN-Human") print("calling interface",seed,psi) img=iface(seed,psi) #img=iface.fns[0].fn(seed,psi) #wrong format, gah! convert to numpy array header, encoded = img.split(",", 1) data = b64decode(encoded) image = Image.open(io.BytesIO(data)) image_np = np.array(image) return image_np def generate_model(img): print("about to die") iface = gr.Interface.load("spaces/radames/PIFu-Clothed-Human-Digitization") print("calling interface") #model,file=iface.fns[0].fn(img) model,file=iface(img) #print("got result",result) return model,file demo = gr.Blocks() with demo: gr.Markdown("

StyleGan-Human + PIFu

") gr.Markdown( "create a person and then generate a model from that person's image" ) with gr.Row(): b0 = gr.Button("generate image") b1 = gr.Button("generate model") with gr.Row(): seed=gr.Number(default=0, label='Seed') psi=gr.inputs.Slider(0, 2, step=0.05, default=0.7, label='Truncation psi') #outputImage = gr.Image(label="portrait",type="filepath", shape=(256,256)) output_image = gr.outputs.Image(type="filepath", label='Output') model = gr.Model3D(clear_color=[0.0, 0.0, 0.0, 0.0], label="3D Model") file= gr.File(label="Download 3D Model") b0.click(generate_image,inputs=[seed,psi],outputs=output_image) b1.click(generate_model, inputs=output_image, outputs=[model,file]) demo.launch(enable_queue=True, debug=True)