smoldolcemahdi / app.py
mansari722's picture
Update app.py
a6f2409 verified
import gradio as gr
from transformers import AutoProcessor, AutoModelForVision2Seq
from PIL import Image
import torch
# Load Model & Processor
model_name = "ds4sd/SmolDocling-256M-preview"
processor = AutoProcessor.from_pretrained(model_name)
model = AutoModelForVision2Seq.from_pretrained(model_name, torch_dtype=torch.bfloat16).to("cuda" if torch.cuda.is_available() else "cpu")
def process_image(image):
if image is None:
return "Error: No image provided."
# Convert image to RGB format to ensure compatibility
image = image.convert("RGB")
# Process the image
inputs = processor(images=[image], return_tensors="pt").to(model.device)
# Generate output (remove unnecessary kwargs)
output = model.generate(**inputs)
# Decode output text
result = processor.batch_decode(output, skip_special_tokens=True)[0]
return result
# Create Gradio Interface
iface = gr.Interface(
fn=process_image,
inputs=gr.Image(type="pil"), # Fixed input format
outputs="text",
title="SmolDocling Document Processing",
description="Upload a document image to extract text."
)
iface.launch(server_name="0.0.0.0", server_port=7860)