N8N新手实战:一学就会的nanobanana绘图工作流
摘要:本文详细介绍如何在N8N平台搭建基于nanobanana2模型的AI绘图自动化工作流。工作流包含7个核心节点:聊天消息触发器接收用户指令→HTTP请求节点调用API生成图片→等待节点暂停处理→状态查询节点轮询结果→条件判断节点检查完成状态→代码节点提取图片URL→文件节点保存图片到本地。重点讲解了HTTP请求节点的认证配置、JSON数据动态绑定、Docker卷映射等关键技术细节,并展示了完整
Gemini3的上线引爆网络,而其内置的nanobanana2模型更是让AI绘图变得触手可及。今天我们就来学习如何在N8N中搭建一个完整的nanobanana自动绘图工作流。
工作流概述
这个工作流基于本地docker部署N8N环境,实现了从接收用户输入到生成AI图片的完整自动化流程。当用户发送聊天消息后,系统会自动调用nanobanana模型生成图片,并保存到本地文件夹。

运行效果:

核心节点详解
-
聊天消息触发器(When chat message received)
作用: 工作流的起点,等待用户输入
聊天触发器节点,当有新的聊天消息传入时,自动启动工作流。它会将用户输入的内容(如"画一只小猫")传递给下一个节点。
知识点: 在N8N中,触发器节点通常位于工作流开头,负责监听特定事件并启动流程执行。
-
nanobanana生图节点(HTTP请求)
核心配置:
-
方法: POST
-
URL:
https://api.kie.ai/api/v1/jobs/createTask -
认证: HTTP头部认证
-
请求体: JSON格式
这个节点是工作流的核心,负责向nanobanana API提交绘图任务。我使用了KIE这个API中转站里的nanobanana服务(https://kie.ai/nano-banana),价格便宜,一张图不到1毛钱,你也可以直接走官方API。
关键配置包括:
{ "model": "google/nano-banana", "callBackUrl": "", "input": { "prompt": "Help me generate exactly ttwo doodle-style “teaching cards” that explain the concept of “{{ $json.chatInput }}” to kindergarten students. Use a consistent, colorful, thick-pencil hand-drawn style. Each card must be information-rich, use a solid-color background, include a card-style outline, and have a uniform title—similar to a PowerPoint slide. All text must be in ENGLISH only. Keep titles, labels, and body text clear and readable.", "output_format": "png", "image_size": "21:9" } }
知识点: 注意{{ $json.chatInput }}是N8N的表达式语法,它会从上一个节点获取chatInput字段的值动态插入到提示词中。
-
等待节点(Wait)
参数: 等待30秒
由于AI绘图需要处理时间,这个节点让工作流暂停30秒,等待nanobanana完成图片生成。
设计逻辑: 轮询机制中常见的"等待-检查"模式,避免频繁请求API。
-
查询任务状态(HTTP请求)
URL: https://api.kie.ai/api/v1/jobs/recordInfo?taskId={{ $json.data.taskId }}
通过动态构建的URL查询任务状态,其中taskId来自生图节点的响应数据。
-
条件判断节点(If)
条件: $json.data.resultJson不为空

检查任务是否完成——如果resultJson字段有值,说明图片已生成成功。
-
获取图片链接(Code节点)
功能: 从API响应中提取图片URL
这个JavaScript代码节点解析返回的JSON数据,提取出生成的图片链接:
const response = $input.all()[0].json; // 解析resultJson字符串为JSON对象 const resultJson = JSON.parse(response.data.resultJson); // 提取第一个图片URL const imageUrl = resultJson.resultUrls[0]; // 返回结果 return { image_url: imageUrl, task_id: response.data.taskId, status: "completed" };
-
链接转文件(HTTP请求)
作用: 下载图片文件
{{ $json.image_url }}

根据获取的图片URL下载实际的图片文件,设置为文件格式响应。
-
文件保存(Read/Write Files from Disk)
文件名: /app/downloads/{{ $('When chat message received').item.json.chatInput }}.png
将下载的图片保存到本地,文件名基于用户最初的输入内容动态生成。
注意,本教程基于本地部署N8N的情形,此处/app/downloads/是容器内路径,通过Docker「卷 / 挂载」映射,非本地路径,实际下载后会保存在我的Mac电脑的Downloads文件夹下。
补充:Docker 的“卷”(volume 或 bind-mount)指的是:把宿主机的一个目录(或具名卷)映射到容器内的一个路径,使容器写文件时实际落在宿主机上,容器被删数据也不丢。
语法:宿主机路径:容器内路径[:选项] 选项常见 ro 只读、rw 读写(默认)。路径必须是绝对路径。
比如,我的docker对应的compose文件里写的:
volumes: - /Users/lavida/Downloads:/app/downloads
宿主机 /Users/lavida/Downloads ↔ 容器 /app/downloads
工作流执行流程
-
触发 → 用户发送消息
-
提交任务 → 调用nanobanana API
-
等待处理 → 暂停20秒
-
状态检查 → 查询任务进度
-
结果判断 → 检查是否完成
-
数据处理 → 提取图片链接
-
文件下载 → 获取图片文件
-
本地保存 → 存储到指定目录
技术要点总结
-
认证方式: 使用HTTP头部认证,凭证名为"KIE的API"
-
错误处理: 通过条件判断实现简单的重试机制
-
文件命名: 采用动态文件名,便于后续查找和管理
-
异步处理: 合理的等待时间设置,平衡响应速度和成功率
这个工作流展示了N8N在AI自动化方面的强大能力,即使是技术小白也能通过拖拽节点的方式构建复杂的AI应用流程。学会了这个基础框架后,你可以进一步扩展功能,比如添加图片预览、格式转换或批量处理等高级特性。
赶紧动手试试吧,让你的第一个nanobanana绘图工作流转起来!
【关于我】
我拥有10年互联网运营经验,曾经也是技术小白,现专注研究AI自动化。这里没有难懂的技术黑话,只有一步步的可视化操作。跟我学,让你每天轻松“少干1小时”,用AI自动化效率甩开同龄人!感兴趣请扫码添加我的个人公众号,持续更新更多新手友好的实用案例~比飞书更早更新!
公众号id同名,搜索即可。
更多推荐

所有评论(0)