从论文(PDF 或纯文本)自动生成学术插图的完整工具链。
工具功能调用方式draw.py论文可视化主流程python draw.py [args]pdf_to_text.pyPDF → 纯文本提取python pdf_to_text.py [args]
将 PDF 文件转换为纯文本,供 draw.py 使用。
bash
# 基本用法
python {baseDir}/scripts/pdf_to_text.py "/path/to/paper.pdf"
# 限制页数(取前 20 页)
python {baseDir}/scripts/pdf_to_text.py "/path/to/paper.pdf" --max-pages 20
# 输出到文件
python {baseDir}/scripts/pdf_to_text.py "/path/to/paper.pdf" -o extracted.txt
支持的后端(自动选择): pdfminer.six → PyMuPDF → pdfplumber → PyPDF2 → pypdf
注意:推荐先安装
pip install pdfminer.six,提取质量最高。
bash
# 方式 A:从 PDF 直接生成(自动提取 + 画图)
python {baseDir}/scripts/draw.py \
--pdf-path "/path/to/paper.pdf" \
--user-requirement "Transformer 架构图" \
--api-url "https://api.example.com/generate" \
--api-key "sk-your-key"
# 方式 B:扫描模式(自动识别所有可图化内容)
python {baseDir}/scripts/draw.py \
--pdf-path "/path/to/paper.pdf" \
--mode scan
# 方式 C:批量生成(选定的图)
python {baseDir}/scripts/draw.py \
--pdf-path "/path/to/paper.pdf" \
--mode scan \
--scan-results "<base64-encoded-results>" \
--selected-ids "1,3,5" \
--api-url "..." --api-key "..."
# 方式 D:直接传入论文文本
python {baseDir}/scripts/draw.py \
--paper-content "论文纯文本内容..." \
--user-requirement "画一个算法流程图" \
--style cvpr
参数说明默认值--pdf-pathPDF 文件路径(会自动提取文本)—--paper-content直接传入论文纯文本—--user-requirement用户对图片的描述—--mode``single(单图) 或 scan(全篇扫描)single``--api-url生图 API 地址环境变量--api-key生图 API 密钥环境变量--style学术风格: cvpr neurips icml nature``cvpr``--skip-check跳过自校核False--section-ref对应论文章节(如 Section 3.1)—
生图 API 凭证按以下优先级自动解析, 任意一个有值即可:
优先级API Key 变量API URL 变量1 (推荐)BANANA2_API_KEY``BANANA2_API_URL2ACEDATA_API_KEY``PAPER_DIAGRAM_API_URL3PAPER_DIAGRAM_API_KEY—
未设置 URL 时默认
https://api.acedata.cloud/nano-banana/images
推荐在 ~/.openclaw/openclaw.json 中配置:
json
{
"skills": {
"paper-diagram": {
"env": {
"BANANA2_API_URL": "https://api.acedata.cloud/nano-banana/images",
"BANANA2_API_KEY": "your-api-key-here",
"PAPER_DIAGRAM_LLM_URL": "https://your-llm-api/v1/chat/completions",
"PAPER_DIAGRAM_LLM_KEY": "your-llm-key-here",
"PAPER_DIAGRAM_LLM_MODEL": "gpt-4"
}
}
}
}
类型说明生成方式teaser动机/概念对比图Mermaid → AI 生图architecture系统架构图Mermaid → AI 生图flowchart算法流程图Mermaid → AI 生图environment实验环境图Mermaid → AI 生图results结果对比图Matplotlib 代码绘图(精确数据)
预设场景主色调cvprCV/CG 会议蓝色系neuripsML/NLP 会议紫橙系icmlML 会议蓝红绿系natureScience/Nature 期刊柔蓝柔绿
outputs/ 目录(或设置的输出目录)生成图前会自动对比拓扑描述与原文:
text
论文 PDF
│
▼
pdf_to_text.py ──→ 纯文本
│ │
▼ ▼
draw.py (scan) draw.py (single)
│ │
▼ ▼
扫描报告 指定描述 → 生成单张图
│
▼
用户选择 (e.g. 1,3,5)
│
▼
draw.py (batch) ──→ 多张图 + LaTeX 图注
bash
pip install pdfminer.six requests
可选(提升 PDF 提取质量):
bash
pip install pymupdf pdfplumber pypdf