Spaces:
Build error
Build error
| 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) | |