textTo3D / app.py
curryporkchop's picture
Create app.py
28b953a verified
import shutil
import gradio as gr
from gradio_client import Client
# Define a function to generate and return the .glb file path
def generate_3d_model(prompt):
# Initialize Gradio client for Shap-E API
client = Client("hysts/Shap-E")
result = client.predict(
prompt=prompt,
seed=0,
guidance_scale=15,
num_inference_steps=64,
api_name="/text-to-3d"
)
# Define the path to save the .glb file
glb_path = "generated_model.glb"
# Copy the result file locally if it's a temp file
if result.startswith("/tmp"):
shutil.copy(result, glb_path)
else:
# Otherwise, download the file if it's a URL
import requests
response = requests.get(result)
with open(glb_path, "wb") as f:
f.write(response.content)
return glb_path
# Create the Gradio interface
interface = gr.Interface(
fn=generate_3d_model,
inputs="text",
outputs=gr.Model3D(label="Generated 3D Model"),
title="3D Model Generator",
description="Enter a prompt to generate a 3D model."
)
# Launch the Gradio app
interface.launch()