论文里的架构图是张死 PNG?Edit-Banana 把它变回可编辑的 DrawIO

不知道你有没有遇到过这种事:老板甩给你一份两年前的项目报告,里面的系统架构图是个 PNG。现在要复用,得把其中一个服务框的名字改掉、再加一条连线。你兴冲冲打开它,发现------字是"画死"在图里的,不能选中、不能改。

我前两天就栽在这上面。最后没办法,只能照着原图在 DrawIO 里重画了一遍,半小时就这么没了。

后来刷 GitHub 看到个叫 Edit-Banana 的项目,一句话定位很戳我:把"不可编辑"的静态图/PDF,变成能在 DrawIO、PPT 里随便拖、随便改的可编辑图。我试了下在线版,又翻了翻源码,这篇就聊聊它到底好不好用、适合谁。

题外话:名字里的 Banana 是硬凑的谐音梗(uneditable → editable,banana 纯粹是为了好记,别较真)。

它是什么来头

Edit-Banana 是**北理工数据实验室(BIT-DataLab)**开源的一个"通用内容重编辑框架"。

说人话就是:你给它一张流程图 / 架构图 / 技术示意图(甚至是带公式的图),它帮你把图里的每个元素------方框、箭头、文字、公式------重新"拆"出来,拼成一个能在 DrawIO(.drawio / XML 格式)或 PPT 里继续编辑的文件。

它主要靠三样东西:

  • SAM3:一种图像分割模型 Segment Anything Model 3,可以理解成"看图就能把里面每个独立物体圈出来"的 AI,比如把流程图里的每个框、每段箭头单独抠出来。项目方针对图表场景做了微调。
  • 多模态大模型(VLM):像 Qwen-VL、GPT-4V 这类"能看图说话"的模型,负责多轮扫描,搞清楚元素之间的关系、谁连着谁。
  • OCR + 公式识别 :把图里的文字、公式认出来,公式还能转成 LaTeX 一种科技论文里写公式的标准排版语言,比如 `E=mc²` 写成 `\frac{E}{m}=c²`。

效果到底怎么样(先上对比图)

光说没用,上对比图。下面左边是原始截图,右边是它重建出来的可编辑 DrawIO------注意右边图里元素带了选中小方块,说明能单独拖。

第一组:流程图

原图:一张 PNG 流程图,文字和框都是"画死"的,没法选中

重建结果:同样的内容变成了 DrawIO,每个元素带选中小方块,能单独拖、改字、换样式

第二组:架构示意图

原图:架构类示意图

重建结果:方框、连线、配色都还原了,箭头也能选中调整

从这两组看,布局、配色、箭头样式、文字基本都还原了,元素也能选中。说实话比我自己重画快多了。

哪些场景真的用得上

场景 举个具体的例子 不用它的话
改论文 / 报告里的图 导师让你把第三章那张流程图里的"数据库"改成"数据仓库" 用 PS 改字会糊,只能重画
教材 / 讲义图统一 你攒了一堆从别处截的图,想统一成 DrawIO 风格模板 一张张手画,一下午没了
设计稿 / 截图快速成图 产品丢来一张竞品架构截图,要改成自己家的 照着描,还容易描错
PDF 讲义转可编辑 一份扫描版讲义要改成 PPT 接着讲 官方在线服务支持,见后文 重新排版,费眼

简单说:凡是"图是死的、但你还得接着改"的地方,它都能省事。

背后是怎么做到的

我把官方画的流水线说成人话版:

  1. 你丢一张图进去;
  2. SAM3 先分割:把图里每个框、每段箭头"抠"成独立区域,记下它们的位置和大小;
  3. OCR 认字 + 公式识别:把每个区域里的文字、公式读出来(官方用 Azure 的文档识别服务做精确位置,认公式用 Pix2Text 这类工具,云端大模型不可用时还能退回 VLM 端到端识别);
  4. 多模态大模型多轮扫描:搞清"这个框连着那个框""这段箭头是虚线"之类的结构关系;
  5. 最后把"位置 + 文字 + 关系"拼到一起,导出成 DrawIO(XML)或 SVG。

比喻一下:SAM3 像是个手脚麻利的拆件工,把整台机器拆成一个个零件摆好;OCR 是旁边念说明书的人,把每个零件上的字念出来;VLM 是老师傅,指出"这个零件应该接在那个上面"。最后仓库管理员(导出模块)按清单把零件重新装成一份你能改的图纸。

我翻了翻源码,说点实在的

我在 GitHub 上把仓库克隆下来看了一眼,也试用了一下官方在线服务,有几点想提前告诉你,免得踩坑:

  • 开源出来的代码,核心是"图片 → DrawIO(XML)/ SVG"这条线。仓库里主要是 Python 的后端流水线(分割、OCR、合并导出),我翻目录没看到现成的前端代码,也没看到 PDF / PPTX 的导出实现。
  • PDF → 可编辑 PPTX 这类能力,目前主要在官方在线服务上。也就是说,你想本地跑开源版,主要享受到的是"图 → DrawIO";要 PDF 转 PPT 这种,得上它的在线 Demo。
  • 在线服务要注册,新用户有一定免费额度,按量扣,应该是为了挡住滥用、摊 GPU 成本。多人并发时它用全局锁 + 缓存保证 GPU 不打架。
  • 开源协议 :这点要提醒一下想二开的兄弟------仓库 README 徽章写的是 Apache-2.0,但仓库里的 LICENSE 文件实际是 AGPL-3.0 。两个不一样,商用或闭源二开前,自己核对一下协议文件,别只看徽章。

