测试文章

> 大家好,我是香君,Youtube航海、深海圈教练、精华帖作者。n8n是一个超级好用的低代码工作流平台,可以完成很多很多实用的功能。今天我就给大家一个思路用n8n批量生产图片,今天这个思路是一个通用的思路,大家可以平移到自己的业务上去。不仅是油管,更可以是其他别的业务。好了废话不多说了,放段示例:

[squid game doll wedding ai mentality #ruinedbyai #squidgame #squidgame2 #shorts #ai #younghee.mp4]()

 很简单的一个小视频,没什么难度可言。但就是这种短小的内容配合近期的内容热点就可以拿到一波爆炸的流量。当你看到这样的流量洼地的时候,如果不能快速的跟进,那这一波大流量显然就跟你失之交臂了。做过AI视频的朋友应该都明白,这就是一个很简单的首尾帧变身(首帧的正常英熙娃娃→尾帧的婚纱英熙娃娃)+一个婚纱英熙娃娃的随机动作。如果手搓的话,需要先用gpt画一张图,然后再挑一些比较不错的图片放到AI视频平台里面去跑视频。

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/https___filesystem.site_cdn_20250504_auiJOvpZd9kB0VmNjtKSHmL8GMN0BS.png)

就像这样的变身图片,你说有多难吧?它确实没有多难,但是你一张一张手动的去roll,肯定roll一两天就头昏眼花,心态爆炸。就算你有小伙伴帮你,但是问题是把人力放到更需要判断更灵活的地方不好吗?阿里云的slogan我一直很喜欢“计算,为了无法计算的价值”。**我们尽量要把时间和人力放到有价值的事情上去,而不是被这些缩缩重复的事情消磨掉。**应该如何做到呢?那么就引出了本文的重点——n8n

# 一、平台介绍

说到n8n可能有很多朋友并没有并没有听过,但是coze、dify这类工作流平台大家应该都听说过吧?n8n应该是属于他们的威力加强版,多达400多款的内置工具,更开放的社区生态有各种各样丰富好玩的社区节点,就算这些还都不能满足你的要求,http请求节点几乎通过设置几乎能把你的所有需求满足,**最最重要的是作为开源项目本地部署免费**

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-10.png)

这是用来批量改英熙娃娃服装的工作流,我接下来将会从部署开始手把手教你怎么就会教你,搭建一个这样的工作流。

# 二、如何本地部署这个项目

n8n有三种使用方式:

1、官方服务器(需要充值会员,功能最全面);

2、本地部署(有npm和docker两种方式);

3、服务器部署

虽然官方服务的功能最全面,但是基本上我们部署一个社区版本的n8n就已经非常足够我们用了。考虑到大家也不是每个人都买了服务器,这次咱们主要讲的是最最简单的docker部署方式。而且dcker部署也有很多优势:

* 在干净的环境中安装 n8n。

* 更轻松地设置您首选的数据库。

* 可以避免因操作系统不同而导致的问题,因为 Docker 提供了一个一致的系统。

* 可以避免由于操作系统和工具差异导致的兼容性问题。

* 使迁移到新主机或环境更加简单。

## 1、下载Docker Desktop

去官方网站(地址:https://www.docker.com/products/docker-desktop/),根据你自己的系统下载对应版本的Docker Desktop,打开一直下一步安装即可

## 2、n8n部署

先打开你的Docker Desktop确保程序运行,然后打开终端(Mac)或者(cmd)windows,粘贴这两行指令然后点击回车,等n8n镜像拉取完成且容器启动就安装完成了。就是如此的简单

## 3、启动n8n

完成安装之后,你会在你的Docker Desktop中看到n8n的容器,类似下图

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-8.png)

确保你的这个容器是启动状态(就是前面的小图标是绿色的),如果没有启动的话,点击启动按钮。启动之后,n8n会暴露在端口5678上。因此这个时候你就可以登录网址 http://localhost:5678 来访问n8n了,注册登录就能访问到这个页面:

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image.png)

**没错,就是这么的简单!!恭喜你打开了新世界的大门**

# 三、配置工作流

## 1、工作流拆解

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-1.png)

