引言“把不可编辑的变成可编辑的。——Make the Uneditable, Editable.”这是「一天一个开源项目」系列的第 32 篇文章。今天介绍的项目是Edit-BananaGitHub。论文、报告、教材里的流程图、架构图、技术示意图往往是 PNG/JPG 或 PDF 里的「死图」——不能改文字、不能拖形状、不能换模板。Edit-Banana是北京理工大学数据实验室BIT-DataLab开源的通用内容重编辑框架用自研微调的SAM 3Segment Anything Model 3做图表元素分割用多模态大模型Qwen-VL / GPT-4V 等做多轮扫描与 OCR把静态图/PDF 高保真转成DrawIOXML、SVG、PPTX每个元素都可单独选中、拖拽、改样式真正「可编辑」。为什么值得看一图变 DrawIO/PPTX流程图、架构图、公式图 → 可编辑 XML/SVG/PPTXSAM3 多模态 VLM分割 多轮 VLM 扫描保留版式、层级、箭头样式高保真布局逻辑、配色、描边/填充、虚线/粗细、文字与公式含 LaTeX尽量还原即用 Demo在线 editbanana.anxin6.cn 上传即用本地支持 WebReact FastAPI与 CLIPDF → PPTX支持 PDF 转可编辑幻灯片可配置SAM3 阈值、路径、主色等通过config.yaml调优你将学到什么Edit-Banana 的定位与典型使用场景图→DrawIO、PDF→PPTX、人机协同修改整体流水线输入 → SAM3 分割 → 文本/公式 OCRAzure VLM 回退→ 合并生成 XML/PPTX关键技术点SAM3 微调、多轮 VLM 扫描、Azure OCR、Crop 高分辨率文字/公式识别、LaTeX 输出项目结构、安装与配置、Web 与 CLI 两种使用方式与同类「图转可编辑」方案的对比与选型参考开发路线图箭头智能连接、模板适配、批量导出、本地 VLM 等前置知识对图像分割、OCR 有基本概念即可了解 DrawIO.drawio / XML或 PPTX 格式会有帮助本地部署需 Python 3.10、可选 CUDA GPU前端为 React Node项目背景项目简介Edit-Banana的 Slogan 是「Universal Content Re-Editor: Make the Uneditable, Editable」。它要解决的是静态格式图片、PDF中的图表、示意图、公式无法直接编辑的问题。通过「SAM 3 分割 多模态大模型多轮扫描 高质量 OCRAzure VLM 回退 公式 LaTeX」的流水线把输入PNG/JPG 图片或 PDF输出可编辑的DrawIOXML、SVG、PPTX元素可单独选中、拖拽、改样式从而保留原图的布局逻辑、颜色、层级、箭头样式并支持后续在 DrawIO 或 PowerPoint 中继续编辑、换模板。面向的用户需要把论文/报告里的图改成可编辑版本的研究者、写作者想把现有教材/讲义中的图统一成 DrawIO/PPT 的教师、课程制作者希望从设计稿/截图快速得到可编辑图的开发者、产品经理对 SAM、多模态 VLM、OCR 流水线感兴趣的学习者作者/团队介绍团队BIT-DataLab北京理工大学数据实验室代表贡献者Chai Chengliang、Zhang Chi、Deng Qiyan、Rao Sijing 等见 GitHub Contributors联系README 中提供 WeChat 群二维码可扫码加入交流Issues 可提 Bug 与建议项目数据⭐GitHub Stars: 约 1.9kGitHubForks: 约 99仓库状态: 22 commits持续迭代README 注明在线服务优先更新GitHub 代码可能略滞后于线上能力License: Apache-2.0可商用、二次开发保留版权声明在线 Demo: editbanana.anxin6.cn社区: GitHub Issues、WeChat 群见 README技术栈Python100% 仓库语言、CUDA、React前端、FastAPI后端。主要功能核心作用Edit-Banana 的核心作用是把「不可编辑」的静态图表/PDF 转成「可编辑」的 DrawIOXML、SVG、PPTX。图 → DrawIO / SVG / PPTX流程图、架构图、技术示意图、公式图等输出可拖拽、可改样式的元素。PDF → PPTXPDF 页面转成可编辑的 PPT 幻灯片。人机协同支持在流程中人工介入修改Human in the Loop。转换时尽量做到保留布局逻辑、颜色、元素层级1:1 还原形状描边/填充、箭头样式虚线、粗细等文字与公式识别准确支持后续编辑和 LaTeX 公式。使用场景论文/报告插图可编辑化将论文里的流程图、架构图从 PNG 转为 DrawIO便于改版、复用。教材/讲义图表统一格式把扫描版或截图中的图批量转为 DrawIO 或 PPTX统一风格与模板。设计稿/截图快速成图设计图或界面截图 → 可编辑图便于在 DrawIO/PPT 中二次设计。PDF 讲义转 PPT将 PDF 讲义转成可编辑 PPTX方便修改版式和内容。技术文档与培训材料技术示意图、系统架构图从静态图变为可维护的 DrawIO/PPTX。快速开始在线使用推荐打开 https://editbanana.anxin6.cn/上传图片或 PDF即可得到可编辑的 DrawIOXML或 PPTX新用户注册可获得一定免费额度本地安装与运行环境Python 3.10、Node.js npm前端、建议带 CUDA 的 GPU。# 1. 克隆gitclone https://github.com/BIT-DataLab/Edit-Banana.gitcdEdit-Banana# 2. 创建目录mkdir-p input output sam3_output# 3. 下载模型如 SAM3# 从 https://modelscope.cn/models/facebook/sam3 下载放到 models/sam3.pt并在 config 中配置路径# 4. 后端依赖pipinstall-r requirements.txt# 5. 配置文件与环境变量cpconfig/config.yaml.example config/config.yaml# 创建 .env配置 AZURE_ENDPOINT、AZURE_API_KEY 等见 README# 6. 前端cdfrontendnpminstallcd..Web 方式# 后端python server_pa.py# 默认 http://localhost:8000# 前端另开终端cdfrontendnpmrun dev# 默认 http://localhost:5173浏览器访问前端地址上传图片即可在页面内看到转换结果如内嵌 DrawIO 编辑器。CLI 方式# 单张图python main.py -i input/test_diagram.png# 输出 XML 等在 output/ 目录核心特性SAM3 分割使用项目微调的 SAM 3对图表元素做分割为后续还原几何与层级打基础。多轮 VLM 扫描由多模态大模型如 Qwen-VL、GPT-4V引导的固定多轮扫描提取结构、关系与文本。高质量 OCR 与公式Azure Document Intelligence做精确文本定位若 Azure 不可用自动回退到VLM 端到端 OCR使用Mistral Vision / MLLM做文本纠错与公式转LaTeXCrop-Guided对文字/公式区域做高分辨率裁剪再送 LLM提高识别质量。用户与并发用户系统注册送免费 credits按量扣费防滥用多用户并发Global Lock保证 GPU 线程安全LRU Cache缓存图像嵌入兼顾性能与稳定。Web 与 CLIReact 前端 FastAPI 后端上传即用同时提供CLImain.py便于脚本化。配置化config/config.yaml可调SAM3 分数阈值、NMS、迭代次数、路径、主色提取等。项目优势对比项Edit-Banana传统截图重绘通用 OCR 工具输出格式DrawIO(XML)/SVG/PPTX 可编辑多为位图纯文本/表格图表结构保留形状、连线、层级需人工重画不保留版式公式LaTeX 输出可编辑难以复用部分支持技术栈SAM3 多模态 VLM OCR手工/简单工具以文本为主开源与商用Apache-2.0可二次开发视具体工具视具体产品为什么选 Edit-Banana专门针对「图→可编辑」场景输出直接可用于 DrawIO/PPT分割 VLM OCR 组合在版式、箭头、公式上做了专门设计有在线 Demo 和完整本地部署方案便于试用与集成北京理工大学实验室开源Apache-2.0 友好。项目详细剖析架构与流水线整体是一条顺序 并行的流水线输入ImagePNG/JPG或 PDF。分割SAM3用微调 SAM3 的 mask 解码器得到图表元素区域。文本提取并行Azure OCR 得到文本框对文字/公式区域做高分辨率 crop送 Mistral/LLM 做识别与 LaTeX 转换。生成合并 SAM3 的空间信息与 OCR 文本生成XMLDrawIO/ PPTX。Input (Image/PDF) → SAM3 Segmentation → Text Extraction (Azure OCR VLM crop-guided LaTeX) → Merge spatial text → DrawIO (XML) / SVG / PPTX项目结构概要根据 README结构大致为Edit-Banana/ ├── config/ # 配置如 config.yaml ├── flowchart_text/ # OCR 与文本提取Azure、Mistral、对齐等 ├── modules/ # 通用模块 ├── prompts/ # 多模态/LLM 提示词 ├── sam3/ # SAM3 模型封装 ├── sam3_service/ # SAM3 服务化 ├── scripts/ # 工具脚本如 merge_xml.py 合并与编排 ├── static/ # 静态资源与 Demo 图 ├── main.py # CLI 入口模块化流水线 ├── server_pa.py # FastAPI 后端Web 服务 └── requirements.txt前端在frontend/React通过后端 API 上传文件并获取生成的 XML/PPTX。关键技术点SAM3 微调针对图表场景微调提升形状、箭头、框图等分割质量。多轮 VLM用多模态大模型做多轮「扫描」提取结构、关系、文本而不是单次识别。Crop-Guided OCR只对文字/公式区域做高分辨率裁剪再送 LLM在保证精度的同时控制 token 与成本。并发与缓存Global Lock LRU Cache 使多用户共享 GPU 时既安全又减少重复计算。配置说明config.yamlREADME 提到可在config/config.yaml中调整sam3score 阈值、NMS 阈值、最大迭代轮数等paths输入/输出目录dominant_color主色提取相关灵敏度。环境变量如.env需配置AZURE_ENDPOINT、AZURE_API_KEY等具体以仓库说明为准。开发路线图README模块/功能状态说明核心转换流水线✅ 已完成分割 重建 OCR 全流程智能箭头连接⚠️ 开发中自动将箭头关联到目标形状DrawIO 模板适配 计划中支持自定义模板导入批量导出优化 计划中批量导出为 .drawio 等本地 VLM 适配 计划中支持本地 VLM不依赖云端 API项目地址与资源官方资源GitHub: https://github.com/BIT-DataLab/Edit-Banana在线 Demo: https://editbanana.anxin6.cn/文档: 以 GitHub README 为主含安装、配置、使用说明社区: GitHub Issues、README 内 WeChat 群二维码Issue Tracker: GitHub Issues相关资源SAM / SAM3Segment Anything Model 系列如 ModelScope sam3DrawIOdraw.io 编辑器与 XML 格式说明Azure Document IntelligenceOCR 服务文档适用人群需要把论文图、报告图、教材图转成可编辑 DrawIO/PPTX 的研究者、教师、写作者想学习SAM 多模态 VLM OCR组合落地的开发者需要图转可编辑能力的产品与项目可基于 Apache-2.0 二次开发对图表理解、公式识别、文档结构化感兴趣的同学。欢迎来我中的个人主页找到更多有用的知识和有趣的产品