Spaces:
Paused
Paused
Update app.py
Browse files
app.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
import gradio as gr
|
2 |
import numpy as np
|
3 |
from PIL import Image
|
|
|
4 |
from moviepy.editor import VideoFileClip
|
5 |
from share_btn import community_icon_html, loading_icon_html, share_js
|
6 |
import torch
|
@@ -13,11 +14,39 @@ pipe_xl.scheduler = DPMSolverMultistepScheduler.from_config(pipe_xl.scheduler.co
|
|
13 |
pipe_xl.enable_model_cpu_offload()
|
14 |
pipe_xl.to("cuda")
|
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
def infer(prompt, video_in):
|
18 |
|
19 |
-
|
20 |
-
video_frames = pipe_xl(prompt, video=
|
21 |
video_path = export_to_video(video_frames, output_video_path="xl_result.mp4")
|
22 |
|
23 |
return "xl_result.mp4", gr.Group.update(visible=True)
|
|
|
1 |
import gradio as gr
|
2 |
import numpy as np
|
3 |
from PIL import Image
|
4 |
+
import cv2
|
5 |
from moviepy.editor import VideoFileClip
|
6 |
from share_btn import community_icon_html, loading_icon_html, share_js
|
7 |
import torch
|
|
|
14 |
pipe_xl.enable_model_cpu_offload()
|
15 |
pipe_xl.to("cuda")
|
16 |
|
17 |
+
def convert_mp4_to_frames(video_path):
|
18 |
+
# Read the video file
|
19 |
+
video = cv2.VideoCapture(video_path)
|
20 |
+
|
21 |
+
frames = []
|
22 |
+
|
23 |
+
# Iterate through each frame
|
24 |
+
while True:
|
25 |
+
# Read a frame
|
26 |
+
ret, frame = video.read()
|
27 |
+
|
28 |
+
# If the frame was not successfully read, then we have reached the end of the video
|
29 |
+
if not ret:
|
30 |
+
break
|
31 |
+
|
32 |
+
# Convert the frame to grayscale if needed
|
33 |
+
# frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
|
34 |
+
|
35 |
+
# Append the frame to the list of frames
|
36 |
+
frames.append(frame)
|
37 |
+
|
38 |
+
# Release the video object
|
39 |
+
video.release()
|
40 |
+
|
41 |
+
# Convert the list of frames to a numpy array
|
42 |
+
frames = np.array(frames)
|
43 |
+
|
44 |
+
return frames
|
45 |
|
46 |
def infer(prompt, video_in):
|
47 |
|
48 |
+
video = convert_mp4_to_frames(video_in)
|
49 |
+
video_frames = pipe_xl(prompt, video=video, strength=0.6).frames
|
50 |
video_path = export_to_video(video_frames, output_video_path="xl_result.mp4")
|
51 |
|
52 |
return "xl_result.mp4", gr.Group.update(visible=True)
|