File size: 1,023 Bytes
04e2e3b
a9cdb88
981337a
2012122
981337a
b9f48bf
981337a
 
04e2e3b
1dee560
89612fd
b9f48bf
981337a
a9cdb88
981337a
37f620a
b9f48bf
4e80d42
981337a
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import torch
import spaces
import gradio as gr
from transformers import pipeline
from PIL import Image
from transformers import Pix2StructForConditionalGeneration, Pix2StructProcessor

# Load model and processor
model = Pix2StructForConditionalGeneration.from_pretrained("google/pix2struct-screen2words-large", dtype=torch.bfloat16).to("cuda")
model.eval()
processor = Pix2StructProcessor.from_pretrained("google/pix2struct-screen2words-large")

# Define the function
@spaces.GPU
def describe_ui(image):
    inputs = processor(images=image, text="", return_tensors="pt").to(dtype=torch.bfloat16, device="cuda")
    predictions = model.generate(**inputs)
    return processor.decode(predictions[0], skip_special_tokens=False)

# Launch the Gradio interface
gr.Interface(
    fn=describe_ui,
    inputs=gr.Image(type="pil"),
    outputs="text",
    title="UI Screen Describer (Pix2Struct)",
    description="Upload a screenshot or UI image and get an automatic description powered by Google’s Pix2Struct model."
).launch()