diagram-gen
Academic Diagram Generation
Generate NeurIPS-quality methodology diagrams or statistical plots from paper text.
Available Tools
| Tool | Purpose |
|---|---|
optimize_input |
Pre-process methodology text and caption (optional, improves quality) |
plan_diagram |
Full planning pipeline: retrieve references → visual ICL → plan → style |
search_references |
Browse reference diagrams independently (lightweight alternative to plan_diagram) |
generate_image |
Render a diagram or plot from a description |
critique_image |
Evaluate and get revision feedback on a generated image |
Workflow
Follow these steps in order:
Step 0 — Optimize Inputs (optional)
Call optimize_input with the raw methodology text and figure caption. This:
- Structures the methodology into diagram-ready format (components, flows, groupings)
- Sharpens a vague caption into a precise visual specification
Recommended for long or complex methodology text, or vague captions. Use the optimized outputs as inputs to plan_diagram.
Step 1 — Plan
Call plan_diagram with the methodology text, figure caption, and diagram type. This single tool call:
- Retrieves the most relevant reference examples from the curated set using a specialized retriever prompt
- Loads their images and passes them to the VLM for visual in-context learning
- Generates a comprehensive textual description using a dedicated planner prompt
- Refines the description with NeurIPS-quality aesthetic guidelines via a stylist prompt
- Recommends an aspect ratio based on content structure
You receive back an optimized, publication-ready description and a recommended aspect ratio.
Do NOT attempt to write the diagram description yourself. The plan_diagram tool produces significantly better descriptions because it uses reference images and dedicated prompts.
Step 2 — Generate
Call generate_image with the description returned by plan_diagram.
- For methodology diagrams:
diagram_type="methodology"(default) - For statistical plots:
diagram_type="statistical_plot"and includeraw_data - Pass the
aspect_ratiorecommended byplan_diagram(e.g.,"16:9","4:3")
Step 3 — Critique & Refine (max 3 rounds)
Call critique_image with the generated image, the description, source text, and caption.
- If
needs_revisionistrue: use therevised_descriptionfrom the critique, then go back to Step 2. - If
needs_revisionisfalse: the image is publication-ready. Done.
Repeat at most 3 total iterations.
Aspect Ratios
Supported: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9
Guidelines:
- Wide (16:9, 21:9): Left-to-right pipelines, sequential flows, encoder-decoder architectures
- Tall (2:3, 9:16): Top-to-bottom hierarchies, deep stacks, vertical tree structures
- Square-ish (1:1, 4:3, 3:4): Balanced architectures, grid layouts, multi-panel diagrams
Example Interaction
User: "Generate a methodology diagram for this paper: [text]"
Agent steps:
1. plan_diagram(source_context=..., caption=..., diagram_type="methodology")
→ receives optimized description + recommended aspect ratio
2. generate_image(description=<optimized_description>, diagram_type="methodology", aspect_ratio="16:9")
→ receives image path
3. critique_image(image_path=..., description=..., source_context=..., caption=...)
→ if needs_revision: update description → generate_image again
4. Reply with the final image path
Important Notes
- Always call
plan_diagramfirst — it handles retrieval, planning, and styling in one step with visual in-context learning from real reference diagrams. - Never use hex codes, pixel dimensions, or CSS values in descriptions — they render as garbled text in generated images.
- Never fall back to matplotlib or LaTeX for methodology diagrams — always use the image generation model via
generate_image. - For statistical plots,
generate_imagewill automatically generate and execute matplotlib code. - Pass
user_feedbacktocritique_imageif the user has specific comments about the generated image.