Image Generation Agent (Streaming)
Stream image generation from a Gemini agent with response_modalities.
Code
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-3.1-flash-image",
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, "image") and chunk.image: # type: ignore
image_bytes = chunk.image.content # type: ignore
if image_bytes:
image = Image.open(BytesIO(image_bytes))
image.show()
# Save the image to a file
# image.save("generated_image.png")Usage
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateSet your API key
export GOOGLE_API_KEY=xxxInstall dependencies
uv pip install -U google-genai pillow agnoRun Agent
python image_generation_stream.py