$npx -y skills add PlutoLei/paperbanana-skill --skill paperbananaUse when user needs academic diagrams, methodology figures, statistical plots, or presentation slides from text descriptions or data files. Also use for evaluating generated figures against references.
| 1 | # PaperBanana - Academic Illustration Generator |
| 2 | |
| 3 | Multi-agent pipeline (Retriever → Planner → Stylist → Visualizer → Critic) for publication-quality academic diagrams, statistical plots, and presentation slides. |
| 4 | |
| 5 | **API key:** Set provider keys in PaperBanana project's `.env` file. |
| 6 | **Timeout:** 300000 (5 min) for all generation commands. |
| 7 | |
| 8 | --- |
| 9 | |
| 10 | ## Commands |
| 11 | |
| 12 | All commands run from project root: `cd <paperbanana_dir> && python -m paperbanana.cli <cmd>` |
| 13 | |
| 14 | ### Command Selection Decision Tree |
| 15 | |
| 16 | Route user requests to the right subcommand **before** looking up parameters: |
| 17 | |
| 18 | | User intent | Signal words | Subcommand | |
| 19 | |-------------|--------------|------------| |
| 20 | | 方法论/架构/流程图 from text or PDF | "method figure", "架构图", "流程图", "methodology", "pipeline diagram", "论文配图" | `generate` | |
| 21 | | Statistical plot from data file | "plot", "curve", "bar chart", "scatter", "heatmap", has CSV/JSON | `plot` | |
| 22 | | Single presentation slide | "slide", "一张幻灯片", "封面图", single prompt file | `slide` | |
| 23 | | Batch slide generation | "all slides", "批量生成", "N 张幻灯片", `prompts/` directory | `slide-batch` | |
| 24 | | Compare generated vs human reference | "evaluate", "对比", "与参考图对比" | `evaluate` | |
| 25 | | Manage reference dataset | "download dataset", "清缓存" | `data` | |
| 26 | | First-time provider config | "setup", "配置 API key" | `setup` | |
| 27 | |
| 28 | **Ambiguous input**: If user provides just a description with no subcommand signal, default to `generate` (see Argument Parsing table for details). |
| 29 | |
| 30 | **Out-of-scope**: Pure code generation (matplotlib/seaborn script) is NOT paperbanana's job — those go to `matplotlib` / `scientific-visualization` skills. Paperbanana is for AI-driven image generation + critique loops. |
| 31 | |
| 32 | > **Note (upstream sync pending):** Upstream `paperbanana` CLI also adds subcommands (`plot-batch` #123, `sweep` #118) not yet reflected in this table. See the [llmsresearch/paperbanana CHANGELOG](https://github.com/llmsresearch/paperbanana) for the authoritative CLI surface. |
| 33 | |
| 34 | ### `generate` — Methodology Diagrams |
| 35 | |
| 36 | ```bash |
| 37 | python -m paperbanana.cli generate --input '<file>' --caption '<caption>' --optimize --verbose |
| 38 | ``` |
| 39 | |
| 40 | When user provides inline text (no file): write to temp file, use as `--input`. |
| 41 | |
| 42 | | Parameter | Default | Description | |
| 43 | |-----------|---------|-------------| |
| 44 | | `--input` / `-i` | — | Path to methodology text file or PDF (`.pdf` requires `pip install 'paperbanana'`) | |
| 45 | | `--caption` / `-c` | — | Figure caption / communicative intent | |
| 46 | | `--output` / `-o` | auto | Output image path | |
| 47 | | `--vlm-provider` | `gemini` | VLM provider: `gemini`, `anthropic`, `openai`, `bedrock`, `openrouter`, `ollama`, `claude_code`, `litellm` | |
| 48 | | `--vlm-model` | auto | VLM model name | |
| 49 | | `--image-provider` | auto | Image gen provider: `google_imagen`, `openai`, `bedrock`, `openrouter` | |
| 50 | | `--image-model` | auto | Image gen model name | |
| 51 | | `--iterations` / `-n` | `3` | Max critic rounds | |
| 52 | | `--auto` | off | Loop until critic is satisfied (safety cap via `--max-iterations`) | |
| 53 | | `--max-iterations` | `30` | Safety cap for `--auto` mode | |
| 54 | | `--optimize` | off | Preprocess inputs (parallel enrichment + caption sharpening) | |
| 55 | | `--continue` | off | Continue from the latest run | |
| 56 | | `--continue-run` | — | Continue from a specific run ID | |
| 57 | | `--feedback` | — | User feedback for the critic when continuing a run | |
| 58 | | `--aspect-ratio` / `-ar` | auto | Target aspect ratio: `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `9:16`, `16:9`, `21:9` | |
| 59 | | `--format` / `-f` | `png` | Output format: `png`, `jpeg`, `webp` | |
| 60 | | `--dry-run` | off | Validate inputs without making API calls | |
| 61 | | `--exemplar-retrieval` | off | Enable external exemplar retrieval before planning | |
| 62 | | `--seed` | — | Random seed for reproducible generation | |
| 63 | | `--verbose` / `-v` | off | Show detailed agent progress and timing | |
| 64 | | `--auto-download-data` | off | Auto-download expanded reference set (~257MB) on first run | |
| 65 | | `--venue` | — | Academic venue style: `neurips`, `icml`, `acl`, `ieee`, `custom` | |
| 66 | | `--pages` | — | Page range for PDF input (e.g., `3-5`) | |
| 67 | | `--config` | — | Path to config YAML file | |
| 68 | |
| 69 | > **Venue styles:** `--venue neurips` applies NeurIPS-specific methodology and plot style guides from `data/guidelines/`. Each venue has distinct color palettes, layout conventions, and typography expectations. |
| 70 | |
| 71 | > **PDF input:** `--input paper.pdf --pages 3-5` extracts text from the specified pages as source context. |
| 72 | |
| 73 | > **Exemplar advanced flags:** `--exemplar-retrieval` enables retrieval; see `generate --help` for additional config flags (`--exemplar-endpoint`, `--exemplar-mode`, `--exemplar-top-k`, `--exemplar-timeout`, `--exemplar-retries`). |
| 74 | |
| 75 | ### `plot` — Statisti |