Update app.py
Browse files
app.py
CHANGED
@@ -2,6 +2,7 @@ import os
|
|
2 |
import time
|
3 |
from typing import List, Tuple, Optional
|
4 |
from pathlib import Path
|
|
|
5 |
|
6 |
import google.generativeai as genai
|
7 |
import gradio as gr
|
@@ -42,6 +43,7 @@ def user(text_prompt: str, chatbot: List[Tuple[str, str]]):
|
|
42 |
return "", chatbot + [[text_prompt, None]]
|
43 |
|
44 |
|
|
|
45 |
def bot(
|
46 |
google_key: str,
|
47 |
model_name: str,
|
@@ -71,45 +73,29 @@ def bot(
|
|
71 |
top_k=top_k,
|
72 |
top_p=top_p)
|
73 |
|
74 |
-
if video_prompt is not None
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
video_file = genai.upload_file(path=video_path)
|
80 |
-
while video_file.state.name == "PROCESSING":
|
81 |
-
print('.', end='')
|
82 |
-
time.sleep(10)
|
83 |
-
video_file = genai.get_file(video_file.name)
|
84 |
-
|
85 |
-
if video_file.state.name == "FAILED":
|
86 |
-
raise ValueError(video_file.state.name)
|
87 |
|
88 |
-
response = model.generate_content(
|
89 |
-
contents=[video_file, image_prompt, text_prompt],
|
90 |
-
stream=True,
|
91 |
-
generation_config=generation_config,
|
92 |
-
request_options={"timeout": 600})
|
93 |
-
response.resolve()
|
94 |
-
elif video_prompt is not None:
|
95 |
model = genai.GenerativeModel(model_name)
|
96 |
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
raise ValueError(video_file.state.name)
|
106 |
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
elif image_prompt is not None:
|
114 |
image_prompt = preprocess_image(image_prompt)
|
115 |
model = genai.GenerativeModel(model_name)
|
|
|
2 |
import time
|
3 |
from typing import List, Tuple, Optional
|
4 |
from pathlib import Path
|
5 |
+
from moviepy.editor import VideoFileClip, concatenate_videoclips
|
6 |
|
7 |
import google.generativeai as genai
|
8 |
import gradio as gr
|
|
|
43 |
return "", chatbot + [[text_prompt, None]]
|
44 |
|
45 |
|
46 |
+
|
47 |
def bot(
|
48 |
google_key: str,
|
49 |
model_name: str,
|
|
|
73 |
top_k=top_k,
|
74 |
top_p=top_p)
|
75 |
|
76 |
+
if video_prompt is not None:
|
77 |
+
video_clips = [VideoFileClip(str(video_path)) for video_path in video_prompt]
|
78 |
+
merged_video = concatenate_videoclips(video_clips)
|
79 |
+
merged_video_path = "merged_video.mp4"
|
80 |
+
merged_video.write_videofile(merged_video_path)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
model = genai.GenerativeModel(model_name)
|
83 |
|
84 |
+
video_file = genai.upload_file(path=merged_video_path)
|
85 |
+
while video_file.state.name == "PROCESSING":
|
86 |
+
print('.', end='')
|
87 |
+
time.sleep(10)
|
88 |
+
video_file = genai.get_file(video_file.name)
|
89 |
+
|
90 |
+
if video_file.state.name == "FAILED":
|
91 |
+
raise ValueError(video_file.state.name)
|
|
|
92 |
|
93 |
+
response = model.generate_content(
|
94 |
+
contents=[video_file, text_prompt],
|
95 |
+
stream=True,
|
96 |
+
generation_config=generation_config,
|
97 |
+
request_options={"timeout": 600})
|
98 |
+
response.resolve()
|
99 |
elif image_prompt is not None:
|
100 |
image_prompt = preprocess_image(image_prompt)
|
101 |
model = genai.GenerativeModel(model_name)
|