---
name: gemini-image-gen
description: Image generation with Google Gemini API. Models: gemini-2.5-flash-image (fast) or gemini-3-pro-image-preview (quality). For social media graphics, marketing, infographics.
---

# Gemini Image Generation

Generate images directly from Claude Code CLI using Google's Gemini API.

## Setup

**API Key:** https://aistudio.google.com/apikey
**Environment Variable:** `GOOGLE_AI_API_KEY`
**Install:** `pip install google-genai pillow python-dotenv`

## Basic Usage

```python
import os
from google import genai

client = genai.Client(api_key=os.environ.get("GOOGLE_AI_API_KEY"))

response = client.models.generate_content(
    model="gemini-2.5-flash-image",  # Fast
    # model="gemini-3-pro-image-preview",  # Quality
    contents=["Your image prompt here"]
)

# Extract and save image from response
for part in response.candidates[0].content.parts:
    if hasattr(part, 'inline_data') and part.inline_data:
        with open("output.png", "wb") as f:
            f.write(part.inline_data.data)
```

## Models

| Model | Speed | Quality | Use Case |
|-------|-------|---------|----------|
| `gemini-2.5-flash-image` | Fast (~5s) | Good | Drafts, iterations |
| `gemini-3-pro-image-preview` | Slower (~15s) | Excellent | Final assets |

## Use Cases

- Social media graphics
- Marketing materials
- Infographics
- Reddit/Discord banners
- Presentation slides
- Manufacturing dashboards (OEE gauges, SPC charts)

## Advanced: Manufacturing Dashboard Example

```python
prompt = """
Create a professional manufacturing OEE dashboard showing:
- Large OEE gauge at 85% (green zone)
- Three smaller KPI cards below:
  - Availability: 92%
  - Performance: 88%
  - Quality: 99.2%
- Dark theme with blue/cyan accents
- Modern, executive-style design
"""

response = client.models.generate_content(
    model="gemini-3-pro-image-preview",
    contents=[prompt]
)
```

## Image Compression for PPTX

When embedding in PowerPoint, compress images to avoid silent failures:

```python
from PIL import Image
import io

def compress_image(data: bytes, max_size_kb: int = 200) -> bytes:
    img = Image.open(io.BytesIO(data))
    img = img.convert('RGB')
    img.thumbnail((1280, 720))

    buffer = io.BytesIO()
    img.save(buffer, format='JPEG', quality=75, optimize=True)
    return buffer.getvalue()
```

## Real-World Usage

At [fabrikIQ.com](https://app.fabrikiq.com), Gemini Image Generation powers:
- AI-generated OEE dashboard visuals in PPTX exports
- Hero images for executive manufacturing reports
- Marketing materials for LinkedIn posts
