在AI训练领域,尤其是LORA 图像等细分模型的训练,对高质量、结构化的图片标签数据有极高要求。
车型 LORA 的打标标签,有独立的要求:每一个图片的标签结果需要有一个与图片名称一致的 txt 文档。
传统的人工打标方式需要一张一张点开图片,人工打标后,独立保存 txt 文件。
不仅耗时耗力,还容易出错,难以满足大规模数据集的高效处理需求。
有没有一种方法,能让我们像搭积木一样,自动完成图片批量打标、标签txt文件自动生成,并且灵活适配国内主流大模型API?
这几天用 n8n(一个可视化自动化流程平台),结合国内大模型(如豆包图像理解API),实现了“批量读取本地图片→自动生成标签→标签文件自动写出”的全流程自动化。
整个流程无需写一行后端代码,极大降低了AI训练数据准备的门槛。
实现的效果是这样的。
准备好需要标注的图片文件:
另外,图片提示词文件:
每一次任务启动的时候,配置启动词和豆包图像识别 ApiKey。
点击运行,就可以得到这样的批量打标结果:
工作流中的难点与亮点逐一说明一下
批量读取指定文件夹内图片,兼容 jpg 和 png 格式
实现方法:在 n8n 的Read/Write Files from Disk节点中,使用 /data/test/*.{jpg,png} 作为文件选择器,轻松实现对 jpg 和 png 两种主流图片格式的批量读取。优势:
- 支持多格式扩展,后续如需支持 gif、bmp,只需在花括号内添加即可。
- 适合大规模数据集的灵活处理。
docker 部署的n8n本地文件读取是有难度的,可以看这篇文章
在 n8n 平台内调用国内大模型
n8n平台唯一的缺陷大概就是对国内大模型的生态支持不足了吧。为了解决这个痛点,我们可以通过 n8n 的 HTTP Request 节点,配置 API 地址、Header(如 Authorization),即可无缝对接豆包等国内主流大模型。优势:
- 无需写代码,拖拽配置即可完成对接。
- 支持自定义 header,兼容各种 API 鉴权方式。
建议在 n8n 配置 http 请求之前,在火山引擎的 api 调试界面先确认配置参数。调通后再到 n8n 配置 http 请求。
本地图片转 base64,适配大模型 API
当前的图像识别模型,图像入参的方法有两种,一个是存储在云端的 url 地址,比如字节的示例:https://ark-project.tos-cn-beijing.volces.com/images/view.jpeg
另一种是 base64 数据格式。后者一般用于处理个人电脑或者服务器环境内的图像格式转换。
wpm需要处理的图片都是在服务器本地,利用 n8n 的“Extract from File”节点将图片转为 base64,再在 Code 节点中拼接成 data:image/<格式>;base64, 的标准格式,确保 API 能正确识别图片内容。
- 全自动转换,避免手动处理的繁琐和出错。
- 兼容所有主流图片格式,适配性强。
Extract from File节点配置
Code 转换节点配置
复杂 JSON 拼接报错用 code 节点解决
这个绝对是处理起来最烦躁的地方。
在 n8n 的 Code 节点中,手动组装复杂的 JSON 请求体经常会有 JSON 格式错误的报错。为了避免 HTTP Request 节点表达式插值带来的类型和格式问题。我们可以使用 n8n 自带的 Code 转换节点。
- 灵活应对各种嵌套结构的 API 请求。
- 保证请求体格式100%符合大模型 API 要求,避免报错。
return items.map(item => {
const mimeType = $input.first().json.mimeType;
const base64 = $('Extract from File').first().json.data;
const dataUrl = `data:${mimeType};base64,${base64}`;
item.json.body = {
messages: [
{
content: [
{
image\_url: { url: dataUrl},
type: "image\_url"
},
{
text: $('提取提示词').first().json.data,
type: "text"
}
],
role: "user"
}
],
model: "doubao-1-5-vision-pro-32k-250115"
};
return item;
});
批量写出 txt 文件,文件名与图片前缀一致
图像标注训练集要求标签 txt 文件名和图像名称是需要一致的。这样在进行 Lora 模型训练的时候,训练器能够自动的把图像和标签做一一关联。
我们可以通过 n8n 的“保存打标结果txt 文件”节点,动态生成 txt 文件名,前缀与图片文件名一致,实现图片与标签一一对应。优势:
- 自动命名,避免人工对齐,提升数据集规范性。
- 方便后续模型训练和数据管理。
写在最后
这个自动工作作业中的图片和标签文件均在本地文件系统操作,数据不落地云端。保障了训练数据集的安全与本地化处理,特别适合对数据安全有要求的企业或科研场景。
n8n 的可视化界面让流程一目了然,便于团队成员理解、复用和二次开发,降低沟通和协作成本。
通过 n8n + 国内大模型 API 的组合,我们实现了车型 LORA 训练数据的全自动打标流水线。整个流程无需写后端代码,极大提升了数据准备效率和准确性。
如需完整工作流文件、节点配置细节或有其他自动化需求,欢迎留言交流!
