出差了一周,回来再写Flux.1 Kontext[dev]总感觉有点晚,那不如直接聊聊ComfyUI好了。
这篇写ComfyUI,下篇还能再写Kontext。
嘿嘿。

当我跟大多数朋友提到ComfyUI,得到的反馈最多的就是「难」,然后就是「我显卡不行」。因为这些理由,他们就选择把了解都没了解过的ComfyUI直接拒之门外。
但是,有没有一种可能,ComfyUI并没有他们想象的那么难?有没有一种可能,不需要高端显卡也能使用ComfyUI?
世界上最高的门槛,往往是「你觉得它有门槛」,世界上最难的事,往往叫「你觉得它难」。
不管你怎么觉得,反正我觉得,等你读完本文,应该就能够入门ComfyUI,并且能够在ComfyUI环境下自己搭建一个图片生成工作流。
别着急,一步步跟着我来。
首先,到下面这个视频的评论区下载秋叶ComfyUI整合包:
https://www.bilibili.com/video/BV1Ew411776J/
解压并运行绘世启动器,在版本管理中把ComfyUI升级到最新版本。

没有任何命令行和代码,全程只需要进行可视化的点击操作。更新完成后一键启动,系统将自动在浏览器中打开ComfyUI的可视化节点工作流界面。
(如果因为网络环境问题无法完成升级,这里就不便教导了,建议自行补习一下冲浪技能XD)

默认加载的工作流如上图,是一个经典的加载SD模型画瓶子的工作流,运行的结果就像这样:

但我们今天不按照正常的学习AI绘画的路径来学习,上面这个工作流是什么意思,你现在完全不需要懂。什么Checkpoint、正负向提示词、K采样器……我们现在都先不管它。
不过既然到这儿了,这里有一个对ComfyUI的典型认知误区,我还是稍微展开一下。
很多人,尤其是一些营销号,喜欢把SD(Stable Diffusion)和ComfyUI并列,典型的常用句式如「应该学SD还是学ComfyUI」。如果你觉得这句话没问题,那我问你,上面那个工作流,我刚刚在ComfyUI里调用SD1.5的模型(麦橘写实v7)画了个瓶子,这算什么呢?
ComfyUI和Stable Diffusion并非一个性质的东西。
你可以这样粗暴地理解,在当初还没有黑森林工作室,没有FLUX.1的时候,ComfyUI就是一套基于节点工作流的Stable Diffusion的GUI(图形用户界面)。而当时与之相对的,是Stable Diffusion的另一套GUI,叫做AUTOMATIC1111(也被简称为A1111)WebUI,这也就是现在营销号口中所说的SD(现在除了A1111,也还有其他的WebUI分支,比如ControlNet作者敏神的Forge)。
后来有了FLUX.1,不论是ComfyUI还是WebUI,也都支持了FLUX.1模型的调用。
所以,你现在应该理解,ComfyUI并非像SD或者FLUX.1一样的生图模型,它是一套图形用户界面。你可以通过ComfyUI使用Stable Diffusion,也可以通过ComfyUI使用FLUX.1[dev],也可以通过ComfyUI使用FLUX.1Kontext,也可以通过ComfyUI调用生图API……甚至,只要有合适的节点,你也可以在ComfyUI中使用ChatGPT。
现在,我们就先来安装一个在ComfyUI中使用LLM的节点。
打开节点管理器:

搜索LLM_party,安装这个扩展。

安装好后如图所示:

按要求重启,又经过一系列的安装:

再次回到浏览器的节点工作流界面,我们把那个画瓶子的工作流完全删掉,在左侧节点库添加进一个「llm_party」的「API LLM通用链路」节点和一个「API LLM加载器」节点:

看到「API LLM加载器」需要填写的这些项目,是不是回到舒适区了?之前做过LLM API调用的朋友应该都很熟悉,就是分别填写模型名称、接口地址和API KEY:
(如果不熟悉,参考这篇文章:DeepSeek服务器总繁忙怎么办?不愿稍后,不如试试通过API续命你的聊天儿)

例如,我们调用硅基流动的DeepSeek-V3,就是填成这样:

如果你用过Coze,应该能理解节点工作流的执行逻辑,就是顺着这个工作流的节点,先执行A,再执行B,然后执行C。

