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