FigureWeave 是一个面向科研绘图的研究工程项目,用于将论文中的方法描述自动转化为可编辑的 SVG 科研图。
本项目受 AutoFigure 启发,但现在已经不再是原项目的简单延续或镜像版本。当前代码库更加聚焦可编辑性、可部署性和完整工作流,核心技术更新包括:
- 本地 GPU SAM3 分割
- 生图阶段与 SVG 推理阶段解耦的双 provider 路由
- 多候选端到端生成
- 在方法文本之外引入 figure caption 作为结构约束
- 以 SVG 重建为中心的
template -> optimized_template -> final流程 - 基于 CUDA 的本地后处理与去背景加速
FigureWeave 更适合以下图形:
- 方法总览图
- pipeline 图
- 系统框架图
- 模型结构图
- 可继续人工润色的论文插图草稿
它不适合替代 matplotlib、seaborn、ggplot、Origin 这类以精确数值为核心的统计绘图工具。
相较于 AutoFigure 风格的原始流程,FigureWeave 当前版本的主要技术贡献包括:
-
本地 GPU SAM3 分割阶段可以直接在本地 CUDA 环境中运行,不再只依赖远程 API,从而提升隐私性、可控性和复现实验的稳定性。
-
双 provider 路由 将图像草图生成与 SVG 理解/重建拆分为两个独立阶段,可灵活组合
Gemini -> Gemini、OpenAI -> OpenAI、Gemini -> Anthropic Claude、OpenAI -> Anthropic Claude等路线。 -
多候选生成 一次运行可以生成多个完整候选,分别保留各自的中间产物,并通过 manifest 管理候选结果与默认产出。
-
Figure Caption 条件约束 除方法文本外,系统还显式接收图注或绘图意图,从而在布局结构、阶段划分和信息重点上提供更强约束。
-
SVG-first 重建流程 系统不会把 raster 草图当作最终结果,而是显式生成可编辑 SVG 模板、可选优化模板,再进行最终组装,强调后续可编辑性。
-
CUDA 本地后处理 去背景与本地视觉后处理可使用 GPU 版 PyTorch 执行,减少 CPU-only 模式下的耗时瓶颈。
-
更稳健的回退策略 当前流程包含 no-icon fallback、占位框裁剪、provider 失败回退等机制,更适合实际批量生成论文插图草稿。
当前项目展示图使用 multimodal_medical_report 这一组结果:
- 草图:
img/case/multimodal_medical_report_draft.png - 优化后的 SVG 模板:
img/case/multimodal_medical_report_template.svg - 最终组装 SVG:
img/case/multimodal_medical_report_final.svg
这组展示图对应的含义是:
figure.png:模型生成的草图optimized_template.svg:可编辑结构模板final.svg:最终组装后的展示结果
?????? FigureWeave ????????? SVG ?????
- ?????
img/UI/UI_1.png - ??????
img/UI/UI_2.png
FigureWeave 当前主要包含五个阶段:
-
Image Draft 根据方法文本、可选 figure caption 和可选参考图生成科研风格草图。
-
Segmentation 使用本地 SAM3 或 API 后端检测图标与视觉区域,输出:
samed.pngboxlib.json
-
Asset Extraction 裁切检测区域并去除背景,生成透明素材。
-
SVG Reasoning And Reconstruction 使用多模态模型将草图重建为可编辑 SVG 模板,并可进一步优化。
-
Assembly 将素材替换回 SVG 占位结构,输出:
template.svgoptimized_template.svgfinal.svg
GeminiOpenAI
GeminiOpenAIAnthropic Claude
Anthropic Claude 在本项目中用于理解与重建,而不是原生生图。因此,图像草图生成阶段应使用 Gemini 或 OpenAI。
启动服务:
python server.py然后打开:
http://127.0.0.1:8000
首页当前支持的主要输入项包括:
Method TextFigure CaptionImage Draft ProviderSVG Reasoning ProviderCandidatesGeneration ModeSAM3 BackendReference Image
画布页支持:
- 查看中间产物
- 切换候选 SVG
- 查看日志
- 在嵌入式 SVG 编辑器中继续修改结果
python figureweave.py \
--method_file paper.txt \
--output_dir outputs/demo \
--image_provider gemini \
--image_api_key YOUR_GEMINI_KEY \
--svg_provider anthropic \
--svg_api_key YOUR_ANTHROPIC_KEY如果你希望两个阶段都使用同一个 provider,也可以使用:
python figureweave.py \
--method_file paper.txt \
--output_dir outputs/demo \
--provider gemini \
--api_key YOUR_GEMINI_KEYpython figureweave.py \
--method_file paper.txt \
--output_dir outputs/demo_multi \
--image_provider gemini \
--image_api_key YOUR_GEMINI_KEY \
--svg_provider openai \
--svg_api_key YOUR_OPENAI_KEY \
--num_candidates 3FigureWeave 支持在 GPU 上本地部署并运行 SAM3。
典型安装方式:
git clone https://github.com/facebookresearch/sam3.git
cd sam3
pip install -e .你还需要:
- 可用的 NVIDIA GPU
- 当前环境中安装 CUDA 版 PyTorch
- 在 Hugging Face 上获得 SAM3 权限
如果本地 SAM3 不可用,系统仍可根据当前配置回退到其它分割路径。
pip install -r requirements.txt通常至少建议配置:
HF_TOKEN=your_huggingface_token
ROBOFLOW_API_KEY=your_roboflow_key根据你选择的模型路线,还可能需要:
- Gemini API key
- OpenAI API key
- Anthropic API key
构建并启动:
docker compose up -d --build健康检查:
docker compose ps
curl http://127.0.0.1:8000/healthz查看日志:
docker compose logs -f figureweave重启服务:
docker compose restart figureweave典型输出包括:
figure.pngsamed.pngboxlib.jsonicons/template.svgoptimized_template.svgfinal.svgcandidates_manifest.json
启用多候选后,每个候选通常位于:
candidate_01/candidate_02/candidate_03/
FigureWeave 受 AutoFigure 启发,继承了“从科研方法文本生成插图草图”这一总体方向。
在此基础上,本项目进一步强化了以下方面:
- 本地 GPU 分割能力
- 双 provider 路由设计
- 多候选生成
- 浏览器内 SVG 精修
- 更完整的工程工作流
本仓库当前沿用现有的 LICENSE。



