Spaces:
Sleeping
Sleeping
| 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 = Image.fromarray(image) | |
| else: | |
| img = 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) | |