Florence-2-try / app.py
optimus8254's picture
Update app.py
c8f83ff verified
import gradio as gr
import torch
from PIL import Image
import requests
from transformers import AutoProcessor, AutoModelForCausalLM
# Model ve işlemciyi yükle
model = AutoModelForCausalLM.from_pretrained("microsoft/Florence-2-base-mini", torch_dtype=torch.float32, trust_remote_code=True)
def process_image(image, task):
# Girdiyi hazırla
inputs = processor(text=task, images=image, return_tensors="pt")
# Giriş verilerini half precision'a dönüştür
inputs = {k: v.half() if isinstance(v, torch.Tensor) else v for k, v in inputs.items()}
# Çıktıyı oluştur
generated_ids = model.generate(
input_ids=inputs["input_ids"],
pixel_values=inputs["pixel_values"],
max_new_tokens=1024,
num_beams=3,
do_sample=False
)
# Sonucu işle
generated_text = processor.batch_decode(generated_ids, skip_special_tokens=False)[0]
parsed_answer = processor.post_process_generation(generated_text, task=task, image_size=(image.width, image.height))
return parsed_answer
# Gradio arayüzü
iface = gr.Interface(
fn=process_image,
inputs=[
gr.Image(type="pil"),
gr.Radio(["<IC>", "<OD>", "<VQA>", "<IS>"], label="Task")
],
outputs="text",
title="Florence-2 Image Processing",
description="Upload an image and select a task to process with Florence-2."
)
iface.launch()