File size: 1,764 Bytes
4e4915f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import gradio as gr
import google.generativeai as genai
import base64
from io import BytesIO
from PIL import Image

# Set up Google GenAI API Key (Replace with your actual API key)
genai.configure(api_key="AIzaSyD1zUY1srmMIYmE_6NfjmIzb6yYpbcIDCk")  

def image_to_tamil_poem(image):
    """Generates a Tamil poem about an upload image using Gemini 1.5 Pro"""

    try:
        # Convert image to bytes
        buffered = BytesIO()
        image.save(buffered, format="PNG")
        img_bytes = buffered.getvalue()
        
        # Convert image to Base64 for Gemini API
        image_b64 = base64.b64encode(img_bytes).decode('utf-8')
        prompt = "Describe this image in one sentence."

        # Use Gemini 1.5 Pro for image analysis
        model = genai.GenerativeModel("gemini-1.5-pro")
        response = model.generate_content([{"mime_type": "image/png", "data": image_b64}, prompt])
        description = response.text if response else "No description available."

        # Generate Tamil poem based on the description
        response_poem = model.generate_content(f"Based on this image description: {description}, write a short poem in Tamil.")
        tamil_poem = response_poem.text if response_poem else "கவிதை உருவாக்கப்படவில்லை."

        return tamil_poem

    except Exception as e:
        return f"⚠️ Error: {str(e)}"

# Define Gradio Interface
interface = gr.Interface(
    fn=image_to_tamil_poem,
    inputs=gr.Image(type="pil"),
    outputs=gr.Textbox(label="Generated Tamil Poem"),
    title="AI-Powered Tamil Poem Generator (Using Gemini AI)",
    description="Upload an image, and AI will generate a short Tamil poem based on it."
)

if __name__ == "__main__":
    interface.launch()