Claude Vision 重建几何:AI 学术配图生成器 FigureSpec V2 富化技术深度解析
【免费下载链接】academic-figure-generatorAI 驱动的学术论文配图生成平台。上传论文 → AI 分析内容生成 Prompt → 一键生成高质量科研配图,还有配套的skill可在主流agent中使用项目地址: https://gitcode.com/gh_mirrors/ac/academic-figure-generator
Academic Figure Generator是一个 AI 驱动的学术论文配图生成平台:上传论文 → AI 分析内容生成 Prompt → 一键生成高质量科研配图。但 AI 生成的 PNG 图片有个致命短板——看得见,却改不了。本文深度解析它的 Phase 2 核心技术:如何用 Claude Vision 把语义级的FigureSpec V1富化为带像素坐标的FigureSpec V2,最终把 AI 配图重建为可编辑的 SVG 和 draw.io 矢量文件。
痛点:AI 生成的配图,为什么需要"重建几何"
先看一张由本平台实际生成的网络架构图 👇
这样的图很美,但它是光栅图片(PNG/JPEG)。对照 phase2-requirements.md 中列出的真实场景,痛点非常具体:
| 痛点 | 场景 | 影响 |
|---|---|---|
| 无法修改文字 | Reviewer 要求修改术语、修正 typo | 必须重新生成整张图 |
| 无法微调布局 | 某个模块位置不理想 | 只能重新描述,无法局部调整 |
| 无法适配排版 | 双栏改单栏、调整 DPI | 光栅图缩放后质量下降 |
| 无法精确配色 | 需要完全匹配期刊色板 | AI 配色"接近但不精确" |
解决方案不是"把 PNG 矢量化"(那样得到的是不可编辑的描边路径),而是让 AI 把图"读懂",用结构化数据重建一遍——这就是 FigureSpec V2 富化技术要做的事。
FigureSpec V1:语义级描述学术配图的"蓝图"
在 Phase 1 中,Claude 分析论文时会同步产出一份FigureSpec V1,它以 JSONB 形式存储在prompts表的figure_spec列中(Prompt 记录结构见 prompt.py)。
V1 是语义级的——它描述"这张图应该长什么样",用的是文字而非坐标。这与 system_prompt.py 中定义的 4 层分解方法论一一对应:
| V1 层 | 内容 | 举例 |
|---|---|---|
| Layer 1 全局 | 画布比例、面板数量与排布 | "16:9,3 列网格,左到右阅读" |
| Layer 2 区域 | 每个面板的位置、内容、子元素 | "左侧 40% 区域:输入模块" |
| Layer 3 标注 | 跨区域的箭头、图例、维度标注 | "箭头:编码器 → 解码器" |
| Layer 4 样式 | 字体、线宽、语义色映射 | "primary 色用于关键模块边框" |
平台内置的 5 大类学术图类型(总体框架图、网络架构图、模块细节图、对比消融图、数据行为图)定义在 figure_types.py 中,每种类型都有默认比例、典型论文章节和配色建议。
问题在于:光靠 V1 的文字描述,渲染端(人或代码)都无法确定精确的像素位置——"左侧 40% 区域"到底是 x=100 还是 x=150?
Claude Vision 富化:从语义到像素级坐标
Phase 2 的灵感很自然:既然 AI 生成的那张 PNG 就摆在那里,让另一个 AI 看着原图,把 V1"翻译"成 V2。
完整的 V1 → V2 转换由 Claude Vision 完成,输入三样东西:
- 🖼️ 一张光栅原图(base64 PNG,让模型"亲眼看见"布局)
- 📄 FigureSpec V1 JSON(语义级描述,提供结构先验)
- ✍️ 原始生成 Prompt(补充意图)
Enrichment 系统提示词把 Claude 定义为一台"学术图形布局引擎",核心指令包括(设计见 phase2-technical-design.md 第 4 节):
- 仔细观察原图中每个模块的位置、大小、形状、颜色,分配精确的
x, y, width, height - 从 12 种几何形状中识别模块类型(rect、circle、diamond、cylinder、cloud……)
- 提取填充色/边框色,统一为
#RRGGBB - 识别所有箭头与连接线,选择正确的锚点,记录拐点
waypoints - 遵守坐标规则:原点在左上角、元素间距 ≥ 20px、连接线不穿过其他元素
如果还没生成光栅图,用户也可以直接从 Prompt 导出——此时 Claude Vision 仅基于 V1 + Prompt 富化(无图参考),流程同样成立。
图解 FigureSpec V2:一张图的结构化"基因"
富化的产物就是FigureSpec V2——一份包含精确像素坐标的几何描述。用上面那张架构图对应的 V2 片段示意:
{ "version": "2.0", "figure_type": "network_architecture", "canvas": { "width": 1600, "height": 900 }, "elements": [ { "id": "encoder_block", "type": "rounded_rect", "x": 100, "y": 200, "width": 300, "height": 400, "fill": "#E8F4FD", "stroke": "#2196F3", "label": { "text": "Encoder", "font_size": 16 } } ], "connections": [ { "id": "conn_1", "from_element": "encoder_block", "to_element": "decoder_block", "type": "arrow", "label": "Feature Maps B×512×H×W" } ] }V2 由 Pydantic Schema 严格校验(FigureSpecV2定义在设计文档 第 3 节),包含五类核心对象:
| V2 对象 | 职责 | 关键能力 |
|---|---|---|
elements | 视觉模块 | 12 种几何形状、children子元素嵌套 |
connections | 箭头/连接线 | 5 种类型(实线/虚线/双向)、锚点、拐点 |
text_blocks | 独立文字 | 标题、脚注的精确位置与字号 |
legends | 图例 | 颜色-标签对列表 |
canvas | 画布 | 宽高与背景色 |
与 V1 对照,富化完成的正是"文本 → 几何"的质变:
| V1 字段 | V2 对应 | 变化本质 |
|---|---|---|
layer1_global.panel_arrangement | 各 element 的 x/y 坐标 | 文本描述 → 坐标 |
layer2_regions[].content_description | elements[].label.text | 语义 → 具体文字 |
layer3_annotations[] | connections[] | 抽象连接 → 带锚点的具体连线 |
layer4_style.color_mapping | 各 element 的fill/stroke | 语义颜色 →#RRGGBB |
一次富化,两次"编译":SVG 与 draw.io
V2 是格式无关的中间表示——同一份 V2 可以"编译"成任意目标格式。这正是富化技术的最大收益 🎯
SVG 导出:基于svgwrite纯 Python 生成,V2 的形状类型一一映射为 SVG 标签(diamond→<polygon>、cylinder→<path>、圆角矩形→rx/ry),箭头用<marker>渲染;每个模块是独立<g>分组,文字是原生<text>元素——在 Inkscape / Illustrator 中可直接选中、改字、换色。
draw.io 导出:纯 XML 模板生成 mxGraph 格式。亮点是容器嵌套——子元素通过parent属性挂在父模块下,坐标自动转为相对坐标;移动父模块时子元素与连接线全部跟随。
整个导出是异步的:点击按钮 → 创建 Export 记录(pending)→ Celery 后台任务执行「下载原图 → 加载 V1 → 富化/复用 V2 → 校验 → 导出 → 上传存储」→ 前端轮询到 completed 后自动触发浏览器下载,单张图目标耗时 < 30 秒。
缓存策略:第二次导出零 API 成本
每次富化都要调用 Claude Vision(单次约 $0.03–0.05)。为此系统设计了V2 缓存:以prompt_id + 画布尺寸为键,同一 Prompt 第一次导出 SVG 时调用 Claude,第二次导出 draw.io 时直接复用已缓存的 V2,零 API 成本——富化做的是"几何",与目标格式无关,天然可复用。
配套的风险控制也有(见 phase2-requirements.md):坐标不准 → Pydantic 严格校验 + 边界检查;复杂图类型质量波动 → 按图类型定制 enrichment prompt;调用失败 → 标记 failed 并支持重试。
写在最后
FigureSpec V2 富化技术给 AI 配图工作流补上了关键一环:光栅图负责"好看",结构化几何负责"好用"。上传论文 → 生成配图 → 一键导出可编辑矢量文件,学术写作中"写完论文还要画图"的痛点被压缩成了三步流程。后续规划中还有 PPTX 导出、浏览器内 SVG 在线编辑与 draw.io 编辑器内嵌(见 phase2-requirements.md),值得期待。
如果不想部署完整平台,仓库还附带了独立的 AI Agent Skill,可在 Claude Code / Gemini CLI 等主流编程助手中直接生成顶会级配图提示词,说明见 SKILL.md。
【免费下载链接】academic-figure-generatorAI 驱动的学术论文配图生成平台。上传论文 → AI 分析内容生成 Prompt → 一键生成高质量科研配图,还有配套的skill可在主流agent中使用项目地址: https://gitcode.com/gh_mirrors/ac/academic-figure-generator
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考