大家可以观察一下这个工作流,它是由以下几个模块组成的:

|   | 每一个工作流必备的一个节点                                                                                                |

| – | ———————————————————————————————————— |

|   | 主要负责生成图片的提示词+调整提示词格式                                                                                         |

|   | 今天我会讲两种出图方式:1、gpt-image-1,这种官方api或者中转api的出图方式,它的好处是:缺点是:2、gpt-4o-image,顾名思义这一类的api主要是靠逆向gpt4o得到的api,优点是:缺点是: |

|   | 将生成好的图上传到谷歌网盘                                                                                                |

|   | 加一个循环体,可以让工作流连续出图                                                                                            |

以上就是整个工作流的基本工作模块。

## 2、准备工作

我们这个工作流有一个节点需要先授权才能使用(下图这个节点),授权的步骤比较复杂,下面我会一步一步拆解出来教给大家。

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-2.png)

### 第一步:新建工作流

先新建一个工作流,随便添加一个点击触发器

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-3.png)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-4.png)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-5.png)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-9.png)

👆🏻添加好就是这个样子,n8n有很丰富的触发器,可以用过各种各样的条件进行触发,这一次咱们就用最最简单的点击触发来构建工作流

### 第二步:添加google drive节点

点击触发器后面的加号,添加一个google drive节点,这次我们主要用到的功能是上传文件(Upload file)还有下载文件(Download file)两个功能,可以先建立其中之一的功能节点来完成google drive的授权工作,这里我首先建立的是Download file功能节点

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-13.png)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-7.png)

### 第三步:选择授权账号

添加好节点之后,我们就会直接进入节点设置页面。其他的选项先别着急填,我们首先主要是授权我们自己的google drive给n8n,点击Credential to connect with的下拉菜单,点 Create new credential添加新的账号

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-11.png)

*(这里因为我已经添加了自己的账号API,所以有一个账号)*

进来之后选择OAuth2 API这种授权链接模式

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-6.png)

后面的步骤需要你有一个google账号,如果没有的话就自己去注册,具体怎么注册就不在这展示了。

然后进入谷歌云网(网址:https://console.cloud.google.com/),新建一个project

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-12.png)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-24.png)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-25.png)

👆🏻这里随便填

然后点击google cloud旁边的三条杠

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-27.png)

然后选择APIs\&Services里面的OAuth consent screen

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-23.png)

点击屏幕中间的get started,开始信息录入

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-28.png)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-26.png)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-20.png)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-22.png)

跑完最后Finish的流程之后,点击创建即可,然后再点google drive旁边的那三道杠,选Enabled APls & services

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-18.png)

进来之后点Credentials(凭证),然后创建一个新的凭证

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-19.png)

这里我们选OAuth client lD

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-21.png)

选Web application,名字随便起,接下来我们添加Authorized redirect URls(授权的重定向 URI)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-17.png)

这里我们需要返回n8n刚才的节点配置界面,把图里面这个网址粘贴到刚才的页面里去,然后点击Create创建即可

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-16.png)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-15.png)

点击创建之后,会弹出来一个弹窗,里面会有刚申请好的客户端ID和客户端秘钥,给两行粘贴回n8n的google drive节点的对应位置,填完了之后会出现一个Sign with google按钮,点击填入刚完成申请的谷歌账号

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-14.png)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-39.png)

然后这里我们应该是进不去的,会跳出如下这张图,因为我们的n8n是本地部署的,属于测试模式,所以需要把我们这个账号添加为测试账号

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-38.png)

还是选择APIs\&Services里面的OAuth consent screen

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-34.png)

进来之后在Audience里面找到Test user,把账号添加进去即可,后续就可以完美的登陆了

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-41.png)

配置成功应该是以下这个样子⬇️

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-35.png)

**恭喜你,这个是本篇教程里面最难的部分之一,如果这块你操作成功了,就已经完成了一大部分!!后续你就可以通过n8n来去自如的上传下载文件了!!**

## 3、正式开始配置工作流

### 第一步:建立触发器

上文有讲过,这里咱们选择的是最简单的点击触发

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-33.png)

### 第二步:搭建改图提示词生成模块

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-32.png)

