终极自动化 AIGC 工作流:用 n8n 调用本地 ComfyUI 实现全自动图像生成

使用 n8n-nodes-comfyui 自定义节点,将 n8n 与本地 ComfyUI 无缝集成,实现自动化图像生成。适合想构建本地 AIGC 工作流的开发者与创作者。

阅读时长: 5 分钟
共 2100字
作者: eimoon.com

前言:当自动化遇见 AI 创造力

想象一下,你是否想过能实现这样的场景:

  • 在表格里输入上百个创意,然后一键让 AI 帮你全部画出来?
  • 当收到一封特定邮件时,自动根据邮件内容生成一张配图并发回?
  • 创建一个专属的机器人,朋友们在群里发送文字,机器人就能自动出图?

本教程将介绍如何将两个开源工具——n8nComfyUI——结合使用,实现这些自动化场景。

n8n 是一个功能强大的工作流自动化工具,可以看作是开源可私有部署的 Zapier / IFTTT。它允许你通过节点连接不同的 Web 服务和应用程序,创建复杂的自动化流程。

ComfyUI 则是一个备受推崇的、基于节点的 Stable Diffusion 图形用户界面。它以其极致的灵活性和可定制性,成为许多 AI 绘画爱好者的首选工具。

本教程将带你一步步学习如何安装 n8n-nodes-comfyui 这个社区节点,并在 n8n 中远程控制你本地的 ComfyUI,实现全自动、可编程的图像生成工作流。

准备工作:确保你的弹药库充足

在开始之前,请确保你已经准备好了以下环境:

  1. 一个正在运行的 n8n 实例

  2. 一个正在运行的本地 ComfyUI 实例

    • 你需要有一个可以正常生成图片的 ComfyUI 环境。
    • 最重要的一点:在启动 ComfyUI 时,必须添加 --listen 参数。这会让 ComfyUI 监听来自局域网内的所有请求,而不仅仅是本机。启动命令如下:
      python main.py --listen
      
      只有这样,n8n 才能成功连接到它。
    • 对于图形化安装包用户:您可能不需要直接输入命令。直接启动即可。

第一步:在 n8n 中安装 ComfyUI 社区节点

为了让 n8n “认识” ComfyUI,我们需要安装一个由社区开发的连接节点。

  1. 打开你的 n8n Web 界面。
  2. 进入 Settings -> Community Nodes
  3. 点击 Install,然后搜索 n8n-nodes-comfyui
  4. 找到该节点后,点击安装。

在 n8n 社区节点市场搜索并安装 n8n-nodes-comfyui

安装成功后,n8n 可能会提示你需要重启实例。按照提示重启 n8n 服务。重启完成后,你就可以在节点列表中找到并使用全新的 ComfyUI 节点了。

第二步:导出你的 ComfyUI 工作流(API 格式)

ComfyUI 节点的核心工作方式是:接收一个 ComfyUI 工作流的 JSON 文件,并执行它。所以,我们需要先在 ComfyUI 中准备好一个工作流,并导出为 API 格式。

  1. 在 ComfyUI 中,搭建一个你想要自动化的基础工作流。可以是一个简单的“文生图”流程,例如:Load Checkpoint -> CLIP Text Encode (Prompt) -> KSampler -> Save Image
  2. 确保这个工作流可以正常运行并生成图片。
  3. 点击右侧菜单栏中的 Save (API Format) 按钮。这会导出一个包含工作流完整定义的 JSON 文件。

Save (API Format)

请用文本编辑器打开这个 JSON 文件,复制里面的所有内容。我们稍后会在 n8n 中用到它。

第三步:构建你的第一个 n8n 自动化出图流程

现在,让我们回到 n8n,开始构建实用的工作流。

  1. 创建新工作流并添加 ComfyUI 节点

    • 在 n8n 中创建一个新的工作流。
    • 添加一个 ComfyUI 节点。
  2. 配置 ComfyUI 节点

    • Credential (凭证):第一次使用时,你需要创建一个新的凭证。

      • 点击 Create New
      • Base URL 中,填入你 ComfyUI 的地址,通常是 http://<你的IP地址>:8188。如果你在同一台机器上运行,也可以使用 http://127.0.0.1:8188
      • 如果使用docker 部署需要使用host.docker.internal 替换你的ip地址
      • 保存凭证。
    • Workflow JSON:将你在第二步中从 ComfyUI 导出的 API 格式 JSON 内容,完整地粘贴到这个输入框中。

  3. 动态化你的工作流 这是最核心、最强大的部分!我们不希望每次都运行一成不变的流程,而是想动态修改参数,比如每次都用不同的 Prompt。

    • 在 ComfyUI 节点的配置中,找到 Properties -> Input Overwrite
    • 点击 Add Property
    • Node ID:填入你想修改的节点的 ID。你可以在之前导出的 JSON 文件中找到它,每个节点都有一个唯一的数字 ID。例如,CLIP Text Encode 节点的 ID 可能是 6
    • Input Name:填入你想修改的参数名称,例如 text (对于 Prompt 节点)。
    • Input Value:在这里,你可以使用 n8n 的表达式来动态赋值!

    举个例子,我们可以先在 ComfyUI 节点前添加一个 Set 节点,用来设置我们的 Prompt。

alt text

Set 节点中,我们创建一个名为 prompt 的值,内容是 a beautiful cat。 然后回到 ComfyUI 节点的 Input Overwrite 配置中,在 Input Value 里填入表达式 {{ $json.prompt }}

这样设置后,ComfyUI 节点在执行时,就会用 Set 节点中定义的 “a beautiful cat” 去替换掉原先工作流中 ID 为 6 的节点的 text 输入值。

第四步:执行并验证结果

配置完成后,点击 Execute Workflow 运行你的工作流。

执行成功后,你可以在 ComfyUI 节点的 Output 标签页看到返回结果。它会返回一个包含生成图片的二进制文件。n8n 会非常智能地直接将其渲染成图片,让你预览。

alt text

从这里开始,你就可以在后面连接其他节点来处理这张图片了,比如:

  • 使用 Write Binary File 节点将图片保存到本地磁盘。
  • 使用 Telegram / Discord 节点将图片发送到你的聊天群。
  • 使用 HTTP Request 节点将图片上传到图床或云存储。
  • …等等

结语与更多玩法

恭喜你!你已经实现了 n8n 与 ComfyUI 的对接。这不仅仅是生成了一张图片,更是为你打开了一扇通往高级自动化 AIGC 的大门。你可以继续探索更多复杂的玩法:

  • 批量生产:用 Google SheetsAirtable 节点读取一个表格,里面包含上百条 Prompt 和参数,循环执行 ComfyUI 节点,实现全自动批量出图。
  • Webhook 触发:创建一个 Webhook 节点,接收来自其他应用的请求,动态生成符合需求的图片。
  • 多模型联动:用一个 AI 节点(如 OpenAI)生成创意 Prompt,再将这个 Prompt 传递给 ComfyUI 节点去作画。

自动化与 AI 的结合拥有无限的潜力。希望这篇教程能为你提供一个好的起点,激发你创造出更酷、更强大的个人工作流!

📬 关注我获取更多资讯

公众号
📢 公众号
个人号
💬 个人号
使用 Hugo 构建
主题 StackJimmy 设计