CommunityImagegithub.com

erlingerwu0925/paper-illustration

Generate publication-quality AI illustrations for academic papers using Gemini image generation. Creates architecture diagrams, method illustrations with Claude-supervised iterative refinement loop. Use when user says "生成图表", "画架构图", "AI绘图", "paper illustration", "generate diagram", or needs visual figures for papers.

What is paper-illustration?

This skill enables an AI agent (such as Claude) to generate high-quality, publication-ready illustrations for academic papers, particularly in AI and computer vision. It employs a multi-stage, iterative workflow with Claude acting as a strict supervisor and reviewer, leveraging Gemini models for layout optimization, style checking, and image rendering. The process includes planning by Claude, layout optimization and style verification with Gemini (`gemini-3-pro`), final rendering via the `gemini-3-pro-image-preview` model (codename: Paperbanana), and a strict visual review by Claude with a scoring system (1-10, target >9). If the score is below 9, specific improvement feedback is generated and the loop repeats up to 5 iterations. The skill adheres to CVPR/ICLR/NeurIPS top-tier conference style guidelines, ensuring clean, professional diagrams with proper arrows, fonts, and color palettes. It supports generating architecture diagrams, method illustrations, and conceptual figures, and optionally allows structural style reference to a target paper using the `--style-ref` argument.

Works with✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/erlingerwu0925/Skills/tree/HEAD/collections/02-autonomous-research/ARIS/skills/paper-illustration

Installed? Explore more Image skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Paper Illustration: Multi-Stage Claude-Supervised Figure Generation

Generate publication-quality illustrations using a multi-stage workflow with Claude as the STRICT supervisor/reviewer.

Core Design Philosophy

┌──────────────────────────────────────────────────────────────────────────┐
│                    MULTI-STAGE ITERATIVE WORKFLOW                        │
├──────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│   User Request                                                           │
│       │                                                                  │
│       ▼                                                                  │
│   ┌─────────────┐                                                        │
│   │   Claude    │ ◄─── Step 1: Parse request, create initial prompt     │
│   │  (Planner)  │                                                        │
│   └──────┬──────┘                                                        │
│          │                                                               │
│          ▼                                                               │
│   ┌─────────────┐                                                        │
│   │   Gemini    │ ◄─── Step 2: Optimize layout description               │
│   │ (gemini-3-pro)│      - Refine component positioning                    │
│   │  Layout     │      - Optimize spacing and grouping                   │
│   └──────┬──────┘                                                        │
│          │                                                               │
│          ▼                                                               │
│   ┌─────────────┐                                                        │
│   │   Gemini    │ ◄─── Step 3: CVPR/NeurIPS style verification          │
│   │ (gemini-3-pro)│      - Check color palette compliance                  │
│   │  Style      │      - Verify arrow and font standards                 │
│   └──────┬──────┘                                                        │
│          │                                                               │
│          ▼                                                               │
│   ┌─────────────┐                                                        │
│   │ Paperbanana │ ◄─── Step 4: Render final image                       │
│   │ (gemini-3-  │      - High-quality image generation                   │
│   │ pro-image)  │      - Internal codename: Nano Banana Pro              │
│   └──────┬──────┘                                                        │
│          │                                                               │
│          ▼                                                               │
│   ┌─────────────┐                                                        │
│   │   Claude    │ ◄─── Step 5: STRICT visual review + SCORE (1-10)      │
│   │  (Reviewer) │      - Verify EVERY arrow direction                    │
│   │   STRICT!   │      - Verify EVERY block content                      │
│   └──────┬──────┘      - Verify aesthetics & visual appeal               │
│          │                                                               │
│          ▼                                                               │
│   Score ≥ 9? ──YES──► Accept & Output                                    │
│          │                                                               │
│          NO                                                              │
│          │                                                               │
│          ▼                                                               │
│   Generate SPECIFIC improvement feedback ──► Loop back to Step 2        │
│                                                                          │
└──────────────────────────────────────────────────────────────────────────┘

Constants

  • IMAGE_MODEL = gemini-3-pro-image-preview — Paperbanana (Nano Banana Pro) for image rendering
  • REASONING_MODEL = gemini-3-pro-preview — Gemini for layout optimization and style checking
  • MAX_ITERATIONS = 5 — Maximum refinement rounds
  • TARGET_SCORE = 9 — Minimum acceptable score (1-10) — RAISED FOR QUALITY
  • OUTPUT_DIR = figures/ai_generated/ — Output directory
  • API_KEY_ENV = GEMINI_API_KEY — Environment variable

Optional: Style reference (— style-ref: <source>, opt-in)

Lets the user steer structural figure conventions (caption length, panel-count distribution, figure-to-table ratio in the parent paper) toward a reference paper. Default OFF — when the user does not pass — style-ref, do nothing differently from before.

Only when — style-ref: <source> appears in $ARGUMENTS, run the helper FIRST, before generating prompts:

# Resolve $STYLE_HELPER via the canonical strict-safe chain (see
# shared-references/integration-contract.md §2). Policy A — gate:
# unresolved helper means --style-ref cannot be satisfied, so abort.
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then
    ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true
