Spaces:
Runtime error
Runtime error
import gradio as gr | |
import torch | |
from transformers import AutoConfig, AutoProcessor | |
# Import the custom model class directly. | |
from transformers.models.llava.modeling_llava import LlavaQwenForCausalLM | |
# --- Diagnostic Print (Optional) --- | |
config = AutoConfig.from_pretrained( | |
"lmms-lab/LLaVA-Video-7B-Qwen2", | |
trust_remote_code=True | |
) | |
print("Configuration type:", type(config)) | |
print("Configuration architectures:", config.architectures) | |
# --- End Diagnostic --- | |
# Load the processor and the model using the custom model class. | |
processor = AutoProcessor.from_pretrained( | |
"lmms-lab/LLaVA-Video-7B-Qwen2", | |
trust_remote_code=True | |
) | |
model = LlavaQwenForCausalLM.from_pretrained( | |
"lmms-lab/LLaVA-Video-7B-Qwen2", | |
trust_remote_code=True | |
) | |
# Move model to the appropriate device. | |
device = "cuda" if torch.cuda.is_available() else "cpu" | |
model.to(device) | |
def analyze_video(video_path): | |
prompt = "Analyze this video of a concert and determine the moment when the crowd is most engaged." | |
# Process the text and video. | |
inputs = processor(text=prompt, video=video_path, return_tensors="pt") | |
inputs = {k: v.to(device) for k, v in inputs.items()} | |
# Generate output (assumes the custom model has a generate method). | |
outputs = model.generate(**inputs, max_new_tokens=100) | |
answer = processor.decode(outputs[0], skip_special_tokens=True) | |
return answer | |
# Create the Gradio Interface. | |
iface = gr.Interface( | |
fn=analyze_video, | |
inputs=gr.Video(label="Upload Concert/Event Video", type="filepath"), | |
outputs=gr.Textbox(label="Engagement Analysis"), | |
title="Crowd Engagement Analyzer", | |
description="Upload a video of a concert or event and the model will analyze the moment when the crowd is most engaged." | |
) | |
if __name__ == "__main__": | |
iface.launch() | |