Community影像github.com

學術插圖 Image2 (Codex 橋接版)

透過本地 Codex app-server MCP 橋接產生學術級出版品質插圖。這是 `paper-illustration` 的獨立實驗性替代方案,專為想要 GPT 風格渲染器又不希望修改原技能的 Claude Code 使用者所設計。

學術插圖 Image2 (Codex 橋接版) 是什麼?

此技能實現了一個多階段的協作工作流程,由 Claude 擔任 Planner 和 Reviewer,並透過本地 Codex app-server MCP 橋接來處理最終的像素級渲染。它採用嚴格的迭代流程,包括:需求解析、佈局最佳化、風格驗證(符合 CVPR/NeurIPS 標準)、透過 `generate_start/generate_status` 進行原生圖片生成,以及嚴格的視覺審查。只有當分數達到 9/10 以上時才會接受圖片,未達標的圖片則會回到佈局步驟進行改善。此技能專為 Claude Code 設計,並使用 `codex-image2` 作為渲染後端,遵循「僅接受原生 imageGeneration 輸出」的嚴格原則,拒絕任何 Shell 或 Python 後備方案。此外,它還提供整合檢查清單、路線解析腳本(`paper_illustration_image2.py`),以及對架構圖、方法圖和概念圖等圖表類型的支援。

相容平台✓Claude Code✓Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/erlingerwu0925/Skills/tree/HEAD/collections/02-autonomous-research/ARIS/skills/paper-illustration-image2

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

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Paper Illustration Image2

在每個審查者槽位之前,請遵循可選審查者:解析調用 → .aris/reviewer.json → Claude Code 預設 (Codex MCP) 並使用 reviewer_route.py 透過標準的 helper 解析器,保留此槽位的層級、全新上下文、來源/圖片輸入和確定性關卡。 以下 Codex 範例/pins 僅適用於 backend=codex;其他路由使用其自身的首次調用/回覆協定。請儲存路由和實際回傳的身份;不可用的選擇為 REVIEW_UNAVAILABLE。根據實際的系列/完成度/範圍來分類接受度。將調用審查者/模型/努力覆蓋傳遞給子任務。生成工作者保持不變。

使用 Claude 作為規劃者/審查者 和 本地 Codex app-server MCP 橋接 作為像素渲染器,產生學術級出版品質的論文圖表。

核心設計哲學

┌──────────────────────────────────────────────────────────────────────────┐
│                    多階段迭代工作流程                                    │
├──────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│   使用者請求                                                              │
│       │                                                                  │
│       ▼                                                                  │
│   ┌─────────────┐                                                        │
│   │   Claude    │ ◄─── 步驟 1: 解析請求,建立初始提示                     │
│   │  (規劃者)   │      - 提取元件、標籤和資料流向                        │
│   │             │      - 撰寫一份論文就緒的圖表簡報                      │
│   └──────┬──────┘                                                        │
│          │                                                               │
│          ▼                                                               │
│   ┌─────────────┐                                                        │
│   │Claude/Codex │ ◄─── 步驟 2: 最佳化佈局描述                            │
│   │   佈局      │      - 精煉元件定位                                    │
│   │   審查      │      - 最佳化間距和分組                                │
│   └──────┬──────┘                                                        │
│          │                                                               │
│          ▼                                                               │
│   ┌─────────────┐                                                        │
│   │Claude/Codex │ ◄─── 步驟 3: CVPR/NeurIPS 風格驗證                    │
│   │   風格      │      - 檢查色板、箭頭和標籤標準                        │
│   │   檢查      │      - 在渲染前精煉提示                                │
│   └──────┬──────┘                                                        │
│          │                                                               │
│          ▼                                                               │
│   ┌─────────────┐                                                        │
│   │ codex-image2│ ◄─── 步驟 4: 透過橋接進行原生圖片生成                   │
│   │ MCP 橋接    │      - 呼叫 generate_start / generate_status           │
│   │ + app-server│      - 僅接受原生 imageGeneration 輸出                 │
│   └──────┬──────┘                                                        │
│          │                                                               │
│          ▼                                                               │
│   ┌─────────────┐                                                        │
│   │   Claude    │ ◄─── 步驟 5: 嚴格視覺審查 + 評分 (1-10)               │
│   │  (審查者)   │      - 驗證邏輯、標籤、箭頭和美觀性                    │
│   │   嚴格!    │      - 拒絕不清楚或非論文就緒的圖表                    │
│   └──────┬──────┘                                                        │
│          │                                                               │
│          ▼                                                               │
│   分數 ≥ 9? ──是──► 接受並輸出                                          │
│          │                                                               │
│          否                                                              │
│          │                                                               │
│          ▼                                                               │
│   產生具體的改善回饋 ──► 迴圈回到步驟 2                                 │
│                                                                          │
└──────────────────────────────────────────────────────────────────────────┘

