Community影像github.com

zhanglt/document-illustrator

基於 AI 智能分析的文档配图生成工具。無需依賴特定格式,自動理解內容並生成專業配圖。

document-illustrator 是什麼?

Document Illustrator 是一款由 AI 驅動的智慧型文件配圖工具,專為開發者與 AI 代理(如 Codex、Claude Code)設計。它能自動理解任何格式的文件內容(包含 Markdown、純文字、PDF 等),無需手動設定或依賴特定文件結構。此工具支援三種視覺風格:漸層玻璃卡片、票據風格與向量插畫,並提供 16:9 橫向與 3:4 直向兩種比例選擇。其運作流程分為五個步驟:Codex 讀取並理解文件、詢問用戶配置(比例、封面圖、數量)、AI 歸納內容並展示給用戶確認、呼叫 Python 腳本生成圖片,最後將圖檔儲存至文件目錄下的 images/ 資料夾。技術上,它使用 Gemini 或 Nebula 後端 API 進行圖像生成,支援批次處理與自訂解析度(至 4K)。此工具強調內容完整性、邏輯清晰度與用戶控制權,確保每張配圖都能準確傳達文件的關鍵主題。

相容平台✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/zhanglt/Document-illustrator-skill/tree/HEAD

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

在你喜歡的 AI 中提問

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

說明文件

Document Illustrator Skill

基於 AI 智能分析的文檔配圖生成工具。無需依賴特定格式,自動理解內容並生成專業配圖。

🎯 核心特點

  • ✨ AI 智能歸納:自動理解文檔內容,智能提取核心主題
  • 🎨 格式無關:支援任何格式的文檔(Markdown、純文字、PDF 等)
  • 📐 靈活比例:支援 16:9(橫屏)和 3:4(豎屏)
  • 🖼️ 封面圖可選:可生成概括全文的封面圖
  • 🎭 三種風格:漸層玻璃卡片、票據風格、向量插畫

🚀 使用方法

直接告訴 Codex

幫我為這個文檔生成配圖:/path/to/document.md

或者:

我想為這篇文章生成一些配圖

📝 完整工作流程

第 1 步:Codex 讀取和理解文檔

當你請求生成配圖時,Codex 會:

  1. 使用 Read 工具讀取完整文檔
  2. AI 分析理解文檔內容和結構
  3. 識別核心主題和要點

