from transformers import Qwen2_5_VLForConditionalGeneration, AutoProcessor
import torch
model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
"ottokevin/JUSTCSL-OphthaVision-3B",
torch_dtype=torch.bfloat16,
device_map="auto",
)
processor = AutoProcessor.from_pretrained("ottokevin/JUSTCSL-OphthaVision-3B")
from PIL import Image
image = Image.open("retina.png").convert("RGB")
messages = [
{
"role": "user",
"content": [
{"type": "image", "image": image},
{"type": "text", "text": "Classify this retina image: 0=No DR, 1=Mild, 2=Moderate, 3=Severe, 4=Proliferative DR. Answer:"},
],
},
]
text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = processor(text=[text], images=[image], padding=True, return_tensors="pt").to(model.device)
generated = model.generate(**inputs, max_new_tokens=8, do_sample=False)
response = processor.tokenizer.decode(generated[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
print(response)