常數

  • RENDERER = codex-image2 — 透過本地 Codex app-server 暴露的原生圖片生成橋接

  • OPTIONAL_TEXT_CRITIC = mcp__codex__codex — 可選的純文字第二意見,用於佈局/風格檢查

  • MAX_ITERATIONS = 5 — 最大精煉輪數

  • TARGET_SCORE = 9 — 最低可接受分數 (1-10)

  • OUTPUT_DIR = figures/ai_generated/ — 輸出目錄

  • TEXT_LANGUAGE = English — 預設圖表文字語言,除非使用者要求其他語言

  • NATIVE_IMAGE_REQUIREMENT = strict — 僅接受原生 imageGeneration 輸出;拒絕 Shell/Python 後備方案

  • IMAGE2_HELPER — 標準名稱 paper_illustration_image2.py,根據 shared-references/integration-contract.md §2 解析 (策略 A — 技能本地關卡)。階段 3.2 (架構 C) 將標準實作移至 skills/paper-illustration-image2/scripts/; tools/paper_illustration_image2.py 保留為 os.execv shim,以便舊的解析器層級無需重新安裝即可繼續運作。透過以下方式解析:

    # 第 0 層:自包含 (CC 1.0+ 暴露 $CLAUDE_SKILL_DIR)。
    IMAGE2_HELPER=""
    if [ -n "${CLAUDE_SKILL_DIR:-}" ] && [ -f "$CLAUDE_SKILL_DIR/scripts/paper_illustration_image2.py" ]; then
      IMAGE2_HELPER="$CLAUDE_SKILL_DIR/scripts/paper_illustration_image2.py"
    fi
    # 第 1-4 層:透過 tools/paper_illustration_image2.py 的 shim 進行共享執行時鏈。
    if [ -z "$IMAGE2_HELPER" ]; then
      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
      IMAGE2_HELPER=".aris/tools/paper_illustration_image2.py"
      [ -f "$IMAGE2_HELPER" ] || IMAGE2_HELPER="tools/paper_illustration_image2.py"
      [ -f "$IMAGE2_HELPER" ] || { [ -n "${ARIS_REPO:-}" ] && IMAGE2_HELPER="$ARIS_REPO/tools/paper_illustration_image2.py"; }
      [ -f "$IMAGE2_HELPER" ] || IMAGE2_HELPER=""
    fi
    [ -z "$IMAGE2_HELPER" ] && {
      echo "錯誤:無法解析 paper_illustration_image2.py (第 0 層: $CLAUDE_SKILL_DIR/scripts/;第 1-4 層: .aris/tools/, tools/, $ARIS_REPO/tools/, $ARIS_REPO/tools/ 透過 ~/.aris/repo)。" >&2
      echo "       /paper-illustration-image2 無法繼續。修正:重新執行 bash tools/install_aris.sh 或 smart_update.sh (重新整理 ~/.aris/repo),或從 $ARIS_REPO/skills/paper-illustration-image2/scripts/ 複製標準腳本。" >&2
      exit 1
    }
    

    以下所有調用都使用 python3 "$IMAGE2_HELPER" <子命令>。

CVPR/ICLR/NeurIPS 頂級會議風格指南

「CVPR 風格」的實際含義:

