File size: 1,519 Bytes
1c58795
8ee50bc
 
1c58795
8ee50bc
 
 
 
7722007
8ee50bc
 
 
 
 
 
7722007
8ee50bc
1c58795
 
8ee50bc
7722007
8ee50bc
 
 
 
7722007
8ee50bc
1c58795
8ee50bc
 
 
 
 
 
 
 
 
 
 
 
1c58795
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import gradio as gr
from diffusers import StableDiffusionPipeline, DiffusionPipeline
import torch, imageio

# Load Image Generator
img_model = "runwayml/stable-diffusion-v1-5"
img_pipe = StableDiffusionPipeline.from_pretrained(img_model, torch_dtype=torch.float32)
img_pipe = img_pipe.to("cpu")

# Load Video Generator
vid_model = "damo-vilab/text-to-video-ms-1.7b"
vid_pipe = DiffusionPipeline.from_pretrained(vid_model, torch_dtype=torch.float32)
vid_pipe = vid_pipe.to("cpu")

# Image generation function
def generate_image(prompt):
    image = img_pipe(prompt).images[0]
    return image

# Video generation function
def generate_video(prompt):
    video_frames = vid_pipe(prompt, num_frames=8).frames
    output_path = "output.mp4"
    imageio.mimsave(output_path, video_frames, fps=8)
    return output_path

# Gradio Tabs UI
with gr.Blocks() as demo:
    gr.Markdown("## 🎨 Free AI Image + Video Generator")
    with gr.Tab("🖼️ Image Generator"):
        text_in = gr.Textbox(label="ছবির জন্য প্রম্পট লিখুন")
        img_out = gr.Image(type="pil")
        btn1 = gr.Button("Generate Image")
        btn1.click(generate_image, inputs=text_in, outputs=img_out)

    with gr.Tab("🎬 Video Generator"):
        text_in2 = gr.Textbox(label="ভিডিওর জন্য প্রম্পট লিখুন")
        vid_out = gr.Video()
        btn2 = gr.Button("Generate Video")
        btn2.click(generate_video, inputs=text_in2, outputs=vid_out)

demo.launch()