image2mesh / app.py
ahmetyaylalioglu's picture
Update app.py
8594f35 verified
raw
history blame
1.65 kB
import shlex
import subprocess
import gradio as gr
import numpy as np
import spaces
import torch
from diffusers import DiffusionPipeline
subprocess.run(
shlex.split(
"pip install https://huggingface.co/spaces/dylanebert/LGM-mini/resolve/main/wheel/diff_gaussian_rasterization-0.0.0-cp310-cp310-linux_x86_64.whl"
)
)
pipeline = DiffusionPipeline.from_pretrained(
"ahmetyaylalioglu/multiview-diffusion-synthesis",
custom_pipeline="ahmetyaylalioglu/multiview-diffusion-synthesis",
torch_dtype=torch.float16,
trust_remote_code=True,
).to("cuda")
@spaces.GPU
def run(image):
input_image = np.array(image, dtype=np.float32) / 255.0
try:
splat = pipeline("", input_image, guidance_scale=5, num_inference_steps=30, elevation=0)
splat_file = "/tmp/output.ply"
# Assuming `save_ply` is a function you defined to handle .ply files.
save_ply(splat, splat_file)
return splat_file
except AttributeError as e:
return f"Failed to save file due to an attribute error: {str(e)}"
except Exception as e:
return f"An error occurred: {str(e)}"
demo = gr.Interface(
fn=run,
title="LGM Tiny",
description="An extremely simplified version of [LGM](https://huggingface.co/ashawkey/LGM). Intended as resource for the [ML for 3D Course](https://huggingface.co/learn/ml-for-3d-course/unit0/introduction).",
inputs="image",
outputs=gr.Model3D(),
examples=[
"https://huggingface.co/datasets/dylanebert/iso3d/resolve/main/jpg@512/a_cat_statue.jpg"
],
cache_examples=True,
allow_duplication=True,
)
demo.queue().launch()