5、n8n 主流平台批量文生图工作流实操

5、n8n 主流平台批量文生图工作流实操

5、n8n 主流平台批量文生图工作流实操 5、n8n 主流平台批量文生图工作流实操 Modified September 28, 2025 Agent的提示词可以自己设置,建议简单点就好,或者是直接用前面表单定义的字段 chatInput,更简单方便,效果好。 文生图的提示词参考,及最终返回的效果图片。 再结合这两个节点就能下载生成的图像 不过在这个文件转换节点,大模型可能输出的图像是 output[1].inlineData.data 或者 output[0].inlineData.data 大家可以在提示词或者在工作流中优化一下 七)Provider 速查映射(最常用字段) 下表我们把各大平台常用的一些字段拿出来做对比,仅供参考。 课堂提示:适配器里做“键名翻译”,不要把平台命名泄漏到上游。 八)把现有表单流“升级”为可批量+多模型 现有节点:图片要求提交 → 风格提示词生成 → 图片生成 → 返回 图片/下载到本地 按下面补齐即可: 1. 入口双通道:保留表单;新增 飞书表格触发器(或别的子工作流触发的形式) 2. Set 统一 schema:把表单/表格字段都映射到上文 schema(含尺寸解析/风格) 3. 幂等去重:给每条任务生成 request id,用 Merge(A−B) 过滤重复 4. 批处理:Switch 之前包一层 Split In Batches + Wait 5. 多 Provider 适配器:复制你“Together 图片生成”节点,改成“Provider 适配器(HTTP)”,每家一条支路 6. 失败聚合:你已有“报错提醒/聚合报错信息”,并到 Error Trigger 7. 托管与回写:保留你“返回图片”UI;新增 Sheets/Bitable Update,把链接与状态写回 8. 凭证安全:把你 JSON 里的 API key 移到 Credentials,在 Header 用表达式读凭证 九)可复制片段(参考) 1)尺寸字符串 → 数值宽高(Code) Code block JavaScript Copy const it = $input.item.json; const m = String(it.size || it.Size || ) .match(/(\d{2,4})\D+(\d{2,4})/); it.width = m ? +m[1] : (it.width || 1024); it.height = m ? +m[2] : (it.height || 1024); return [{ json: it }]; 2)请求幂等哈希(Code) Code block JavaScript Copy const crypto = require('crypto'); for (const it of $input.all()) { const base = [ it.json.model, it.json.prompt, it.json.width, it.json.height, it.json.ref image url||'' ].join('|'); it.json.request id = crypto.createHash('md5').update(base).digest('hex'); } return $input.all(); 3)Split In Batches 限速循环(官方范式) • Split In Batches:batchSize=8 • 批尾 Wait:7500ms • Wait → 回到 Split(直到 noItemsLeft 停止) 4)HTTP 节点失败重试(推荐) Settings 勾 Retry on Fail:Max Tries = 3,Wait Between Tries(ms)=1000 5)Together 适配器(HTTP Body 示范) Code block JSON Copy { "model": "{{ $json.model === 'gpt image 1' ? 'gpt image 1' : 'black forest labs/FLUX.1 schnell' }}", "prompt": "{{ $json.prompt }}", "width": {{ $json.width }}, "height": {{ $json.height }}, "steps": {{ $json.steps || 4 }}, "n": 1, "response format": "b64 json" } 6)Base64 → binary(Move Binary Data) • Operation: JSON to Binary • Property: data[0].b64 json 或 images[0].base64 • Binary Property Name: image • File Name: {{$json.request id}}.png 7)表格回写(Google Sheets Update) • Range:定位 meta.source row • 更新:status=done, image url={{$json.image url}}, provider={{$json.provider}} 8)成本估算(示例) Code block JavaScript Copy for (const it of $input.all()) { const m = it.json.model; let cost = 0; if (m==='gpt image 1') cost = (it.json.width it.json.height =1536 1536)?0.08:0.04; if (m==='flux schnell') cost = 0.002; // 示例,自行按账户计费表调整 it.json.cost usd = +cost.toFixed(4); } return $input.all(); 十)常见坑与排查 1. 429/排队:总是先上 Split In Batches + Wait;必要时分 Provider 设不同批次 2. base64 太大/节点超时:HTTP Timeout 调大、尽量上传到图床再传链接 3. ComfyUI 无响应:没 enable api、prompt 图键名不匹配、端口/防火墙 4. 表格回写错行:务必把 source row 带流转,更新用它而非索引猜测 5. Key 泄露:一律用 Credentials;Body/Set 里别硬编码 6. 提示词“跑偏”:风格库 + LLM 提示词统一器,温度 ≤ 0.5,必要时中文→英文 十一)建议实践 跟着SOP文档跑通工作流中1 2条路径,建议先从即梦插件方式开始。 Agent的提示词可以自己设置,建议简单点就好,或者是直接用前面表单定义的字段 chatInput,更简单方便,效果好。 文生图的提示词参考,及最终返回的效果图片。 再结合这两个节点就能下载生成的图像 不过在这个文件转换节点,大模型可能输出的图像是 output[1].inlineData.data 或者 output[0].inlineData.data 大家可以在提示词或者在工作流中优化一下 七)Provider 速查映射(最常用字段) 下表我们把各大平台常用的一些字段拿出来做对比,仅供参考。 课堂提示:适配器里做“键名翻译”,不要把平台命名泄漏到上游。 课堂提示:适配器里做“键名翻译”,不要把平台命名泄漏到上游。 八)把现有表单流“升级”为可批量+多模型 现有节点:图片要求提交 → 风格提示词生成 → 图片生成 → 返回 图片/下载到本地 按下面补齐即可: 1. 入口双通道:保留表单;新增 飞书表格触发器(或别的子工作流触发的形式) 2. Set 统一 schema:把表单/表格字段都映射到上文 schema(含尺寸解析/风格) 3. 幂等去重:给每条任务生成 request id,用 Merge(A−B) 过滤重复 4. 批处理:Switch 之前包一层 Split In Batches + Wait 5. 多 Provider 适配器:复制你“Together 图片生成”节点,改成“Provider 适配器(HTTP)”,每家一条支路 6. 失败聚合:你已有“报错提醒/聚合报错信息”,并到 Error Trigger 7. 托管与回写:保留你“返回图片”UI;新增 Sheets/Bitable Update,把链接与状态写回 8. 凭证安全:把你 JSON 里的 API key 移到 Credentials,在 Header 用表达式读凭证 九)可复制片段(参考) 1)尺寸字符串 → 数值宽高(Code) 2)请求幂等哈希(Code) 3)Split In Batches 限速循环(官方范式) • Split In Batches:batchSize=8 • 批尾 Wait:7500ms • Wait → 回到 Split(直到 noItemsLeft 停止) 4)HTTP 节点失败重试(推荐) Settings 勾 Retry on Fail:Max Tries = 3,Wait Between Tries(ms)=1000 5)Together 适配器(HTTP Body 示范) 6)Base64 → binary(Move Binary Data) • Operation: JSON to Binary • Property: data[0].b64 json 或 images[0].base64 • Binary Property Name: image • File Name: {{$json.request id}}.png 7)表格回写(Google Sheets Update) • Range:定位 meta.source row • 更新:status=done, image url={{$json.image url}}, provider={{$json.provider}} 8)成本估算(示例) 十)常见坑与排查 1. 429/排队:总是先上 Split In Batches + Wait;必要时分 Provider 设不同批次 2. base64 太大/节点超时:HTTP Timeout 调大、尽量上传到图床再传链接 3. ComfyUI 无响应:没 enable api、prompt 图键名不匹配、端口/防火墙 4. 表格回写错行:务必把 source row 带流转,更新用它而非索引猜测 5. Key 泄露:一律用 Credentials;Body/Set 里别硬编码 6. 提示词“跑偏”:风格库 + LLM 提示词统一器,温度 ≤ 0.5,必要时中文→英文 十一)建议实践 跟着SOP文档跑通工作流中1 2条路径,建议先从即梦插件方式开始。 十二)文档总结 这个文档,我们带大家梳理了 n8n 批量文生图工作流的整体框架。让散落在各个平台的AI出图功能汇聚在这样一条工作流里面,很适合作为我们学习n8n在AI绘画中的相关使用。 当然,这仍然是不够成熟的工作流,要成为真正稳定的AI智能体,还需要在系统层面进行更多的操作,比如统一入参,统一返回参数,统一报错等等。 如果你对于MCP有一定的了解,还能通过子工作流触发的形式把我们这个工作流作为MCP服务器,在别的平台进行使用。 掌握了这些基础,后续在视频创作的流程中,你会更加得心应手。 n8n 批量文生图工作流全流程(liblib / runninghub / ComfyUI / 即梦 / Fluxshell / GPT img1 / Google Imagen / Gooogle Nano Banana) 【难度较大,看文档能大概理解,搭建基本的即梦和liblib生图工作流即可】 一)课程地图(全景→细节) 我结合sop的一些内容和ChatGPT5的深度思考和互联网搜索,得到一份比较完整的各平台对比表格,供大家参考。 PPRR 循环 • 感知:Form / Webhook / Google Sheets / Bitable / Schedule Trigger • 规划:Set 统一字段 → Switch 路由 → Provider 适配 • 执行:Split In Batches + Wait 限速,HTTP Request/官方节点出图,Retry on fail • 回顾:上传图床(或飞书 Drive)、回写表/Notion、Error Trigger 告警、成本/成功率看板 目标成品 1. 批量出图工厂:从表格批量读取任务 → 多模型限速生成 → 上传图床 → 回写链接与成本 2. 即时出图机器人:Webhook/表单一键生成(沿用同一“统一 schema + 适配器”) 二)预备知识与环境 必备 • n8n(建议 Docker) • 任务源:n8n form表单 / 飞书 Bitable(二选一) • 模型凭证(至少 1 个):Together(可走 FLUX/GPT Image 1),或你已有的 liblib/runninghub/即梦/Fluxshell;自部署 ComfyUI(启动需 enable api) 凭证清单(先配好) • Google OAuth / 飞书凭证(Bitable/Drive) • Together / 其他平台 API Key(用 n8n Credentials,别放在 Set 明文) • Cloudinary(可选) 三)核心节点 • 触发:Schedule Trigger(定时扫表)、Form/Webhook(即时触发) • 控制流:Split In Batches(批量限速)、Wait(批间停顿)、IF/Switch(路由)、Merge(汇合) • 数据:Set(统一 schema)、Code(尺寸解析/成本估算/ComfyUI JSON 组装) • 执行:HTTP Request(万能),官方 OpenAI/Cloudinary/Google 节点(能用就用) • 观测:Error Trigger(失败→群里告警) 四)模型调用“金字塔”(选型优先级) 1. 官方商业 API(质稳):OpenAI GPT Image 1、Google Imagen4(质量/稳定性高,成本高) 2. 托管开源聚合(性价比):liblib / runninghub / Fluxshell / 即梦(多模型、排队与稳定性因平台而异) 3. 自部署(终极控制):ComfyUI(零单次费,需 GPU 与维护;API 为“节点图”JSON) 策略:优先走可控且稳定的(Together/官方/企业托管),再兜底开源聚合,最后上自部署。所有分支都走统一输入/输出,随时可替换。 策略:优先走可控且稳定的(Together/官方/企业托管),再兜底开源聚合,最后上自部署。所有分支都走统一输入/输出,随时可替换。 五)统一 schema(极简而通用) 我们把任何来源的任务规范成下列字段,下游所有分支只吃这套: 课堂心法:入口统一、出口统一、Provider 只做“翻译”。这样换模型=换“适配器”节点,而不是改全局。 课堂心法:入口统一、出口统一、Provider 只做“翻译”。这样换模型=换“适配器”节点,而不是改全局。 六)实战:从 0 搭“批量 AI 艺术工厂”(12 步) 这里先给大家看前面半部分,主要是接受参数,优化提示词,设置路由,到后续具体的平台分支出图。 触发我这里设置了两种方式,一种是n8n中的表单填写,另一种是我们通过父工作流触发,父工作流可以有很多种方式,比如MCP调用,webhook调用,飞书notion等应用事件触发。 1、任务源/触发器 我们这里是用的是表单,未来大家也可以集成到一些文档中,增加触发事件,比如飞书,Notion或者Google Sheets(Google Sheets Trigger:On Row Added(或 Schedule 每 10 分钟扫一次“status=todo”)读出 prompt/model/size/style/ref image 等原始列)。 复制粘贴下面的json内容到n8n工作流编辑页面,参考其中的内容。内置了很多图像风格,如果希望按照提示词来,则可以选择 跟随提示词 下拉框 输入 表单 ◦ 接收表单的数据,标准化字段 ◦ 接收表单的数据,标准化字段 ◦ 统一成“5 统一字段”(prompt/size/style/model/background) 2、设置参数 把一些需要统一设置的参数填在这里,后面各个分支都能拿到。 (这些大家前期不用全部设置,按照自己的工作流后续需要实际设置的动态参数来定) 3、Agent|风格融合与英文化 把 prompt/style/size 喂进去,产出 prompt en / width / height等等 用户提示词 系统提示词 大模型我这里选择的是Gemini 2.5 flash,大家也可以根据自己的需求和方便选择模型。 结构化解析 可选 | 去重/幂等 ◦ Code 生成 request id = md5(model + prompt + width + height + (ref image url||"")) ◦ 在“结果表”里查这个 request id 是否存在 → 存在则跳过(A−B) ◦ Code 生成 request id = md5(model + prompt + width + height + (ref image url||"")) ◦ 在“结果表”里查这个 request id 是否存在 → 存在则跳过(A−B) 可选 | 限速阀 ◦ Split In Batches(batchSize=8)→ 批尾 Wait(7500ms) → 回到 Split ◦ 统一把所有任务压平后再分发,避免单 Provider 峰值 ◦ Split In Batches(batchSize=8)→ 批尾 Wait(7500ms) → 回到 Split ◦ 统一把所有任务压平后再分发,避免单 Provider 峰值 4、Switch|路由 {{$('设置参数').item.json.Model}} in [“gpt image 1”, “flux schnell”, “imagen”, “comfyui”, “liblib”, “runninghub”, “jimeng”, “fluxshell”] {{$('设置参数').item.json.Model}} in [“gpt image 1”, “flux schnell”, “imagen”, “comfyui”, “liblib”, “runninghub”, “jimeng”, “fluxshell”] 每个分支接“适配器(HTTP/官方)” 【注意】这里不一定每个平台都需要,大家按需即可,每个平台都跑通需要花不少时间。 参考json文件 5、即梦(推荐) 即梦是字节跳动旗下的AI绘画,视频平台,中国风的相关内容效果非常好,整体综合实力比较强。 网址:https://jimeng.jianying.com/ai tool/home 参考结果,一次请求四张图片 工作流整体节点参考 合法化宽高是可选的,用来约束输入的图片尺寸 (可能会存在即梦模型更新问题,导致部分尺寸即梦不支持,前期测试图片尺寸尽可能用1024x1024) n8n 调用即梦的两种方式对比 方法一(可选): 即梦的API在火山引擎上面,我们首先要开通相关服务:https://www.volcengine.com/product/jimeng 点击即梦 AI 图片生成 的产品详情 按照这四步依次进行,最终我们在 n8n 里面一个 http 节点或者 n8n 的jimeng 节点 使用即梦的 AI 绘画能力 我们要先获取密钥,然后复制下来,作为后面即梦节点里面的凭证。 这种方法大家感兴趣可以尝试,参考文档:https://www.volcengine.com/docs/85621/1756900 下面内容大致参考下,主要是授权那个参数比较难处理 方法二(推荐): 我们 还是先从设置节点跳转到社区节点 https://www.npmjs.com/search?q=jimeng 搜索 jimeng 官方认证的节点是这个 n8n nodes jimeng。 然后我们返回到社区安装节点:http://localhost:5678/settings/community nodes 去安装好这个节点 这样就说明安装成功了 回到 n8n 工作流页面搜索 jimeng 就能使用我们安装的这个节点了,其他的扩展节点也是类似的方法,大家后续可以举一反三。 点开发现很多节点,我们选择本次需要的文生图节点即可。 我们接着去创建凭证,注意,如果是插件节点 要这样获取 是F12快捷键 到 application 里面看 cookies 下的 jimeng 的 sessionid 保存到该节点的凭证,保存即可。 启动工作流,填写表单,进行变量引入和调试。 把路由里面对应的字段拖到里面去。 这样我们生成了四张图片 注意⚠️:即梦的图片长度宽度得是数字,别用字符串 对应我们前端页面也有这么多图片 如果是想把所有的图片都下载,增加一个code节点,命名 展开图片List 然后使用http节点,用请求每个url,即可下载。 写入到磁盘节点 取名可以参考下面的表达式 补充:方法3可以参考我们前面的即梦4.0工作流,能够使用最新的即梦4.0模型 6、ComfyUI 本地部署(难) 这种方式要求我们本地有独立显卡(显存 =8GB) 查看电脑显卡方式,右键单击此电脑,点击属性。 这种方式比较自由灵活,成本相对可控,有一块较好性能的显卡,跑起来非常爽。 我们需要在n8n安装ComfyUI节点,方便直接使用本地comfyui。 复制包名 n8n nodes comfyui 回到 http://localhost:5678/settings/community nodes 进行安装 然后就能在列表中看到该节点,回到工作流页面,能搜到该节点,说明安装成功。 然后在n8n中创建新的ComfyUI凭证 如果是通过秋叶安装包安装的本地Comfyui,记得先在高级设置里面开放远程连接,这样我们本地docker里面部署的n8n才好连接。

在 小宇宙note 阅读完整内容