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()