> ## Documentation Index
> Fetch the complete documentation index at: https://agno-v2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Image Generation

> Generate an image through OpenRouter, decode the returned bytes, and display the result with Pillow.

```python image_generation.py theme={null}
from io import BytesIO

from agno.agent import Agent, RunOutput  # noqa
from agno.models.openrouter import OpenRouter
from PIL import Image

# Request both image and text modalities so OpenRouter returns generated images
agent = Agent(
    model=OpenRouter(
        id="google/gemini-2.5-flash-image",
        modalities=["image", "text"],
    )
)

run_response = agent.run("Make me an image of a cat in a tree.")

if run_response and isinstance(run_response, RunOutput) and run_response.images:
    for image_response in run_response.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")
else:
    print("No images found in run response")
```

## Run the Example

<Snippet file="create-venv-step.mdx" />

**1. Install dependencies**

```bash theme={null}
uv pip install -U agno openai pillow
```

**2. Export your OpenRouter API key**

```bash Mac/Linux theme={null}
export OPENROUTER_API_KEY="your_openrouter_api_key_here"
```

```bash Windows theme={null}
$Env:OPENROUTER_API_KEY="your_openrouter_api_key_here"
```

**3. Run the example**

Save the code above as `image_generation.py`, then run:

```bash theme={null}
python image_generation.py
```

Full source: [cookbook/90\_models/openrouter/chat/image\_generation.py](https://github.com/agno-agi/agno/blob/v3.0.4/cookbook/90_models/openrouter/chat/image_generation.py)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.