視覺標準

  • 乾淨的白色背景 — 除非極其微妙,否則避免裝飾性圖案或漸層
  • 無襯線字體 — Arial、Helvetica 或類似乾淨的論文友善字體
  • 柔和色板 — 使用 3-5 種協調色,而非彩虹色
  • 友善印刷 — 在灰階下仍須可讀
  • 專業邊框 — 細到中等、乾淨且一致

佈局標準

  • 水平流向 — 對於流程圖,預設為從左到右
  • 清晰分組 — 使用間距或微妙的分組框來區分相關模組
  • 一致大小 — 相似元件應具有相似大小
  • 平衡留白 — 避免過於擁擠或過於稀疏的佈局

箭頭標準 (最重要)

  • 粗線條 — 箭頭在論文縮放後仍須可見
  • 清晰箭頭頭 — 大而明確的箭頭頭
  • 深色 — 偏好黑色或深灰色箭頭
  • 有標籤 — 重要的箭頭應顯示流通過什麼
  • 無交叉 — 盡可能重新組織圖表以避免交叉
  • 正確方向 — 箭頭必須指向正確的目標

視覺吸引力 (學術專業風格)

目標:既不保守也不花哨,找到平衡點

✅ 應有

  • 微妙漸層 — 可接受同色系的溫和漸層
  • 圓角 — 現代但不誇張的圓角區塊
  • 清晰層次 — 主要模組較大,次要模組較小
  • 一致色彩編碼 — 模組類型與顏色之間穩定的對應關係
  • 專業排版 — 整潔的標籤,具有可讀的大小層次

❌ 避免

  • ❌ 彩虹漸層
  • ❌ 沉重陰影
  • ❌ 3D 透視效果
  • ❌ 發光效果
  • ❌ 裝飾性剪貼畫圖示
  • ❌ 感覺華而不實而非論文就緒的投影片風格

✓ 理想效果

  • 看起來有設計感、專業且立即可讀
  • 具有適度的視覺吸引力而不淪為裝飾
  • 感覺適合頂級會議論文圖表
  • 經得起 PDF 縮放和灰階列印

應避免事項 (關鍵)

  • ❌ 細如髮絲的箭頭
  • ❌ 無標籤或模糊的連線
  • ❌ 微小無法閱讀的文字
  • ❌ 無層次的扁平、無聊方塊湯
  • ❌ 過度裝飾的圖表,帶有陰影/發光/圖示
  • ❌ 錯誤的箭頭方向

範圍

圖表類型品質範例
架構圖優秀模型架構、流程圖、編碼器-解碼器
方法圖優秀概念圖、演算法流程圖
概念圖良好比較圖、分類樹

不適用於: 統計圖 (使用 /paper-figure)、確定性向量拓撲圖 (偏好 /figure-spec)、逼真場景

工作流程:必須執行所有步驟

步驟 0:預飛行檢查

在開始前明確渲染此檢查清單:

📋 paper-illustration-image2 整合檢查清單:
   [ ] 1. python3 "$IMAGE2_HELPER" preflight --workspace <cwd> --json-out figures/ai_generated/preflight.json
   [ ] 2. 在渲染前確認 preflight JSON 顯示 ok=true
   [ ] 3. 透過 mcp__codex-image2__generate_start + generate_status 渲染
   [ ] 4. 透過 python3 "$IMAGE2_HELPER" finalize --workspace <cwd> --best-image <best_png> 完成
   [ ] 5. 透過 python3 "$IMAGE2_HELPER" verify --workspace <cwd> --json-out figures/ai_generated/verify.json 驗證產出物
  1. 如果 figures/ai_generated/ 不存在則建立。
  2. 確認請求適合像素插圖:
    • 架構圖
    • 概念方法圖
    • 工作流程圖
  3. 偏好使用英文圖表文字,除非使用者要求其他語言。
  4. 執行:
python3 "$IMAGE2_HELPER" preflight \
  --workspace <cwd> \
  --json-out figures/ai_generated/preflight.json
  1. 如果 preflight 不是 ok=true,則停止並清楚說明。

步驟 1:Claude 規劃圖表

