Ifeanyi's picture
Update app.py
844a3aa verified
from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO
import gradio as gr
import base64
import os
api_key = os.getenv("GEMINI_API_KEY")
def generate_image(prompt):
"""
Transforms text into an image.
Args:
prompt: A natural language instruction that is used to generate an image.
Returns:
An image.
"""
client = genai.Client(api_key=api_key)
prompt = tuple(prompt)
response = client.models.generate_content(
model="gemini-2.0-flash-preview-image-generation",
contents=prompt,
config=types
.GenerateContentConfig(
response_modalities=['TEXT', 'IMAGE']
)
)
for part in response.candidates[0].content.parts:
if part.text is not None:
pass
elif part.inline_data is not None:
image = Image.open(BytesIO((part.inline_data.data)))
# image.save('gemini-native-image.png')
# display(image)
return image
# build gradio interface
app = gr.Interface(fn = generate_image,
inputs = gr.Text(label="Prompt",placeholder="Type your prompt here. . ."),
outputs = gr.Image(label="Generated Image"),
title="Gemini Image Generator",
examples=["A 3D rendering of a little black girl wearing a colorful dress and smiling broadly at the camera",
"Disney and Pixar-style playful bunny skipping about in a garden full of carrots and lettuce",
"A strong black female superhero with braided hair flying in the bright blue sky",
"A jazz musician playing his saxophone and surrounded by colorful musical notes."])
# launch application
if __name__ == "__main__":
app.launch(mcp_server = True)