fi
if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
    ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
fi
STYLE_HELPER=".aris/tools/extract_paper_style.py"
[ -f "$STYLE_HELPER" ] || STYLE_HELPER="tools/extract_paper_style.py"
[ -f "$STYLE_HELPER" ] || { [ -n "${ARIS_REPO:-}" ] && STYLE_HELPER="$ARIS_REPO/tools/extract_paper_style.py"; }
[ -f "$STYLE_HELPER" ] || {
  echo "ERROR: extract_paper_style.py not resolved at .aris/tools/, tools/, \$ARIS_REPO/tools/, or via ~/.aris/repo." >&2
  echo "       Fix: rerun bash tools/install_aris.sh or smart_update.sh (refreshes ~/.aris/repo), export ARIS_REPO, or copy the helper to tools/." >&2
  echo "       --style-ref cannot be satisfied; aborting." >&2
  exit 1
}
STYLE_STATUS=0
CACHE=$(python3 "$STYLE_HELPER" --source "<source>") || STYLE_STATUS=$?
case "$STYLE_STATUS" in
  0) ;;                                       # use $CACHE/style_profile.md as structural guidance
  2) echo "warning: style-ref skipped (missing optional dep)" >&2 ;;
  3) echo "error: --style-ref source failed; aborting illustration" >&2 ; exit 1 ;;
  *) echo "error: helper failed unexpectedly; aborting illustration" >&2 ; exit 1 ;;
esac

Sources accepted: local TeX dir / file, local PDF, arXiv id, http(s) URL. Overleaf URLs/IDs are rejected — clone via /overleaf-sync setup <id> first and pass the local clone path.

Strict rules (full contract in tools/extract_paper_style.py docstring):

  • Use style_profile.md to align caption length and figure density with the reference paper. The CVPR/ICLR/NeurIPS visual standards above still take precedence — --style-ref only refines length-and-density tendencies, never image content.
  • Never copy figure content, color palettes, or specific design elements from anything reachable through the cache. The visual design comes from the user's prompt, not the reference.
  • Never pass — style-ref (or the cache contents) to the Claude vision-checker / Gemini reasoning-checker sub-agents when they score the generated image — the image must be judged on its own merits.

CVPR/ICLR/NeurIPS Top-Tier Conference Style Guide

What "CVPR Style" Actually Means:

Visual Standards

  • Clean white background — No decorative patterns or gradients (unless subtle)
  • Sans-serif fonts — Arial, Helvetica, or Computer Modern; minimum 14pt
  • Subtle color palette — Not rainbow colors; use 3-5 coordinated colors
  • Print-friendly — Must be readable in grayscale (many reviewers print papers)
  • Professional borders — Thin (2-3px), solid colors, not flashy

Layout Standards

  • Horizontal flow — Left-to-right is the standard for pipelines
  • Clear grouping — Use subtle background boxes to group related modules
  • Consistent sizing — Similar components should have similar sizes
  • Balanced whitespace — Not cramped, not sparse

