Code

cookbook/models/google/gemini/image_generation_stream.py
from io import BytesIO

from agno.agent import Agent, RunOutput  # noqa
from agno.models.google import Gemini
from PIL import Image

# No system message should be provided
agent = Agent(
    model=Gemini(
        id="gemini-2.0-flash-exp-image-generation",
        response_modalities=["Text", "Image"],
    )
)

# Print the response in the terminal
response = agent.run("Make me an image of a cat in a tree.", stream=True)

for chunk in response:
    if hasattr(chunk, "images") and chunk.images:  # type: ignore
        images = chunk.images  # type: ignore
        if images and isinstance(images, list):
            for image_response in images:
                image_bytes = image_response.content
                if image_bytes:
                    image = Image.open(BytesIO(image_bytes))
                    image.show()
                    # Save the image to a file
                    # image.save("generated_image.png")

Usage

1

Create a virtual environment

Open the Terminal and create a python virtual environment.
python3 -m venv .venv
source .venv/bin/activate
2

Set your API key

export GOOGLE_API_KEY=xxx
3

Install libraries

pip install -U google-genai pillow agno
4

Run Agent

python cookbook/models/google/gemini/image_generation_stream.py