如何高效绘制科研图?试试next-ai-draw-io:从描述到编辑,一步到位
1.背景
在科研论文的撰写过程中,经常会遇到需要绘制某些传统的架构。这些架构图在大多数使用到的论文中,绘制方式基本上都是如出一辙的,因此如何更高效的绘制这些图,是一件十分重要的事情。当然,现在市面上有很多可以生成直接生成科研图的模型,例如Gemini、GPT等多模态模型,他们都可以直接生成科研图,如果给上参照图效果基本上也都很好。但是在我尝试使用时发现,这些模型在生成图过程中其实都存在一定的瑕疵。以下是我尝试采用Gemini参照TCN架构原图生成的架构图:
-
原图

-
Gemini生成图

可以看到,Gemini生成的图与原图在右上角的符号处有一定的区别,同时Gemini在字符边缘和背景部分总是会出现泛白的情况(当然,这张图生成得已经非常不错了)。同时如果要在原图的基础上进行一定的修改,那么Gemini在修改的过程中生成图的效果会原来越差,并且只能导出PNG格式,需要自行转svg格式。
因此,我希望能够找到一种更高效的生成科研图的方法,能够在保证初次生成的质量的同时,还能够更加灵活的进行编辑修改。
2.解决方案
可以使用Github上一个开源项目next-ai-draw-io来解决这个问题。它可以根据用户提供的图片描述,自动在画布生成可编辑的图形。
如果你不考虑进行本地部署,可以像我一样直接访问项目的release页面(next-ai-draw-io-release,下载对应的版本,直接安装运行即可。
配置步骤:
1.打开软件,在右下角可以看到对话框,对话框下面可以进行模型的配置。

2.点击“添加供应商”,然后配置对应的api地址以及模型即可,模型列表在每个供应商的开放平台都有说明。

3.使用右下角的对话框进行图片描述或者上传示意图,然后点击发送,他就会自动思考帮你生成对应的xml文件并且显示在画布上。(如果你配置的模型不支持图片输入,那么你需要先获取到优质的图片描述,然后以文字的形式上传到软件中。)
例如:我先使用了kimi的k2.6模型,然后上传了架构原图然后让他帮我进行描述,他生成的图片描述如下:
## 图片整体布局
这张图采用**左右分栏布局**,左侧展示 TCN 的**膨胀因果卷积的层级结构**,右侧展示**TCN 残差块(Residual Block)的内部结构**。两图之间有视觉连接线(蓝色引线)关联。
---
## 左侧:膨胀因果卷积层级结构(Dilated Causal Convolution)
这是一个**纵向堆叠的时序卷积可视化图**,展示输入序列如何经过多层膨胀卷积逐步提取特征并输出预测。
### 结构层次(从下到上):
| 层级 | 标注 | 特征 |
|------|------|------|
| **最底层** | Input | 输入序列,标注为 $x_1, x_2, \ldots, x_{t-1}, x_t$ |
| **第一层** | Hidden Layer, $d=1$ | 膨胀率 $d=1$(标准卷积,感受野为 2) |
| **第二层** | Hidden Layer, $d=2$ | 膨胀率 $d=2$(间隔采样,感受野扩大) |
| **第三层** | Hidden Layer, $d=4$ | 膨胀率 $d=4$(更大间隔,感受野进一步扩大) |
| **最顶层** | Output | 输出序列,标注为 $y_1, y_2, \ldots, y_{t-1}, y_t$ |
### 视觉元素:
- **节点表示**:每个时间步用小方块表示,填充色为**浅蓝色**,边框为**深蓝色**
- **卷积核**:每层中参与计算的节点用**深蓝色填充**突出显示
- **连接线**:用**蓝色斜线**表示因果连接(当前输出只依赖过去和当前的输入)
- **因果特性**:每一层的输出节点只与**左侧(过去)及自身位置**的输入节点相连,不与右侧(未来)相连
- **膨胀效果**:随着 $d$ 增大,深蓝色节点之间的间隔变大,但覆盖的历史范围更广
---
## 右侧:TCN 残差块(TCN Residual Block)
这是一个**详细的模块内部结构图**,展示单个残差块的数据流。整体呈**纵向流程图**样式,从下到上处理。
### 输入输出:
- **Input**(底部进入)→ **Output**(顶部输出)
### 内部数据流(从下到上):
Input
│
├──→ [主路径] ─────────────────────────┐
│ │
▼ │
┌──────────────┐ │
│ Dilated Conv1 │ ← 第一层膨胀卷积 │
│ (BatchNorm) │ ← 批归一化(粉色块) │
│ (ReLU) │ ← 激活函数(浅绿块) │
│ (Dropout) │ ← 正则化(浅黄块) │
└──────────────┘ │
│ │
▼ │
┌──────────────┐ │
│ Dilated Conv2 │ ← 第二层膨胀卷积 │
│ (BatchNorm) │ │
│ (ReLU) │ │
│ (Dropout) │ │
└──────────────┘ │
│ │
▼ │
[ ⊕ ] ← 残差连接(Add)───────────────────┘
│
▼
Output
### 旁路(Skip Connection):
- **Input** 通过一条横向的 **[Conv1D]** 模块(浅蓝色块)直接连接到顶部的 **[⊕]** 加法节点
- 这是**1×1 卷积**,用于调整输入维度以匹配主路径输出,实现恒等映射或维度变换
### 颜色编码:
| 模块类型 | 颜色 | 具体模块 |
|---------|------|---------|
| 卷积层 | 浅蓝/白色 | Dilated Conv1, Dilated Conv2, Conv1D |
| 归一化 | **粉红色** | BatchNorm |
| 激活函数 | **浅绿色** | ReLU |
| 正则化 | **浅黄色/米色** | Dropout |
| 残差加法 | 圆形 ⊕ | 输出节点 |
---
## 两图的关联
- 左侧图中的 **"Hidden Layer"** 和 **"Temporal Block"** 标签通过**蓝色引线**指向右侧的残差块
- 表明:左侧的每一层 Hidden Layer 实际上由右侧所示的 TCN Residual Block 构成
3.效果展示

可能是因为我获取的图片描述信息还不够细致,初始生成的效果还比较一般,但是他像传统的draw.io一样支持手动编辑,用来生成初期模板效果还不错。
更多推荐

所有评论(0)