这一块主要由两个智能体组成,为了区分,我用了两种节点,其实都调用最简单Basic LLM Chain就很足够了。

#### 提示词生成模块搭建

新建一个Basic LLM Chain节点,进入配置页面,提示词来源选择Define below(根据如下定义)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-37.png)

如果你也要画鱿鱼游戏的娃娃,那么你就贴我下面的提示词:

[鱿鱼游戏提示词.txt]()

贴进去之后,点击下面Chat model配置大模型

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-31.png)

一般情况下我会选择openrouter,这里面有各种模型,当然你要去openrouter先注册账号申请api key,当然这里我用的是grok,因为grok我申请了内测的薅羊毛套餐,哈哈

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-29.png)

选择好了模型,创建一个新账户,把你申请好的api key填进去即可

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-36.png)

全都配置完成之后,点击Test step就可以测试这一步

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-42.png)

经过等待之后我们就可以看到这一步的生成结果。

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-30.png)

#### 提示词格式整理模块

我们可以看到上图这一整段输出的json是用markdown形式输出的,会跟我们后面的输入画图节点的提示词格式会不同,我们想要统一成自然文本格式输出,因此我们需要搭建一个提示词整理模块:

1. 添加一个Basic LLM Chain节点

2. 选择Schema格式

3. 跟我一样填好提示词

4. 把output直接点住,拉到我箭头给到位置,output里面的内容就会作为一个变量直接引用的到这里了

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-40.png)

还是点击Text Step,你就会发现这个节点输出的json里面,提示词去掉了markdown的格式被整段输出了

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-43.png)

这块也需要加大模型大家不要忘了哈\~

### 第三步:搭建出图模块

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-54.png)

#### 生图方式一:gpt-image-1方式改图

链接方式:

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-53.png)

##### 下载素材节点

gpt-image-1这种API是需要照片直接配合提示词上传即可,因此我们每次都需要一个本地的。在这里我们为了照顾搞不定代码的小伙伴,就不搞本地上传的代码了,直接用google drive的云存储文件即可。

选择google drive的download file节点

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-57.png)

把你的图片上传到刚才注册的那个谷歌账号的网盘里面,选择你刚创建好的账号,在节点的File选项中选择Form list,然后点击旁边的下拉菜单,它就会历尽你网盘里面的文件,选择你自己需要的那个图片即可,当然也可以选择其他的两种路径识别的方法

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-55.png)

##### gpt-image-1生图节点搭建

这块是咱们这个工作流的核心节点,但是n8n并没有给我们提供封装好的绘画节点来让我们串API。怎么办?就需要用到http Request这个节点

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-58.png)

打开按照我的配置填好

* 请求方式选择Post

* URL就是API的base url填https://yunwu.ai/v1/https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/edits

至于为什么要选择云雾API,主要是因为他是以人民币计算token方便又便宜,而且长期买一送一,充50给100。性价比超级高。而且他的api价格是我最近用里面最便宜的。大家如果信我的话,可以点击链接注册购买👉🏻https://yunwu.ai/register?aff=zUII

在这里我们选择用只带优质官转OpenAI分组的api,没有这个分组记得给自己的API加一下不然会报错

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-52.png)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-56.png)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-48.png)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-46.png)

点击Ceate new credential进去,然后把你申请好的api key填到Value里面就OK,Name这块填写请求头`Authorization`

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-50.png)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-51.png)

这样我们就配置好了生图节点,点击Test step,等一下就会看见输出。

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-49.png)

可能细心的朋友也发现了,输出并没有图片,而是一行乱码,其实这是一种编码格式叫做base64,我们后面要做的就是把base64格式的编码解码成图片

##### 图片解码节点

选择Convert to File节点进行解码

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-44.png)

在input里面选择show data,我们就可以看到上一个节点的输出

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-47.png)

按照我的图中的配置进行配置,然后把b64\_json这个字段拉过来

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-45.png)

点击Test step进行测试,然后你就会发现图片成功转码了

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-67.png)

这样我们就成功得到了一张图片

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-66.png)

#### 生图方式二:gpt-4o-image方式改图