無需擔心文檔格式:

  • ✅ 標準 Markdown(##、###)
  • ✅ 分隔線格式(======、------)
  • ✅ 純文字段落
  • ✅ 任何其他格式

第 2 步:配置選項(3 個問題)

Codex 會詢問你的偏好:

問題 1:圖片比例

請選擇圖片比例:
1. 16:9 (橫屏) - 適合簡報、投影片、橫屏展示
2. 3:4 (豎屏) - 適合社交媒體、手機查看、海報

請選擇 (1/2):

問題 2:封面圖

是否生成封面圖?
封面圖將概括文檔的所有核心資訊,作為系列配圖的引導。

1. 是 - 生成封面圖 + 內容配圖
2. 否 - 僅生成內容配圖

請選擇 (1/2):

問題 3:內容配圖數量

期望生成多少張內容配圖?
建議範圍:3-10 張
根據文檔內容,推薦生成 6 張

請輸入數字:

第 3 步:Codex 歸納內容並展示

根據你指定的數量,Codex 會智能歸納文檔,然後展示給你確認:

📋 內容歸納完成

📄 封面圖內容:(如果選擇生成)
"AI 程式工具概念演化:從 Rules 到 Skills"
- 核心概念:靜態上下文 vs 動態上下文
- 演化路徑:Rules → Commands → MCP → Modes → Skills
- 最佳實踐:簡化為兩個核心工具

📚 內容配圖(共 6 張):

1. Rules 的誕生與演化
   包含:早期模型幻覺問題、rules 檔案的作用、靜態上下文概念

2. Commands 和工作流打包
   包含:固定工作流的出現、slash command、團隊分享

3. MCP Servers 帶來動態能力
   包含:第三方工具整合、OAuth 認證、上下文膨脹問題

4. Modes 和 Subagents 的登場
   包含:人設提示詞、系統提示詞修改、可靠性設計、Hooks 確定性

5. Skills 統一動態上下文
   包含:Skills 概念、動態載入、程式工具最佳化

6. 最佳實踐與未來展望
   包含:Rules 使用建議、Skills 探索、核心理念總結

✓ 所有內容已覆蓋,無遺漏

確認開始生成配圖嗎?(Y/N)

關鍵保證:

  • ✅ 內容完整:所有重要資訊都會被歸入某張圖片
  • ✅ 邏輯清晰:按照內容的自然邏輯分段
  • ✅ 用戶可控:展示歸納結果,等待用戶確認

第 4 步:生成配圖

確認後,Codex 呼叫 Python 腳本生成圖片:

🖼️  開始生成配圖...

正在生成封面圖...
  ✓ 已儲存: /path/to/document/images/cover.png

正在生成第 1/6 張...
  標題: Rules 的誕生與演化
  ✓ 已儲存: /path/to/document/images/illustration-01.png

正在生成第 2/6 張...
  標題: Commands 和工作流打包
  ✓ 已儲存: /path/to/document/images/illustration-02.png

...

✨ 完成!共生成 7 張配圖(1 張封面 + 6 張內容)

第 5 步:輸出結果

輸出位置:文檔所在目錄下的 images/ 資料夾

/path/to/your/document/
└── images/
    ├── cover.png              # 封面圖(如果選擇生成)
    ├── illustration-01.png    # 第 1 張內容配圖
    ├── illustration-02.png    # 第 2 張內容配圖
    ├── illustration-03.png
    ├── illustration-04.png
    ├── illustration-05.png
    └── illustration-06.png

🎨 三種風格說明

1. 漸層玻璃卡片風格 (gradient-glass)

特點:

  • Apple Keynote 風格的極簡主義
  • 玻璃擬態(Glassmorphism)設計
  • 深邃虛空黑或純淨陶瓷白基底
  • 流動的極光漸層色
  • 3D 玻璃物體和發光效果

適用場景:

  • 科技產品介紹
  • 數據分析報告
  • 未來趨勢展望
  • 產品功能示範

2. 票據風格 (ticket)

特點:

  • 數字極簡票券設計
  • 高度對比的黑白配色
  • 類似登機牌、門票的結構
  • 精確的幾何分區
  • 中英混排,多向文字佈局

適用場景:

  • 資訊圖表
  • 統計數據展示
  • 時間線和流程圖
  • 要點總結

3. 向量插畫風格 (vector-illustration)

特點:

  • 扁平化向量插畫
  • 統一粗細的黑色輪廓線
  • 復古柔和的配色
  • 幾何化處理
  • 橫向全景式構圖

適用場景:

  • 故事敘述
  • 概念解釋
  • 教育內容
  • 品牌宣傳

💡 使用範例

範例 1:完整流程

使用者: 幫我為 ~/blog/ai-tools.md 生成配圖,用票據風格

Codex: 好的,讓我先讀取這個文件...
        [讀取文件,分析內容]

        偵測到文檔長度約 3000 字,內容涉及 AI 工具演化。

        請選擇圖片比例:
        1. 16:9 (橫屏)
        2. 3:4 (豎屏)

使用者: 1

Codex: 是否生成封面圖?
        1. 是
        2. 否

使用者: 是

Codex: 期望生成多少張內容配圖?
        建議範圍:3-10 張
        根據文檔內容,推薦生成 5 張

使用者: 5

Codex: [展示歸納的 5 個主題]
        確認開始生成配圖嗎?

使用者: Y

Codex: [呼叫 Python 腳本生成 6 張圖片]
        ✨ 完成!配圖已儲存到 ~/blog/images/

範例 2:純文字文檔

使用者: 為這個純文字筆記生成配圖

Codex: [讀取筆記,即使沒有任何標題也能理解內容]
        [智能識別 3 個核心主題]
        [詢問配置、展示歸納、生成配圖]

範例 3:自訂數量

使用者: 我想要 8 張圖,豎屏的,不要封面

Codex: 好的,16:9 豎屏,不生成封面,8 張內容配圖。
        [將文檔歸納為 8 個主題]
        [展示歸納結果,使用者確認後生成]

🔧 技術細節

圖片規格

以下比例和解析度適用於 Gemini;Nebula image2-4k 僅支援 16:9、3840x2160。 使用者選擇 Nebula 時,直接使用 4K;如使用者要求 2K 或豎圖,先說明限制並確定受支援方案。

比例解析度適用場景
16:92560x1440 (2K)簡報、橫屏展示
3:41920x2560社交媒體、垂直瀏覽

可選 4K 解析度:

  • 16:9 → 3840x2160
  • 3:4 → 2880x3840

API 呼叫

  • Gemini 模型:gemini-3-pro-image-preview(腳本當前預設值)
  • Nebula 模型:gpt-image-2-4k,使用 image2-4k 分組令牌
  • 成本:每張圖片 = 1 次 API 呼叫
  • 速度:取決於後端負載;Nebula 4K 請求超時為 1800 秒

後端選擇與 Nebula 呼叫

nanobanana 分組

使用者指定 nanobanana 時,兩個腳本均傳入 --provider nanobanana。 統一 .env 中使用專用 NEBULA_NANOBANANA_API_KEY(nanobanana 分組令牌), 不復用 image2-4k 的密鑰。NEBULA_NANOBANANA_MODEL 預設為 gemini-3.1-flash-image, 可指定令牌支援的其他模型;ILLUSTRATOR_IMAGE_PROVIDER=nanobanana 可設為預設。 單圖、批量均支援 16:9、3:4;可請求 1K、2K、4K,預設 2K, 具體支援值及實際像素由所選模型決定,不套用 image2-4k 的 4K 橫圖限制。

統一 .env 使用 ILLUSTRATOR_SINGLE_RATIO 設定單圖預設比例, ILLUSTRATOR_BATCH_RATIO 設定批量預設比例,ILLUSTRATOR_RESOLUTION 設定預設請求解析度。 兩個入口均支援 --ratio、--resolution 覆蓋配置。不配置或值為空時,比例為 16:9, 解析度使用後端預設值(Gemini/nanobanana 為 2K,image2-4k 為 4K)。 這些設定適用於所有後端;與後端限制衝突時,請求前報錯,須調整配置或明確覆蓋。

python -X utf8 scripts/generate_single_image.py --provider nanobanana --title "主題" --content "配圖內容" --style-file styles/ticket.md --ratio 3:4 --resolution 2K --output output/banana.png
python -X utf8 scripts/generate_illustrations.py article.md --provider nanobanana --style ticket --level h2 --resolution 2K

呼叫 Gemini 原生 POST /v1beta/models/{model}:generateContent,從 inlineData 解碼並驗證圖片,不持久化完整 Base64 回應。不需要 Google SDK。 當前接入僅支援文字生圖;超時後不自動重發收費任務。 詳見 README.md 和 官方介面說明。

原有 image2-4k 分組

兩個腳本支援 --provider gemini|nebula。不指定時讀取 ILLUSTRATOR_IMAGE_PROVIDER, 未配置時使用 Gemini。使用者明確指定 Nebula 時,傳入 --provider nebula;不要改用其他服務。 在統一路徑 ~/.agents/skills/document-illustrator/.env 配置 NEBULA_API_KEY,或使用同名環境變數;令牌須屬於 image2-4k 分組。 Nebula 無需 Gemini 密鑰或 Google SDK,仍需要 Pillow 和 python-dotenv。

python -X utf8 scripts/generate_single_image.py --provider nebula --title "主題" --content "已確認的配圖內容" --style-file styles/ticket.md --output output/image-01.png --resolution 4K
python -X utf8 scripts/generate_illustrations.py article.md --provider nebula --style ticket --level h2 --resolution 4K

腳本呼叫 POST https://img-api.apinebula.ai/v1/images/generations,固定使用 gpt-image-2-4k、3840x2160、quality=high、response_format=url。 優先讀取 URL,相容 Base64;儲存前驗證真實像素,將服務端 JPEG 轉為本地副檔名對應的格式。 介面回應儲存為 <圖片檔案名>.response.json,下載失敗時先復用其中的暫存連結恢復下載。 POST 超時後任務狀態可能未知,不自動重發;先確認服務端狀態,避免重複計費。 HTTP 403 或連線尚未建立時會嘗試 http://127.0.0.1:81 代理。 當前僅接入文字生圖;參考圖編輯未實作。

完整配置說明與離線測試命令見 README.md, 介面參數以 官方文件 為依據。

環境需求

必需:

pip install google-genai pillow python-dotenv

API 密鑰:

  • Codex、Claude 等所有 Agent 統一讀取 ~/.agents/skills/document-illustrator/.env
  • Windows 對應 %USERPROFILE%\.agents\skills\document-illustrator\.env
  • 僅載入該檔案,其值覆蓋同名環境變數;檔案不存在時僅使用現有環境變數,不搜尋其他位置
  • Gemini 使用 GEMINI_API_KEY,Nebula 使用 NEBULA_API_KEY
  • nanobanana 分組使用 NEBULA_NANOBANANA_API_KEY;模型配置見上方分組說明

📊 內容歸納原則

Claude 歸納內容時遵循以下原則:

1. 完整性優先

  • ✅ 所有重要資訊都會被包含
  • ✅ 不會遺漏關鍵概念
  • ✅ 保留原文的核心觀點

2. 邏輯清晰

  • 按照內容的自然邏輯分段
  • 相關內容歸為一組
  • 保持敘述的連貫性

3. 平衡分配

  • 每張圖片包含相似的資訊量
  • 避免某張過於擁擠或空洞
  • 根據內容重要性調整

4. 用戶可控

  • 展示歸納結果給用戶確認
  • 用戶可以要求調整
  • 確認後才開始生成

🐛 故障排除

問題 1:API 密鑰錯誤

錯誤資訊:

Error: Invalid API key

解決方案:

  1. 檢查 .env 中對應後端的 GEMINI_API_KEY 或 NEBULA_API_KEY;Nebula 同時檢查令牌分組
  2. 確保 API 密鑰有效且未過期
  3. 獲取新密鑰:https://makersuite.google.com/app/apikey

問題 2:內容歸納不理想

問題:歸納的主題不符合預期

解決方案:

  1. 在歸納展示階段,告訴 Codex 你的期望
  2. Codex 會重新歸納並調整
  3. 確認滿意後再開始生成

問題 3:圖片生成失敗

可能原因:

  • 網路連線問題
  • API 配額用盡
  • 內容過長超過限制

解決方案:

  1. 檢查網路連線
  2. 檢查 API 配額
  3. 嘗試增加圖片數量(分散內容)

💰 成本估算

圖片數量API 呼叫次數預估成本
無封面 + 3 張3 次低
有封面 + 5 張6 次中
有封面 + 10 張11 次較高

建議:

  • 短文檔(<1000字):3-5 張
  • 中等文檔(1000-3000字):5-7 張
  • 長文檔(>3000字):8-10 張

📚 最佳實踐

1. 合理選擇圖片數量

太少:

  • 每張圖片資訊量過大
  • 不容易理解和記憶

太多:

  • 內容分散
  • 增加成本和生成時間

推薦:

  • 根據文檔長度選擇
  • 每張圖片涵蓋 1-2 個核心觀點

2. 根據用途選擇比例

16:9 適合:

  • PPT 演示
  • 網站橫幅
  • 影片封面
  • 部落格配圖(桌面端)

3:4 適合:

  • 社交媒體(Instagram、小紅書)
  • 行動端文章
  • 海報設計
  • 垂直影片

3. 封面圖的使用

建議生成封面圖的場景:

  • 系列文章(作為統一引導)
  • 社交分享(作為預覽圖)
  • 文檔首頁(概括全文)

可以不生成的場景:

  • 僅內部使用
  • 圖片數量已足夠
  • 希望降低成本

4. 風格選擇建議

技術文檔 → 漸層玻璃卡片風格 數據報告 → 票據風格 教程故事 → 向量插畫風格 產品介紹 → 漸層玻璃卡片風格

🔄 工作原理

傳統方式(已廢棄)

[程式碼] 讀取文檔 → 識別 ## ### 標題 → 機械切分
       ↓
    依賴特定格式
    容易遺漏內容
    不夠智能

新方式(當前實現)

[Claude] 讀取文檔 → AI 理解內容 → 智能歸納主題
         ↓
      格式無關
      內容完整
      用戶可控

核心區別:

  • ❌ 舊方式:依賴程式碼解析,只能處理標準格式
  • ✅ 新方式:AI 理解內容,任何格式都能處理

🎯 與其他工具的對比

功能Document Illustrator傳統 PPT 工具AI 圖片生成器
理解文檔內容✅ AI 智能理解❌ 需要手動❌ 需要手動輸入
格式依賴✅ 格式無關❌ 依賴特定格式✅ 無依賴
內容完整性✅ 自動驗證⚠️ 手動確保❌ 無法保證
批量生成✅ 一次生成多張❌ 逐張製作⚠️ 需要多次輸入
風格一致性✅ 自動保持⚠️ 手動調整⚠️ 需要重複提示詞

📞 獲取幫助

如有問題或建議:

  1. 直接在 Codex 中詢問
  2. 檢查 Skill 目錄:~/.agents/skills/document-illustrator

讓 AI 幫你理解和歸納內容,生成專業配圖! ✨

相關技能