-
Notifications
You must be signed in to change notification settings - Fork 216
OpenRouter Provider
OpenRouter lets you use any of 100+ models through a single API. This is useful when you want to use Claude, GPT-4, Llama, or other models instead of (or alongside) Google Gemini.
- Model variety: Access Claude, GPT-4, Llama, Mistral, and many other models
- Single API key: One key works for all models
- Pay-per-use: No subscriptions, just pay for what you use
- Fallback options: If one model is down, switch to another
Sign up at openrouter.ai and create an API key at openrouter.ai/keys.
Add to your .env file:
OPENROUTER_API_KEY=sk-or-v1-your-key-hereOr export directly:
export OPENROUTER_API_KEY=sk-or-v1-your-key-hereVLM (planning, styling, critique):
paperbanana generate \
--input method.txt \
--caption "Overview of our framework" \
--vlm-provider openrouter \
--vlm-model google/gemini-3-flash-previewImage generation:
paperbanana generate \
--input method.txt \
--caption "Overview of our framework" \
--vlm-provider openrouter \
--vlm-model anthropic/claude-3.5-sonnet \
--image-provider openrouter_imagen \
--image-model google/gemini-3-pro-image-previewCreate a config file (configs/openrouter.yaml):
vlm:
provider: openrouter
model: anthropic/claude-3.5-sonnet
image:
provider: openrouter_imagen
model: google/gemini-3-pro-image-preview
pipeline:
refinement_iterations: 3Then:
paperbanana generate \
--input method.txt \
--caption "Overview" \
--config configs/openrouter.yamlfrom paperbanana import PaperBananaPipeline, GenerationInput, DiagramType
from paperbanana.core.config import Settings
settings = Settings(
vlm_provider="openrouter",
vlm_model="anthropic/claude-3.5-sonnet",
image_provider="openrouter_imagen",
image_model="google/gemini-3-pro-image-preview",
)
pipeline = PaperBananaPipeline(settings=settings)
result = await pipeline.generate(
GenerationInput(
source_context="Our framework consists of...",
communicative_intent="Overview of the proposed method.",
diagram_type=DiagramType.METHODOLOGY,
)
)| Model | ID | Notes |
|---|---|---|
| Claude 3.5 Sonnet | anthropic/claude-3.5-sonnet |
Excellent for planning and critique |
| Claude 3 Opus | anthropic/claude-3-opus |
Most capable, higher cost |
| GPT-4o | openai/gpt-4o |
Strong all-around |
| GPT-4 Turbo | openai/gpt-4-turbo |
Fast, capable |
| Gemini 3 Flash | google/gemini-3-flash-preview |
Fast and cheap |
| Llama 3.1 70B | meta-llama/llama-3.1-70b-instruct |
Open-source, good value |
| Model | ID | Notes |
|---|---|---|
| Gemini 3 Pro Image | google/gemini-3-pro-image-preview |
Best for diagrams |
Note: Not all models support image generation. Currently, Gemini 3 Pro via OpenRouter is the recommended choice for image generation.
For Claude Code:
{
"mcpServers": {
"paperbanana": {
"command": "uvx",
"args": ["--from", "paperbanana[mcp]", "paperbanana-mcp"],
"env": {
"OPENROUTER_API_KEY": "sk-or-v1-your-key-here"
}
}
}
}You can use different providers for VLM and image generation:
# Claude for planning/critique, Gemini for image generation
paperbanana generate \
--input method.txt \
--caption "Overview" \
--vlm-provider openrouter \
--vlm-model anthropic/claude-3.5-sonnet \
--image-provider google_imagen \
--image-model gemini-3-pro-image-previewThis requires both OPENROUTER_API_KEY and GOOGLE_API_KEY to be set.
OpenRouter charges per token/request. Approximate costs for generating one diagram (3 iterations):
| Setup | Approximate Cost |
|---|---|
| Gemini Flash (VLM) + Gemini Pro (Image) | ~$0.02-0.05 |
| Claude Sonnet (VLM) + Gemini Pro (Image) | ~$0.10-0.20 |
| GPT-4o (VLM) + Gemini Pro (Image) | ~$0.15-0.30 |
Check openrouter.ai/models for current pricing.
"API key not valid": Verify your key at openrouter.ai/keys. Make sure you're using the full key including the sk-or-v1- prefix.
"Model not found": Check the exact model ID at openrouter.ai/models. Model IDs are case-sensitive.
"No image data in response": Not all models support image generation. Use google/gemini-3-pro-image-preview for the image provider.
Rate limits: OpenRouter has per-minute limits based on your account tier. Add delays between batch generations if needed.