video_frames = extract_frames(video_path, num_frames=num_frames) messages = [ { "role": "system", "content": [{"type": "text", "text": "You are a helpful assistant."}] }, { "role": "user", "content": [{"type": "text", "text": "Nsaba mufunze ebigenda mu maaso mu katambi kano"}] } ] # Add frames to the messages structure. for frame_data in video_frames: img, timestamp = frame_data messages[1]["content"].append({"type": "text", "text": f"Frame at {timestamp} seconds:"}) img.save(f"/content/frames/frame_{timestamp}.png") messages[1]["content"].append({"type": "image", "url": f"/content/frames/frame_{timestamp}.png"}) inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt" ).to(model.device) input_length = inputs["input_ids"].shape[-1] # Generate a response based on the inputs. output = model.generate(**inputs, max_new_tokens=500, do_sample=False) output = output[0][input_length:] response = processor.decode(output, skip_special_tokens=True) display(Markdown(response)) __ __