captcha-solver / app.py
saahiyo's picture
Create app.py
6c0ac4a verified
Raw
History Blame Contribute Delete
1.08 kB
import gradio as gr
from PIL import Image
import torch
from transformers import AutoProcessor, AutoModel
# Load model and processor once on startup
model_name = "Graf-J/captcha-conv-transformer-finetuned"
processor = AutoProcessor.from_pretrained(model_name, trust_remote_code=True)
model = AutoModel.from_pretrained(model_name, trust_remote_code=True)
model.eval()
def predict_captcha(image):
if image is None:
return "No image uploaded"
# Convert to PIL Image
img = Image.fromarray(image).convert("RGB")
inputs = processor(img)
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
decoded = processor.batch_decode(logits)
return decoded[0] if decoded else "Failed to decode"
# Create Gradio interface
demo = gr.Interface(
fn=predict_captcha,
inputs=gr.Image(type="numpy", label="Upload CAPTCHA"),
outputs=gr.Textbox(label="Decoded CAPTCHA"),
title="CAPTCHA Solver API",
description="Upload a CAPTCHA image to solve it using Graf-J/captcha-conv-transformer-finetuned."
)
demo.launch()