链接方式:

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-64.png)

##### gpt-4o-image生图节点搭建

因为gpt-4o-image实际上是是对话输出,json里面会有很多层,所以正文部分没有办法用Form-Data类型,这里我们需要直接写json,但是不要担心json正文我已经给大家写好了,大家下载下来直接用就OK

[画图.json]()

把这段内容复制下来直接贴到json这个模块里面,这块也是直接把整理模块输出的内容直接拉过来就OK。这个api没法通过参数来规定图片比例,因此要在提示词最后加ratio==3:4去向模型进行强调生图比例(当然有时候模型也不理解从而生成其他比例的图,大家如果有什么其他好的方法可以告诉我)

注意这里的URL改成了https://yunwu.ai/v1/chat/completions,API的话需要有下图三个分组之一,可以跟刚才的那个api分开,单开一个api给这个分组填上

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-62.png)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-70.png)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-65.png)

还有一点需要注意的是,由于gpt-4o-image这种API需要图片以线上源文件链接的形式进行输入,因此我们要找一个图片托管的平台把需要用到的图片上传。我找到了一个免费托管的平台(地址:https://imgbb.com/),还有API可以用挺方便的,当然咱们这次是用不到的。

首先我们需要上传图片

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-69.png)

然后点击这个按钮

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-61.png)

进来之后选择直接(源文件)链接,然后复制这个网址即可

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-73.png)

然后替换红框里面冒号里面的链接即可,注意一定不要动冒号

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-59.png)

然后点击Test step,等一段时间,你就发现他生成成功了

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-63.png)

##### 截取下载链接节点

这么一坨json内容,但其实我们只需要那个网址进行下载,这种文字混合链接的一坨我们没有办法用http请求进行下载,因此我们需要一个大模型帮我们把这个下载链接挑出来,配置方法如下,写好提示词也是把content这一块直接过来即可。当然,记得配置大模型哈

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-71.png)

还是Test step,你就发现它的输出就只剩下载链接了

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-68.png)

##### 视频下载节点

请求方式选Get,然后把上一个节点输出的内容直接拉过来,下面按照我的配置进行配置

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-72.png)

点击Test step,你就发现这个文件已经下载好了,而且不用转码

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-60.png)

### 第四步:搭建下载节点

这一块很简单按照我给的图进行配置就可以了,但是由于我们希望的是多次进行循环生图,所以肯定是每次都需要不一样的文件名,所以就要在流程里面抓一个唯一值

在gpt-image-1方式中我主要抓的事这个种子作为文件名

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-77.png)

在gpt-4o-image方式中我抓的是生成图片的下载链接作为唯一的文件名

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-79.png)

等配置完成之后再进行Test step,你就会发现图片就已经上传到网站中了

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-81.png)

第五步:循环

如果你都测试结束没问题了之后,这时候就可以上循环进行批量生图了。添加Loop Over Items

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-78.png)

就会有这么一个东西出现,需要我们把Replace me删掉,然后让工作首尾相连

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-80.png)

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-76.png)

在配置页面这个数据不用管,之后再开始整个工作流跑起来的时候,就会开始循环了,但是需要手动停止循环

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-74.png)

#### 有一点需要注意

因为gpt-4o-image的生图方式有时候会失败,导致后面的节点拿到的全都是空的返回,所以如果你想要一直做循环的话,最好就把画图节点后面的所有节点全部选择发生错误后跳过这个节点继续工作,这样就不会因为一次没有出图而导致你的循环直接停止

![](https://res.cloudinary.com/dd9qnkvsf/image/upload/v1747493312/images/images/image-75.png)

# 五、总结

其实n8n的玩法还有很多比如说:

* 直接给提示词就能完成文生图再生视频+拼接剪辑的工作流(其实这次就能实现,不过就是成本有点高,没有往下延展);

* 只要用户填了问卷就可以直接发信息或者邮件给用户反馈同时催促销售进行转化的高效销转系统;

* 实时监控对标账号,爬取内容进行分析的实时监控工作流,等等等等……

大家如果后续有兴趣,我再做一些别的工作流玩法的分享。今天先分享到这里,**祝大家生财有术!**

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容