import gradio as gr from core import translate_tamil_to_english, generate_image, generate_creative_text def full_pipeline(tamil_text, reference_text=None): if not tamil_text.strip(): return "Please enter Tamil text.", None, None, None, None, None, None, None, None # Step 1: Translate Tamil to English en_text, t_time, rouge_score = translate_tamil_to_english(tamil_text, reference_text) # Step 2: Generate Image from English translation image_path, img_time = generate_image(en_text) # Step 3: Generate creative text from English translation gen_text, gen_time, tokens, rep = generate_creative_text(en_text) return en_text, t_time, rouge_score, image_path, img_time, gen_text, gen_time, tokens, rep # Gradio Interface demo = gr.Interface( fn=full_pipeline, inputs=[ gr.Textbox(label="✍️ Enter Tamil Text", lines=5, placeholder="எனது கனவு வீட்டை வர்ணிக்க..."), gr.Textbox(label="📘 (Optional) Reference English Translation", lines=2) ], outputs=[ gr.Textbox(label="📝 English Translation"), gr.Number(label="⏱️ Translation Time (s)"), gr.Number(label="📊 ROUGE-L Score"), gr.Image(label="🎨 Generated Image (256x256)"), gr.Number(label="🖼️ Image Generation Time (s)"), gr.Textbox(label="💡 Creative English Text"), gr.Number(label="🕒 Text Generation Time (s)"), gr.Number(label="🔢 Number of Tokens"), gr.Number(label="♻️ Repetition Rate") ], title="🌐 Tamil to English Translator + Image & Text Generator", description="Translate Tamil to English using MBart50 → Generate AI Image using StabilityAI → Generate Creative Text using GPT-2", theme="soft", allow_flagging="never" ) if __name__ == "__main__": demo.launch()