| from transformers import BlipProcessor, BlipForConditionalGeneration | |
| from PIL import Image | |
| import torch | |
| import os | |
| os.environ["HF_HOME"] = "/tmp/hf_cache" | |
| os.environ["TRANSFORMERS_CACHE"] = "/tmp/hf_cache" | |
| model_id = "Salesforce/blip-image-captioning-large" | |
| processor = BlipProcessor.from_pretrained(model_id) | |
| device = torch.device("cuda" if torch.cuda.is_available() else "cpu") | |
| model = BlipForConditionalGeneration.from_pretrained(model_id).to(device) | |
| def describe_image(image_path, prompt="Describe this image."): | |
| image = Image.open(image_path).convert("RGB") | |
| inputs = processor(image, prompt, return_tensors="pt").to(device) | |
| output = model.generate(**inputs, max_new_tokens=100) | |
| return processor.decode(output[0], skip_special_tokens=True) | |