File size: 1,126 Bytes
bef155a
3dc74fc
bef155a
 
2c89ce2
bef155a
f5b9df5
2c89ce2
bef155a
4b8b4a1
bef155a
4b8b4a1
 
bef155a
4b8b4a1
 
bef155a
4b8b4a1
 
 
 
 
 
bef155a
4b8b4a1
 
bef155a
4b8b4a1
 
 
bef155a
4b8b4a1
bef155a
4b8b4a1
 
 
 
b3717b6
 
4b8b4a1
bef155a
463ded1
bef155a
3dc74fc
4b8b4a1
bef155a
 
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
48
import google.generativeai as genai
import gradio as gr
import numpy as np
import PIL.Image
import os

api_key = os.getenv("GEMINI_API_KEY")
genai.configure(api_key = api_key)

def ImageStory(image):

    """
    Writes a short story about the uploaded image.

    Arg:
        image: The image that is being uploaded

    Returns:
        A short story about the uploaded image.
    """  
        
    # load model
    model = genai.GenerativeModel("gemini-1.5-flash")

    # check image file and convert to a Numpy array
    if isinstance(image, np.ndarray):

            img = PIL.Image.fromarray(image)
    else:
            img = PIL.Image.open(image)

    response =  model.generate_content(["write a short story about the image", img])

    return response.text


app = gr.Interface(ImageStory,
                   inputs = gr.Image(label = "Image"),
                   outputs = gr.Text(label = "Story"),
                   examples = ["rubiks cube.jpg", "giraffe.jpg", "street.jpg"],
                   title = "Image-To-Story",
                   theme = "patrickosornio/my_theme1")


app.launch(mcp_server = True)