What it does
PaperBanana is an agentic framework for generating publication-quality academic diagrams and statistical plots from text descriptions. It implements a multi-agent pipeline with iterative refinement, powered by vision language models and image generation from OpenAI, Azure OpenAI, or Google Gemini. The system optimizes input descriptions, generates candidate diagrams, evaluates them, and refines iteratively until quality criteria are met. Supports single diagram generation, batch processing from YAML/JSON manifests, PDF-based methodology context, and continuation of prior runs with user feedback. Access is provided via CLI (paperbanana generate, paperbanana plot-batch), Python API, or an MCP server with Claude Code integration.
Who it's for
Researchers and AI scientists authoring papers who need to convert methodology descriptions and experimental results into publication-ready visualizations without manual design. Teams using Claude or other IDEs who want to integrate automated diagram generation into their research workflow.
Common use cases
- Generate architecture and methodology diagrams from natural-language descriptions in paper drafts.
- Create statistical plots and comparative charts from data specifications or CSV files.
- Batch-generate multiple diagrams in one run from a manifest, then refine iteratively.
- Integrate diagram generation into Claude Code workflows via the MCP server and
/generate-diagramskill. - Use PaperBanana Studio (local Gradio web UI) for interactive iteration and evaluation before publication.
Setup pitfalls
- Requires an API key from OpenAI, Azure OpenAI, or Google Gemini (
.envconfiguration). Gemini offers a free tier viapaperbanana setupwizard. - Requires Python 3.10+. Install via
pip install paperbananaor from source withpip install -e ".[dev,openai,google]". - Azure OpenAI and Foundry require
OPENAI_BASE_URLenvironment variable; standard OpenAI usesOPENAI_API_KEY. - Reads and writes files to disk extensively (all outputs, intermediate iterations, metadata); ensure write permissions in your working and output directories.