from PIL import Image
from peft import PeftModel
from transformers import AutoProcessor, Qwen2_5_VLForConditionalGeneration
base_model_id = "Qwen/Qwen2.5-VL-3B-Instruct"
adapter_repo_or_path = "qualcomm-ai-hub-community/CyberSpark2-3b-cabin-lora-v2"
processor = AutoProcessor.from_pretrained(base_model_id, trust_remote_code=True)
base_model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
base_model_id,
torch_dtype="auto",
device_map="auto",
trust_remote_code=True,
)
model = PeftModel.from_pretrained(base_model, adapter_repo_or_path)
image = Image.open("/path/to/your/image.jpg").convert("RGB")
messages = [
{
"role": "user",
"content": [
{"type": "image"},
{"type": "text", "text": "Describe the driver state and suggest actions."},
],
}
]
text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = processor(text=[text], images=[image], return_tensors="pt")
inputs = inputs.to(base_model.device)
generated_ids = model.generate(**inputs, max_new_tokens=128)
generated_ids = [
output_ids[len(input_ids):]
for input_ids, output_ids in zip(inputs.input_ids, generated_ids)
]
print(processor.batch_decode(generated_ids, skip_special_tokens=False)[0])