官方在线服务的 Web 界面:上传图片即可在页面里看到可编辑结果

怎么用

三种方式一张图看懂:在线版最省事,本地后端适合不想传图到云端的,命令行适合写进脚本批量跑。

方式一:在线版(最省事,推荐先试)

打开 editbanana.net ,注册登录,上传图片或 PDF,等一会儿就能拿到可编辑的 DrawIO(XML)或 PPTX,页面里还能直接拖着改。新用户有免费额度,先薅这个最划算。

方式二:本地跑后端 + CLI

适合想接自己数据、或者不想传图到云端的同学。

复制代码
# 1. 克隆仓库
git clone https://github.com/BIT-DataLab/Edit-Banana.git
cd Edit-Banana

# 2. 建几个目录(输入、输出、模型缓存)
mkdir -p input output sam3_output

# 3. 装后端依赖(需要 Python 3.10+)
pip install -r requirements.txt

# 4. 准备模型:从 ModelScope 下载 SAM3 权重,放到 models/sam3.pt
#    下载地址:https://modelscope.cn/models/facebook/sam3
#    并在 config 里把路径指过去

# 5. 配置环境变量(OCR 用的,具体以仓库说明为准)
#    新建 .env,填 AZURE_ENDPOINT、AZURE_API_KEY 等

# 6. 启动后端(默认 http://localhost:8000)
python server_pa.py

说明:官方在线版的前端是 React 写的,但开源仓库里我没找到对应的前端目录;能直接跑通的是后端 API + CLI 这两条路。

方式三:命令行(CLI,适合脚本化)

复制代码
# 单张图转换,结果输出到 output/ 目录
python main.py -i input/test_diagram.png

调参:config.yaml

转换效果不满意,可以改 config/config.yaml:

复制代码
sam3:
  score_threshold: 0.85   # 分割置信度阈值,调低能抠出更多小元素,但也可能更碎
  nms_threshold: 0.3      # 重叠框抑制,避免一个元素被圈好几圈
  max_iter: 3             # 最大迭代轮数
paths:
  input_dir: input
  output_dir: output
dominant_color:
  sensitivity: 0.5        # 主色提取灵敏度

小经验:框太碎就调高 score_threshold;箭头连不上就多跑几轮(max_iter)。具体手感得拿你自己的图试。

它和普通"重画"或"OCR 工具"比,强在哪

对比项 Edit-Banana 你手动重画 普通 OCR 工具
输出 DrawIO(XML)/SVG 可编辑 位图,还是改不了 纯文本 / 表格,丢版式
图表结构 保留形状、连线、层级 全靠手 不保留
公式 能转 LaTeX,可继续编 难复用 大多不支持
适合谁 要"图变可编辑"的人 图很少时 只要提取文字时

一句话:普通 OCR 只给你"图里写了啥",Edit-Banana 给你"图本身能改"。区别就像"别人把书读给你听"和"把书原样还给你、还能在上面划重点"。

我的一点看法 & 路线图

说实话,这个项目的定位挺巧------专门解决"图是死的但还得改"这个很多人忍了很久的小痛点。分割 + 多模态大模型 + OCR 这套组合,在箭头、配色、公式这些细节上确实比"截图重画"省心。

从仓库的路线图看,几个有意思的方向还在路上:

  • 智能箭头连接:自动把箭头关联到目标形状(现在有的连线还得手动对一下);
  • DrawIO 模板适配:支持导入你自己的模板,统一风格;
  • 批量导出:一次转一堆图;
  • 本地 VLM:不依赖云端大模型 API,数据不出本机。

要挑刺的话:开源版目前主要是"图 → DrawIO",PDF / PPTX 得靠在线服务;协议那块(AGPL vs Apache 徽章不一致)商用前务必自己确认。另外它吃 GPU,本地没卡的话还是在线版香。

去哪看

  • GitHub:github.com/BIT-DataLab/Edit-Banana
  • 在线 Demo:editbanana.net
  • 适合人群:要把论文图 / 报告图 / 教材图变成可编辑 DrawIO 的研究者、老师、写作者;想学 SAM + 多模态大模型 + OCR 落地组合的开发者。

如果你也经常跟"改不动的死图"搏斗,不妨去在线版传张图试试,比重画一小时强。

相关推荐
zhanghaha13142 小时前
AI Agent_7 AI 提示词工程(Prompt Engineering)
ai
全栈练习生3 小时前
大模型原理之 KV Cache
python·ai
liferecords4 小时前
专家池 8→128 只慢 5%:Ai2 开源万亿参数 MoE 训练框架 Olmo-core 3
人工智能·开源·大模型·moe
Python大数据分析4 小时前
开源免费、AI 驱动的 Web 打印设计器 OpenPrint:从拖拽设计到 ERP 对接全流程实战
前端·人工智能·开源
ai小陈5 小时前
深度学习CUDA异步报错定位:从错误堆栈到最小复现
运维·人工智能·深度学习·ai·gpu算力
ofoxcoding5 小时前
Jev 模型评测深度解析:核心得分、能力局限与最佳适用任务场景
人工智能·算法·机器学习·ai
miofly5 小时前
GitHub 今日推荐|REDox:64 位 token 表示结构化数据,内存占用降 70% 支持多格式互转
开源·c#·github
minji...5 小时前
LangGraph-AI智能体开发框架 - LangGraph 入门案例1 : 智能快递配送系统
人工智能·python·ai·langchain·大语言模型·agent·langgraph
合尘猫5 小时前
Nginx stream 做 GitHub 443 SNI 透传:完整配置、多上游故障转移与三个坑
后端·程序员·开源