3dcret / app.py
3dcre's picture
Create app.py
212ec51 verified
import gradio as gr
import torch
import requests
from PIL import Image
import numpy as np
from torchvision.utils import make_grid, save_image
from diffusers import DiffusionPipeline
def load_wonder3d_pipeline():
pipeline = DiffusionPipeline.from_pretrained(
'flamehaze1115/wonder3d-v1.0',
custom_pipeline='flamehaze1115/wonder3d-pipeline',
torch_dtype=torch.float16
)
pipeline.unet.enable_xformers_memory_efficient_attention()
if torch.cuda.is_available():
pipeline.to('cuda:0')
return pipeline
pipeline = load_wonder3d_pipeline()
def generate_3d(image):
cond = Image.fromarray(np.array(image)[:, :, :3])
images = pipeline(cond, num_inference_steps=20, output_type='pt', guidance_scale=1.0).images
result = make_grid(images, nrow=6, ncol=2, padding=0, value_range=(0, 1))
save_image(result, 'result.png')
return 'result.png'
iface = gr.Interface(
fn=generate_3d,
inputs=gr.Image(),
outputs=gr.Image(),
title="Wonder3D Image to 3D",
description="Загрузите изображение, чтобы сгенерировать 3D-модель."
)
iface.launch()