Image2Network / app.py
Ifeanyi's picture
Update app.py
73829b1 verified
raw
history blame
1.82 kB
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
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.
"""
api_key = os.getenv("GEMINI_API_KEY")
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 black female superhero with braided hair flying over a over an active volcano with a fiery red sky",
"A black jazz musician playing his saxophone and surrounded by colorful musical notes."])
# launch application
if __name__ == "__main__":
app.launch(mcp_server = True)