User-2468's picture
Update app.py
39a17cb verified
Raw History Blame Contribute Delete
1.63 kB
import os
import random
from PIL import Image
from moviepy import ImageSequenceClip
from dalle import text2im
from typing import List
def generate_image(prompt: str, size: tuple = (512, 512)) -> Image:
"""
Generates an image from the given prompt.
"""
response = text2im({
"prompt": prompt,
"size": "1024x1024"
})
image_data = response["images"][0]
image = Image.open(image_data)
image = image.resize(size)
return image
def save_images(image_list: List[Image], folder="generated_images") -> List[str]:
"""
Saves generated images to the specified folder.
"""
if not os.path.exists(folder):
os.makedirs(folder)
paths = []
for i, image in enumerate(image_list):
path = os.path.join(folder, f"frame_{i}.png")
image.save(path)
paths.append(path)
return paths
def create_video(image_paths: List[str], output="output_video.mp4", fps=12):
"""
Creates a video from the list of image paths.
"""
clip = ImageSequenceClip(image_paths, fps=fps)
clip.write_videofile(output, codec="libx264")
def generate_video(prompt: str, num_frames: int = 20):
"""
Generates a video from a prompt.
"""
images = []
for i in range(num_frames):
modified_prompt = f"{prompt}, transitioning scene, frame {i+1}/{num_frames}"
images.append(generate_image(modified_prompt))
image_paths = save_images(images)
create_video(image_paths)
if __name__ == "__main__":
prompt = "A beautiful futuristic cityscape at night with neon lights and flying cars."
generate_video(prompt)