Spaces:
Running
on
L4
Running
on
L4
import gradio as gr | |
import random | |
import torch | |
import numpy as np | |
from PIL import Image, ImageOps | |
from fastapi import FastAPI, Request | |
from MagicQuill import folder_paths | |
from MagicQuill.llava_new import LLaVAModel | |
from huggingface_hub import snapshot_download | |
snapshot_download(repo_id="LiuZichen/MagicQuill-models", repo_type="model", local_dir="models") | |
llavaModel = LLaVAModel() | |
def numpy_to_tensor(numpy_array): | |
tensor = torch.from_numpy(numpy_array).float().unsqueeze(0) / 255. | |
return tensor | |
def guess(original_image_tensor, add_color_image_tensor, add_edge_mask): | |
# print("original_image_tensor:", original_image_tensor.shape) | |
# print("add_color_image_tensor:", add_color_image_tensor.shape) | |
# print("add_edge_mask:", add_edge_mask.shape) | |
original_image_tensor = numpy_to_tensor(original_image_tensor) | |
add_color_image_tensor = numpy_to_tensor(add_color_image_tensor) | |
add_edge_mask = numpy_to_tensor(add_edge_mask) | |
description, ans1, ans2 = llavaModel.process(original_image_tensor, add_color_image_tensor, add_edge_mask) | |
ans_list = [] | |
if ans1 and ans1 != "": | |
ans_list.append(ans1) | |
if ans2 and ans2 != "": | |
ans_list.append(ans2) | |
return ", ".join(ans_list) | |
# 简化 Gradio 接口,参考官方格式 | |
gr.Interface( | |
fn=guess, | |
inputs=[gr.Image(label="Original Image"), | |
gr.Image(label="Colored Image"), | |
gr.Image(image_mode="L", label="Edge Mask")], | |
outputs=gr.Textbox(label="Prediction Output") | |
).queue(max_size=40, status_update_rate=0.1).launch(max_threads=4) |