| import google.generativeai as genai |
| import gradio as gr |
| from PIL import Image |
| import os |
|
|
| |
| genai.configure(api_key=os.getenv("GEMINI_API_KEY")) |
|
|
| def generate_poem(image, prompt, language): |
| """Generate a poem based on the image and prompt, optimized for speed.""" |
| if not language: |
| return "Please select a language." |
|
|
| model = genai.GenerativeModel("gemini-1.5-flash") |
|
|
| |
| img = image.convert("RGB") |
| img = img.resize((256, 256)) |
|
|
| |
| full_prompt = f"Generate a short poem in {language} based on this image and theme: {prompt}." |
|
|
| |
| response = model.generate_content([img, full_prompt]) |
| output_text = response.text |
|
|
| return output_text |
|
|
| |
| iface = gr.Interface( |
| fn=generate_poem, |
| inputs=[ |
| gr.Image(type="pil"), |
| gr.Textbox(label="Enter a theme for the poem (in English)"), |
| gr.Dropdown( |
| ["Hindi", "Tamil", "Telugu", "Malayalam", "Kannada", "Marathi", "Bengali"], |
| label="Select Output Language" |
| ) |
| ], |
| outputs="text", |
| title="Multilingual Image Poetry Generator", |
| description="Upload an image, enter a theme in English, and get a poem in your chosen regional language." |
| ) |
|
|
| |
| if __name__ == "__main__": |
| iface.launch() |