| name | gemini-api |
| description | Google Gemini 3 Pro Image API reference. Covers text-to-image, editing, reference images, aspect ratios, and error handling. |
plugin: nanobanana
updated: 2026-01-20
Gemini Image API Reference
Quick Start
export GEMINI_API_KEY="your-key"
uv run python main.py output.png "A minimal 3D cube"
API Key Setup
- Visit: https://makersuite.google.com/app/apikey
- Create new API key
- Set environment variable:
export GEMINI_API_KEY="your-api-key"
Supported Models
| Model | Resolution | Best For |
|---|
| gemini-3-pro-image-preview | Up to 4K | High quality |
| gemini-2.5-flash-image | Up to 1K | Quick iterations |
Aspect Ratios
| Ratio | Use Case |
|---|
| 1:1 | Social media, icons |
| 3:4 | Portrait photos |
| 4:3 | Traditional photos |
| 4:5 | Instagram portrait |
| 5:4 | Landscape photos |
| 9:16 | Mobile, stories |
| 16:9 | YouTube, desktop |
| 21:9 | Cinematic, ultrawide |
CLI Flags
| Flag | Description | Example |
|---|
--style | Apply style template | --style styles/glass.md |
--edit | Edit existing image | --edit photo.jpg |
--ref | Reference image | --ref style.png |
--aspect | Aspect ratio | --aspect 16:9 |
--model | Model ID | --model gemini-2.5-flash-image |
--max-retries | Retry attempts | --max-retries 5 |
Error Codes
| Code | Meaning | Recovery |
|---|
SUCCESS | Operation completed | N/A |
API_KEY_MISSING | GEMINI_API_KEY not set | Export the variable |
FILE_NOT_FOUND | Referenced file missing | Check path |
INVALID_INPUT | Bad prompt or argument | Fix input |
RATE_LIMITED | Too many requests | Wait, uses auto-retry |
NETWORK_ERROR | Connection failed | Check network, auto-retry |
API_ERROR | Gemini API error | Check logs |
CONTENT_POLICY | Blocked prompt | Adjust content |
TIMEOUT | Request timed out | Retry |
PARTIAL_FAILURE | Some batch items failed | Check individual results |
Retry Behavior
The script automatically retries on transient errors:
- Rate limits (429)
- Server errors (502, 503)
- Connection timeouts
- Network errors
Retry uses exponential backoff: 1s, 2s, 4s, 8s, etc.
Maximum retries configurable with --max-retries (default: 3)
Best Practices
- Prompts: Be specific about style, lighting, composition
- Styles: Use markdown templates for consistent results
- References: Provide visual examples for style matching
- Batch: Generate variations to pick the best
- Iteration: Edit results to refine
- Retries: Increase
--max-retries for unreliable connections