ComfyUI的执行逻辑跟Coze几乎完全一样,只是把Coze中每个节点的输入输出参数,以更形象直观的可连接端点的形式体现了出来。
只要上一节点右侧和下一节点左侧有端点相同(颜色相同),那么它们就可以相连。例如下面两个节点:

「API LLM加载器」右侧的model和「API LLM通用链路」左侧的model对应相连,意思就是通过「API LLM加载器」加载上硅基流动的DeepSeek-V3的模型,把它加载进了「API LLM通用链路」节点当中。
然后,对于「API LLM通用链路」节点,我们还缺prompt的输入,还有大模型执行结果的输出。
对于prompt,我们可以在「API LLM通用链路」节点之前,加入两个字符串输入节点;而对于结果输出,我们则可以直接连接一个「显示文本」节点,用于展示assistant response的输出结果。
像这样连接:

我们在连接system prompt input(系统提示词输入)的「输入字符串」中填写:
你是一个诗人,不管别人给你什么关键词,你总能根据它作一首诗。
在连接user prompt input(用户提示词输入)的「输入字符串」中填写:
小猫
点击运行。
一首关于「小猫」的诗,就出现在了右侧的「显示文本」节点中。

我们再来复盘一下上面执行的这个简短的工作流:
1.通过「API LLM加载器」节点,加载了来自硅基流动的DeepSeek-V3模型。
2.通过「输入字符串」节点,设定了系统提示词:你是一个诗人,不管别人给你什么关键词,你总能根据它作一首诗。
3.还是通过「输入字符串」节点,输入了用户提示词:小猫。
4.「API LLM通用链路」节点接收到了上面1、2、3的输入,并执行。
5.通过一个「显示文本」节点,将「API LLM通用链路」的执行结果——一首AI生成的小诗《猫的哲学》——显示了出来。
这就是ComfyUI的基本运作逻辑。
理解了基本运作逻辑,我们继续对这个生成小诗的工作流进行微调,让它更加贴近我们的实用场景。
观察「API LLM通用链路」节点的端点,可以发现,除了文字prompt输入外,我们还可以进行图片输入。
正好,我们就可以做一个图片反推的功能。

硅基流动刚刚上线了智谱新发布的视觉模型,我们就用这个:

直接在API LLM加载器中修改掉模型名称。

为了上传图片,我们还需要添加一个「加载图像」节点:

用户提示词可以去掉,系统提示词改成:
请分析图片:
然后,执行。
我们就得到了GLM-4.1V-9B-Thinking模型对这张图片的反推:

不难吧。
短短几分钟之内,我们已经基于「 API LLM通用链路 」这个节点开发了两个小型工作流了。
这时候就要提到新手容易出现的另一个误区了:「像它那样复杂的工作流我搭不来。」
学会了搭建这种几个节点的小型工作流以后,一定会有人说:「虽然你说的这个我学会了,但我只会这样简单的工作流又有什么用呢?」
但是,朋友们。
你需要知道的真相是:当然复杂工作流的搭建跟技术能力有关系,但那可能只占20%,另外80%则是跟需求相关。
例如说,我现在已经有了一张图片,但我还希望通过AI生成一批跟它类似的图片。
我们拆解一下这个任务要怎么完成:
1.首先我要能描述现在有的图片。
2.然后才能编写生成类似图片的提示词。
3.最后要把提示词输入给可以生成图片的大模型来生成新图片。
这其中可能还会涉及到一系列语言的翻译和转换问题。
不难发现,第1条,这个任务的起点,就是刚才的反推图片工作流。
执行刚才的反推工作流之后,得到的就是图片的描述。
然后我们要执行第2步,编写提示词。
这一步可以通过AI来完成,我们直接在前面的生成结果后面继续接一个「API LLM通用链路」节点,来生成生图的提示词。

加载一个大语言模型,比如Qwen/Qwen3-235B-A22B。
系统提示词设置如下:
请帮我根据图片描述生成一段用于文生图的纯英文prompt。你的输出结果将直接用于图片生成,请直接输出生成的prompt内容,不要带有任何解释性文字
图片分析结果直接作为用户提示词。
直接生成一段英文prompt,使用「显示文本」将它展示出来。
为了便于查看,在「显示文本」的后面又可以接一个谷歌翻译的节点,将英文翻译成中文,专门用于查看。
现在的工作流就变成了这个样子:

接下来就到了第3步,生成图片。
最新版的ComfyUI内置了FLUX.1的API生图节点(付费)。我们直接在空白的地方双击,在搜索框中输入”FLUX”,找到「Flux 1.1 [pro] Ultra Image」,单击即可添加。

生图节点左侧的prompt端点,向前连接上刚才Qwen生成的生图提示词,右侧的image端点,向后接上一个「保存图像」节点用于图片保存。

整个仿图的工作流就这样完成了。

虽然其实算不上复杂,但这个工作流要比前面三级节点组成的小型工作流完备多了。
你说它搭建起来更难了吗?并没有。
需求足够明确,为了实现这个需求,需要用什么节点,就添加什么节点,工作流自然就会丰富起来。
而这,也就是复杂工作流的基本搭建逻辑。
你看,到现在为止,我们没有调用过本地显卡。
并且搭建了一套完整的图片反推再生图的工作流。
能够做到这一步,你已经可以说是入门ComfyUI了。
现在,我们再回来看刚才的SD本地模型画瓶子工作流,应该也很容易理解了:
无非就是把颜色相同的端点相连,加载模型,设定正负面提示词,设置图片尺寸,采样、解码,生成图片。

你可能又想说,SD过时了,我要用FLUX。
当然可以了:

注意跟上面的SD工作流对比,你会发现Flux.1[dev]的工作流只有两点差别:
1.FLUX不需要反向提示词,留空即可
2.正向提示词后面增加引导节点
当你这样拆解开来看,你会发现所有的变化其实都只是微微调整。
有的FLUX.1模型并没有被打包成一键加载的checkpoint,这时候需要把UNet / CLIP / VAE 分别加载,注意对比下面的工作流和上面的工作流:

只有加载本地模型的部分发生了变化,其他地方都不需要改变。
也就是把简易版的checkpoint加载器,分别拆分成了UNet / CLIP / VAE 加载器(甚至我在模型后面又加了一个LoRA节点)。
现在,我们再来搞一下排列组合。
用上面的Flux.1[dev]本地生图工作流,替换掉再之前的仿图工作流中的API节点,也就是这个节点:

于是我们就有了一个基于本地Flux.1[dev]模型的仿图工作流。

用新的方案替换掉原工作流中实现相同功能的节点(组),是我们最常见的工作流优化动作。
那,怎么获得新的方案呢?
除了自己冥思苦想以外,更有效的途径是多学习(玩)别人的工作流。
很多AI绘图爱好者社区,比如国外的civitai,国内的liblib、tusiart等等,都有无数大神上传了各种用途的优秀工作流。
你获得到的别人的工作流常见有两种形式,一种直接就是一个json文件,另一种是通过该工作流生成的图片,其中带有json文件一样的信息。这两种形式无论是哪种,使用方式都是直接把文件拖到自己的ComfyUI界面中即可,如下图:

松开鼠标,工作流就被加载进你的ComfyUI了。

当然,因为这个工作流是我自己做的,所以我加载起来十分丝滑。
但如果你是刚刚才安装ComfyUI的话,大概率会满屏红框框,这就代表红框中的节点并没有在本机安装。
这时候不要慌,点击右上角的「管理器」(更新到最新版它就是在右上角,旧版会在右侧),然后在管理器中点击「安装缺失节点」,对缺失的节点进行安装就可以了。

工作流我放在这里,供你练习:
https://pan.baidu.com/s/1WGNnJKhh5tKYxk9ld2b7CQ?pwd=ebj2
如果你下载的其他工作流作者都像我一样有良好的习惯,把每一部分的功能标注得清清楚楚,那就更方便了。

在工作流中删除不需要的部分,只保留你想要的模块,然后再安装缺失节点即可。
例如,我们只保留这个本地反推:

它就刚刚好可以替换掉我们在上面做的那个从硅基流动调用智谱视觉模型的反推模块,原先的工作流就变成了下面这样。对我的显卡来说,本地反推工作流的运行速度要比等待硅基流动的API反馈快上不少:

你看,我们从刚开始的调用DeepSeek写诗,到现在都已经可以搭建出来带有三个功能版块的仿图工作流了。
ComfyUI并没有多难,只要理解它的运作逻辑,入门还是很轻松的。
好了,今天就到这里,希望你已经成功入门了ComfyUI。
下一篇我们继续说在ComfyUI中使用Flux Kontext进行图片编辑。

发表回复