| import gradio as gr | |
| from video_pipeline import generate_video | |
| from quota_manager import check_quota, increment_quota | |
| def full_pipeline(prompt, image): | |
| if not check_quota(): | |
| return "⚠️ আজকের ৭টি ভিডিও সীমা পূর্ণ হয়েছে।", None | |
| image_path = "input.png" | |
| image.save(image_path) | |
| video_path = generate_video(prompt, image_path) | |
| increment_quota() | |
| return "✅ ভিডিও তৈরি হয়েছে!", video_path | |
| with gr.Blocks() as demo: | |
| gr.Markdown("## 🎬 Text + Image → Shorts-Ready Video") | |
| prompt = gr.Textbox(label="🔤 লিখুন (Bengali/English)") | |
| image_input = gr.Image(type="pil", label="🖼️ একটি ছবি দিন") | |
| status = gr.Textbox(label="📢 Status") | |
| video_output = gr.Video(label="🎥 Generated Video") | |
| generate_btn = gr.Button("🎞️ ভিডিও তৈরি করুন") | |
| generate_btn.click(fn=full_pipeline, inputs=[prompt, image_input], outputs=[status, video_output]) | |
| demo.launch() |