Arrow Standards (MOST CRITICAL)

  • Thick strokes — 4-6px minimum (thin arrows disappear when printed)
  • Clear arrowheads — Large, filled triangular heads
  • Dark colors — Black or dark gray (#333333); avoid colored arrows
  • Labeled — Every arrow should indicate what data flows through it
  • No crossings — Reorganize layout to avoid arrow crossings
  • CORRECT DIRECTION — Arrows must point to the RIGHT target!

Visual Appeal (Professional Academic Style)

Goal: Balanced — neither conservative nor flashy

✅ Visual elements to include:

  • Subtle gradient fills — Elegant gradients within the same color family (light to dark), not flashy multi-color
  • Rounded corners — Rounded rectangles (6-10px radius), modern but not exaggerated
  • Clear visual hierarchy — Differentiate layers through size and color depth
  • Consistent color coding — Unified color scheme (3-4 main colors)
  • Internal structure — Show sub-components within larger modules (e.g., layer structure inside an Encoder)
  • Professional typography — Clear labels, appropriate font size hierarchy

✅ Suggested color palette (academic professional):

  • Inputs: Soft green (#10B981 / #34D399)
  • Encoders: Professional blue (#2563EB / #3B82F6)
  • Fusion: Elegant purple (#7C3AED / #8B5CF6)
  • Outputs: Warm orange (#EA580C / #F97316)
  • Arrows: Black or dark gray (#333333 / #1F2937)
  • Background: Pure white (#FFFFFF), no patterns

❌ Excessive decorations to avoid:

  • ❌ Rainbow color schemes
  • ❌ Heavy drop shadows
  • ❌ 3D effects / perspective
  • ❌ Excessive gradients (multi-color flashy)
  • ❌ Clip art / cartoon icons
  • ❌ Decorative patterns in background
  • ❌ Glowing effects
  • ❌ Too many small icons

✓ Ideal visual effect:

  • Looks professional and clear at first glance
  • Has moderate visual appeal without being distracting
  • Aligns with CVPR/NeurIPS paper aesthetic standards
  • Print-friendly (clearly recognizable in grayscale)
  • Looks like a carefully designed academic diagram, not a PowerPoint template

What to AVOID (CRITICAL)

  • ❌ Rainbow color schemes (too many colors)
  • ❌ Thin, hairline arrows (arrows must be THICK)
  • ❌ Unlabeled connections
  • ❌ Plain boring rectangles (add some visual interest)
  • ❌ Over-decorated with shadows/glows/icons (too flashy)
  • ❌ Small text that's unreadable when printed
  • ❌ WRONG arrow directions — This is UNACCEPTABLE!

Scope

Figure TypeQualityExamples
Architecture diagramsExcellentModel architecture, pipeline, encoder-decoder
Method illustrationsExcellentConceptual diagrams, algorithm flowcharts
Conceptual figuresGoodComparison diagrams, taxonomy trees

Not for: Statistical plots (use /paper-figure), photo-realistic images

Workflow: MUST EXECUTE ALL STEPS

Step 0: Pre-flight Check

# Check API key
if [ -z "$GEMINI_API_KEY" ]; then
    echo "ERROR: GEMINI_API_KEY not set"
    echo "Get your key from: https://aistudio.google.com/app/apikey"
    echo "Set it: export GEMINI_API_KEY='your-key'"
    exit 1
fi

# Create output directory
mkdir -p figures/ai_generated

Step 1: Claude Plans the Figure (YOU ARE HERE)

CRITICAL: Claude must first analyze the user's request and create a detailed prompt.

Parse the input: $ARGUMENTS

Claude's task:

  1. Understand what figure the user wants
  2. Identify all components, connections, data flow
  3. Create a detailed, structured prompt for Gemini
  4. Include style requirements AND visual appeal requirements

Prompt Template for Claude to generate:

Create a PROFESSIONAL, VISUALLY APPEALING publication-quality academic diagram following CVPR/ICLR/NeurIPS standards.

## Visual Style: Academic Professional Style
### Goal: Balanced — neither conservative nor flashy

#### DO (should have):
- **Subtle gradients** — Elegant gradients within the same color family (e.g., #2563EB → #3B82F6), not multi-color flashy
- **Rounded corners** — Rounded rectangles (6-10px), modern feel
- **Clear visual hierarchy** — Differentiate layers through size and color depth
- **Internal structure** — Show sub-components within larger modules
- **Consistent color coding** — Unified 3-4 color scheme
- **Professional polish** — Refined but not exaggerated

#### DON'T (should not have):
- ❌ Rainbow/multi-color gradients
- ❌ Heavy drop shadows
- ❌ 3D effects / perspective
- ❌ Glowing effects
- ❌ Excessive decorative icons
- ❌ Plain boring rectangles

#### Ideal effect:
Like a well-designed architecture diagram from a top conference paper — professional, clear, with moderate visual appeal

## Figure Type
[Architecture Diagram / Pipeline / Comparison / etc.]

## Components to Include (BE SPECIFIC ABOUT CONTENT)
1. [Component 1]:
   - Label: "[exact text]"
   - Sub-label: "[smaller text below]"
   - Position: [left/center/right, top/middle/bottom]
   - Style: [border color, fill, internal structure]
2. [Component 2]: ...

## Layout
- Direction: [left-to-right / top-to-bottom]
- Spacing: [tight / normal / loose]
- Grouping: [how components should be grouped]

## Connections (BE EXPLICIT ABOUT DIRECTION)
EXACT arrow specifications:
1. [Component A] → [Component B]: Arrow goes FROM A TO B, label it "[data type]"
2. [Component C] → [Component D]: Arrow goes FROM C TO D, label it "[data type]"
...
VERIFY: Each arrow must point to the CORRECT target!

## Style Requirements (CVPR/ICLR/NeurIPS Standard)

### Visual Style
- Color palette: Professional academic colors
  - Inputs: Green (#10B981)
  - Encoders: Blue (#2563EB)
  - Fusion modules: Purple (#7C3AED)
  - Outputs: Orange (#EA580C)
- Font: Sans-serif (Arial/Helvetica), minimum 14pt, bold for labels
- Background: Clean white, no patterns
- Blocks: Rounded rectangles (8-12px radius), subtle gradient fill, colored border (2-3px)
- Subtle shadows for depth effect
- Print-friendly (must work in grayscale)

### CRITICAL: Arrow & Data Flow Requirements
1. **ALL arrows must be VERY THICK** - minimum 5-6px stroke width
2. **ALL arrows must have CLEAR arrowheads** - large, visible triangular heads
3. **ALL arrows must be BLACK or DARK GRAY** - not colored
4. **Label EVERY arrow** with what data flows through it
5. **VERIFY arrow direction** - each arrow MUST point to the correct target
6. **No ambiguous connections** - every arrow should have a clear source and destination

### Logic Clarity Requirements
1. **Data flow must be immediately obvious** - viewer should understand the pipeline at a glance
...
[truncated for brevity - full prompt follows same structure]

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Related Skills