將使用者請求轉換為完全指定的圖片提示。包括:

  • 圖表類型
  • 確切模組/階段
  • 流向
  • 要顯示的標籤
  • 資料流箭頭
  • 風格限制
  • 應避免事項

當輸入是方法筆記或論文章節時,在撰寫最終圖片提示前,先將其總結為一個乾淨的圖表簡報。

步驟 2:佈局最佳化

此步驟為必填。在渲染前,將提示精煉為具體的佈局計畫:

  • 確切的模組順序
  • 間距和分組
  • 相對模組顯著性
  • 箭頭路徑和可能的衝突點

如果選定的文字審查路由可用,您可以在此要求其提供簡短的佈局批評第二意見,但執行者仍應在沒有外部批評者的情況下完成此步驟。

使用 Codex 佈局批評來找出:

  • 遺漏的元件
  • 令人困惑的佈局
  • 薄弱的流程層次
  • 可能的箭頭方向模糊或混亂

步驟 3:風格驗證

此步驟也為必填。在渲染前,根據預期的論文風格檢查提示:

  • 色板是否克制且學術
  • 箭頭是否粗、深色且可讀
  • 標籤是否簡潔且為英文 (除非要求其他語言)
  • 圖表在灰階/列印下是否清晰可讀
  • 是否沒有發光、彩虹漸層或投影片裝飾混入

如果選定的文字審查路由可用,您可以要求其提供簡短的純文字風格審計,但不要因此阻塞。

步驟 4:透過橋接生成

呼叫 mcp__codex-image2__generate_start,參數如下:

  • prompt:最終的圖片提示
  • cwd:當前專案根目錄或論文工作區
  • outputPath:figures/ai_generated/figure_v1.png
  • system:簡短的指示,例如 學術論文圖表。偏好清晰的英文標籤。
  • timeoutSeconds:受限的渲染超時時間,例如 180

然後使用受限等待呼叫 mcp__codex-image2__generate_status,直到:

  • done=true 且 status=completed,或
  • done=true 且 status=failed

如果生成失敗,直接報告橋接錯誤,而不是隱藏它。

步驟 5:審查輸出

使用嚴格的檢查清單審查生成的圖片:

  • 所有主要元件是否存在?
  • 邏輯流程是否明顯?
  • 標籤是否可讀?
  • 箭頭方向是否正確?
  • 圖表看起來是否像論文就緒,而不是投影片?

從 1 到 10 評分。

步驟 6:必要時精煉

如果分數 < 9,撰寫有針對性的精煉提示:

  • 具體說明哪些部分有問題
  • 要求特定的修正,而不是要求「改善」

步驟 7:完成

當圖片可接受時:

  1. 將最佳圖片移動或複製到標準輸出目錄:
    python3 "$IMAGE2_HELPER" finalize --workspace <cwd> --best-image <best_png>
    
  2. 可選地執行驗證工具:
    python3 "$IMAGE2_HELPER" verify --workspace <cwd> --json-out figures/ai_generated/verify.json
    

提示工程

Good Prompt Structure

[Figure type] showing [subject/task].

Components:
- [Component 1]: [description]
- [Component 2]: [description]
...

Flow: [direction and order]

Style: [style constraints]

Labels: [what to label]

Avoid: [what to avoid]

Example

Architecture diagram showing a multi-modal fusion pipeline for sentiment analysis.

Components:
- Text encoder: BERT-based transformer processing input text
- Image encoder: ResNet-50 processing visual input
- Fusion module: Cross-attention mechanism combining modalities
- Classifier: MLP producing final sentiment prediction

Flow: Text → Text Encoder → Fusion; Image → Image Encoder → Fusion → Classifier

Style: CVPR-style with clean white background, thin borders, sans-serif font, subtle blue/gray palette

Labels: Label each encoder output as 'Text Features' / 'Visual Features'; label fusion output as 'Fused Representation'

Avoid: Rainbow colors, heavy shadows, 3D effects, cluttered layout

Prompt要素

