Sabbirr12 commited on
Commit
1c58795
·
verified ·
1 Parent(s): 8ca75f4

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +58 -0
app.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch, cv2, numpy as np
2
+ from diffusers import StableDiffusionPipeline
3
+ import moviepy.editor as mp
4
+ from gtts import gTTS
5
+ import gradio as gr
6
+
7
+ # ---------- Image ----------
8
+ def generate_image(prompt, ratio="16:9"):
9
+ model = StableDiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-2-1").to("cuda")
10
+ image = model(prompt).images[0]
11
+ return image
12
+
13
+ # ---------- Video ----------
14
+ def generate_video(prompt, duration=12, ratio="16:9"):
15
+ model = StableDiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-2-1").to("cuda")
16
+ frames = []
17
+ for _ in range(duration):
18
+ img = model(prompt).images[0]
19
+ frame = cv2.cvtColor(np.array(img), cv2.COLOR_RGB2BGR)
20
+ frames.append(frame)
21
+
22
+ h, w, _ = frames[0].shape
23
+ out = cv2.VideoWriter("output_video.mp4", cv2.VideoWriter_fourcc(*"mp4v"), 1, (w, h))
24
+ for f in frames: out.write(f)
25
+ out.release()
26
+ return "output_video.mp4"
27
+
28
+ # ---------- Voice ----------
29
+ def generate_voice(text, lang="bn"):
30
+ tts = gTTS(text=text, lang=lang)
31
+ filename = f"voice_{lang}.mp3"
32
+ tts.save(filename)
33
+ return filename
34
+
35
+ # ---------- Gradio UI ----------
36
+ with gr.Blocks() as demo:
37
+ gr.Markdown("# 🎬 AI App → Image | Video | Voice")
38
+
39
+ with gr.Tab("🖼️ Image"):
40
+ prompt_img = gr.Textbox(label="Prompt", value="3D futuristic city in 4K")
41
+ btn_img = gr.Button("Generate Image")
42
+ output_img = gr.Image()
43
+ btn_img.click(generate_image, inputs=prompt_img, outputs=output_img)
44
+
45
+ with gr.Tab("🎥 Video"):
46
+ prompt_vid = gr.Textbox(label="Prompt", value="Flying car 3D animation 4K")
47
+ btn_vid = gr.Button("Generate Video (10–15s)")
48
+ output_vid = gr.Video()
49
+ btn_vid.click(generate_video, inputs=prompt_vid, outputs=output_vid)
50
+
51
+ with gr.Tab("🎙️ Voice"):
52
+ text_voice = gr.Textbox(label="Text", value="এটি একটি টেস্ট ভয়েস")
53
+ lang_voice = gr.Dropdown(choices=["bn","en","hi","ar"], label="Language", value="bn")
54
+ btn_voice = gr.Button("Generate Voice")
55
+ output_voice = gr.Audio()
56
+ btn_voice.click(generate_voice, inputs=[text_voice, lang_voice], outputs=output_voice)
57
+
58
+ demo.launch()