Update app.py
Browse files
app.py
CHANGED
@@ -1,14 +1,27 @@
|
|
1 |
-
|
|
|
|
|
|
|
|
|
2 |
|
3 |
def generate_video(prompt):
|
4 |
-
|
5 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
output_text = gr.Textbox(label="Output")
|
11 |
-
generate_button = gr.Button("Generate Video")
|
12 |
-
generate_button.click(generate_video, inputs=prompt_input, outputs=output_text)
|
13 |
|
14 |
-
|
|
|
1 |
+
from diffusers import StableDiffusionPipeline
|
2 |
+
import os
|
3 |
+
import ffmpeg
|
4 |
+
|
5 |
+
model = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4")
|
6 |
|
7 |
def generate_video(prompt):
|
8 |
+
frames = []
|
9 |
+
for i in range(10): # Generate 10 frames
|
10 |
+
image = model(prompt).images[0]
|
11 |
+
frame_path = f"frame_{i}.png"
|
12 |
+
image.save(frame_path)
|
13 |
+
frames.append(frame_path)
|
14 |
+
|
15 |
+
output_video = "output.mp4"
|
16 |
+
(
|
17 |
+
ffmpeg
|
18 |
+
.input("frame_%d.png", framerate=1)
|
19 |
+
.output(output_video)
|
20 |
+
.run(overwrite_output=True)
|
21 |
+
)
|
22 |
|
23 |
+
# Clean up frames
|
24 |
+
for frame in frames:
|
25 |
+
os.remove(frame)
|
|
|
|
|
|
|
26 |
|
27 |
+
return output_video
|