ElementPurposeRecommendation
Figure type設定期望明確提及 'architecture diagram', 'method figure', 或 'conceptual diagram'
Subject內容錨點保持簡短但完整;3-10 個單詞
Components完整覆蓋為每個元件命名並提供 1 句描述;對齊到輸出
Flow連通性用箭頭表示;明確顯示分叉和合併
Style視覺遵守總是指定 'CVPR-style' 或 'top-tier conference' 加上 1-2 個具體限制
Labels文字輸出指定確切的標籤文字;偏好英文
Avoid退步防護包含 2-3 項此類圖表常犯的錯誤

常見陷阱

  1. 跳過預飛行 — 導致失敗時浪費時間;始終執行檢查
  2. 模糊的提示 — 「一張好圖片」不夠;始終提供完整的結構化提示
  3. 接受低分 — 始終以 9 分為目標;卡在迭代中的圖表通常只需要 1-2 次明確修正
  4. 忽略 Style step — 如果跳過步驟 3,生成的圖片很可能需要裝飾性調整
  5. 混淆 Layout 和 Style — 佈局 = 組件排列;風格 = 視覺呈現。兩者都是必要的
  6. 薄弱的審查 — 審查時做具體觀察(「第三個方塊上的標籤被截斷」vs「看起來不錯」)
  7. 向使用者暴露內部錯誤 — 如果橋接失敗,呈現乾淨的錯誤給使用者:
    ❌ 圖片生成失敗:{簡潔的橋接錯誤}
    

使用者在最終目錄中看到的內容

figures/ai_generated/
├── figure_v1.png      # 第一次嘗試 (如果多次迭代)
├── figure_v2.png      # 第二次嘗試 (如果多次迭代)
├── figure_final.png   # 最終接受版本
├── preflight.json     # 執行的預飛行檢查
└── verify.json        # 可選的後續驗證

錯誤處理:中斷與恢復

如果橋接在生成期間失敗 (generate_status 返回 failed):

  1. 記錄錯誤上下文:
    python3 "$IMAGE2_HELPER" log-error --error-context "{錯誤訊息}"
    
  2. 提示使用者檢查 Codex app-server 日誌或重新啟動橋接。
  3. 您可以在修正後使用相同的提示和 --resume-from <序號> 重試,但不要自動重試。
  4. 記錄最終結果:resume 成功,resume 失敗,或放棄。

如果預飛行失敗:

  • 提供具體的修正建議 (例如「缺少依賴項:ffmpeg。執行:brew install ffmpeg」)。
  • 請勿繼續到步驟 1。

安全性考量

  • 生成的圖片是純資料檔案;無執行風險。
  • 提示可能包含引用資訊;審查提示使用者可能會看到什麼。
  • 當提示包含未發表作品的摘要時,請謹慎將輸出顯示給其他人。

常見問題

Q: 為什麼有兩個 paper-illustration 技能? A: 原始技能使用 mcp__codex__generate 從提示生成嵌入式圖片。此替代方案 (Image2) 使用 mcp__codex-image2 橋接到本機 app-server。輸出通常是不同的——此版本提供更像 GPT 的風格——但如果執行偶爾失敗,它需要更多依賴項和調試。

Q: 我可以混合兩者嗎? A: 同一會話中不建議。選擇一個並堅持使用它。

Q: 我需要什麼依賴項? A: 工作目錄中的本地 Codex 安裝 + 執行的 app-server,外加 paper_illustration_image2.py helper (透過 IMAGE2_HELPER 解析器自動解析)。

Q: 這適用於非架構圖嗎? A: 概念圖是好的,比較圖還可以,統計圖 (條形圖/折線圖) 不好。使用 /paper-figure 處理那些。

Q: 為什麼我的圖片包含奇怪的文字? A: 模型有時會將提示文字渲染為圖片中的視覺文字。強調提示中的「清晰英文標籤」並在審查階段拒絕那些圖片通常可以緩解此問題。

Q: 如何使文字變大? A: 在提示中包含「使用大而粗體的標籤,在 A4/Letter 縮放時可讀」。文字大小一致性是模型依賴問題。

Individual skills in this repo

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

相關技能