Spaces:
Running
Running
import google.generativeai as genai | |
from typing import Union, IO | |
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: Union[np.ndarray, str, IO]) -> str: | |
""" | |
Writes a short story about the uploaded image. | |
Args: | |
image: The image being uploaded. It can be a NumPy array, file path, or file-like object. | |
Returns: | |
A short story about the uploaded image. | |
""" | |
# load model | |
model = genai.GenerativeModel("gemini-1.5-flash") | |
# check image file and convert to a PIL image | |
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") | |
if __name__ == "__main__": | |
app.launch(mcp_server = True) |