Spaces:
Running
Running
| import gradio as gr | |
| from diffusers import ShapEPipeline | |
| from diffusers.utils import export_to_gif | |
| # Load the ShapE model | |
| ckpt_id = "openai/shap-e" | |
| pipe = ShapEPipeline.from_pretrained(ckpt_id) | |
| def generate_shap_e_gif(prompt, progress=gr.Progress()): | |
| guidance_scale = 15.0 | |
| num_inference_steps = 64 | |
| progress(0, desc="Starting...") | |
| images = [] | |
| for i in range(num_inference_steps): | |
| image = pipe(prompt, guidance_scale=guidance_scale, num_inference_steps=1).images[0] | |
| images.append(image) | |
| # Update the progress tracker | |
| progress((i+1)/num_inference_steps) | |
| gif_path = export_to_gif(images, f"{prompt}_3d.gif") | |
| # Ensure the progress is set to complete | |
| progress(1, desc="Completed") | |
| return gif_path | |
| # Create the Gradio interface with queue enabled | |
| demo = gr.Interface( | |
| fn=generate_shap_e_gif, | |
| inputs=gr.Textbox(lines=2, placeholder="Enter a prompt"), | |
| outputs=gr.File(), | |
| title="ShapE 3D GIF Generator", | |
| description="Enter a prompt to generate a 3D GIF using the ShapE model." | |
| ).queue() | |
| # Run the app | |
| if __name__ == "__main__": | |
| demo.launch() | |