| from transformers import BlipProcessor, BlipForConditionalGeneration |
| from PIL import Image |
| import requests |
|
|
|
|
| class VisionEngine: |
|
|
| def __init__(self): |
| self.processor = BlipProcessor.from_pretrained("Salesforce/blip-image-captioning-base") |
| self.model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-image-captioning-base") |
|
|
| def describe(self, image_url): |
|
|
| raw_image = Image.open(requests.get(image_url, stream=True).raw).convert('RGB') |
|
|
| inputs = self.processor(raw_image, return_tensors="pt") |
|
|
| out = self.model.generate(**inputs) |
|
|
| description = self.processor.decode(out[0], skip_special_tokens=True) |
|
|
| return description |