Spaces:
Running
Running
| import streamlit as st | |
| from diffusers import DiffusionPipeline | |
| import torch | |
| import os | |
| import imageio | |
| st.set_page_config(page_title="Gen-V", layout="centered") | |
| st.title("π₯ Gen-V: Text-to-Video Generator") | |
| st.write("Generate AI-powered videos from text prompts using open-source models!") | |
| prompt = st.text_input("Enter a prompt", "cat wearing black goggles") | |
| if st.button("π¬ Generate Video"): | |
| with st.spinner("Generating video... this might take a bit β³"): | |
| device = "cuda" if torch.cuda.is_available() else "cpu" | |
| dtype = torch.float16 if device == "cuda" else torch.float32 | |
| use_fp16 = torch.cuda.is_available() | |
| pipe = DiffusionPipeline.from_pretrained( | |
| "damo-vilab/text-to-video-ms-1.7b", | |
| torch_dtype=torch.float16 if use_fp16 else torch.float32, | |
| variant="fp16" if use_fp16 else None, | |
| ).to("cuda" if use_fp16 else "cpu") | |
| video_frames = pipe(prompt).frames # Returns list of PIL Images (frames) | |
| output_path = "genv_output.mp4" | |
| imageio.mimsave(output_path, video_frames, fps=8) | |
| st.success("Video generation complete!") | |
| st.video(output_path) | |