首页 > Ai资讯 > Ai知识库 > ComfyUI学习笔记2,一文看透Workflow

ComfyUI学习笔记2,一文看透Workflow

发布时间:2024年06月06日

什么是ComfyUIWorkflow

WorkflowComfyUI的精髓。所谓Workflow工作流,在ComfyUI这里就是它的节点结构及数据流运转过程。

上图,从最左边加载模型开始,经过中间的CLIP Text Encode对关键词Prompt做处理,加入一个初始的Latent Image,然后是采样器,VAE解码,最后得到生成的图像。

通过节点的方式,除了类似webui那样去填写参数,还可以观察处理过程,这是ComfyUI设计巧妙之处。每次生成的时候,当程序运行到某个环节时,该环节对应的节点就会自动高亮。各节点按当前运行状态依次高亮,非常有利于理解生成式AI模型(Stable Diffusion)的基本原理。

如上图,当运行到采样器在工作时,采样器KSampler节点的绿色框高亮,此时正对应着命令行窗口中的生成进度。

类比webui的使用体验:

1.调好参数

2.点击生成

3.等待结果

除了观察命令行窗口能获得一些生成进度中的信息,在webui界面上,基本还是传统软件的使用思维:

Workflow的快速复现

1.
webui
中的png info

先回忆一下webui,当想要复现一张图像的生成参数时,可以把这张图拖到png info中进行查看。

例如在C站中查看这张AI聊斋的图:

可以直接右键保存它,然后拖到webuiPNG
Info
里,即可查看包含关键词在内的所有参数。

SD
webui
是把这些信息存在了PNG文件的chunk里,可以简单理解:PNG文件里某个数据块,是可以存储额外的文本信息的。

现在最新的webui似乎对存放的字段做了更新,直接右键点击图片,打开属性,在详细信息备注里就可以查看:

当然很多通用的图像软件都可以查看,例如XnView,在其自带的Exif Tools里就可以看:

额外知识:这些信息也可以从图片中抹去,详见去年写的这一篇:

关键词保护!如何从StableDiffusion(webui)生成图片中抹去prompt信息

2. ComfyUI中的Workflow

回到ComfyUI,每次生成的这些参数,在ComfyUI里也可以用类似的方式保存和读取。

ComfyUI生成一张图:

同样用右键查看属性:

没有找到相关信息,没关系,这只能说明Windows资源管理器能读取的字段里没有。用XnView MP打开它:

这就能看到了,它分了两个字段,一个是Prompt,里面包含类似png info的信息:

还多了一个字段是Workflow

太长删掉了一些。能看出来里面存放的就是那些节点信息,例如编号id、位置坐标pos等。当ComfyUI加载这些信息时,就能完美复现所有的节点结构,以及每个节点中的各项参数。

3. ComfyUI加载生成图片中的Workflow

webui通过png info来反查参数,那么在ComfyUI中呢,更简单了,直接把生成的图拖到网页窗口中即可。

拖进窗口放手可得:

提醒:拖进去前如果需要的话记得备份之前的Workflow

另外,ComfyUI也可以专门保存Workflow文件,点击侧边栏中的SaveLoad,进行保存与加载:

保存后得到的文件默认是workflow.json,可以用文本编辑器打开查看:

4. Workflow信息与工作界面截图存在一起

Workflow信息除了能单独存成json文件,或者存在生成的图片中,还能存在工作界面截图中,这样更加直观:

安装这个插件即可:ComfyUI-Custom-Scripts 

https://github.com/pythongosssss/ComfyUI-Custom-Scripts

该插件有很多脚手架功能,保存Workflow Images是其中一项。


https://github.com/pythongosssss/ComfyUI-Custom-Scripts/tree/main#workflow-images

ComfyUI插件的安装方法,放在下一课中。

Workflow资源

在这个网站里有大量ComfyUI Workflow,可以直接下载,然后用本课的方法打开。https://comfyworkflows.com/

WorkflowData Driving

多说两句,webuipng info,存的是data,是静态的,更像是web2.0时代的数据驱动。在使用webui时,关注点是生成的图片结果,以及相应的关键词与各项参数。如传统软件一样,还是相对黑盒。

ComfyUIWorkflow的存取方式,在关注数据的基础上多了一层工作流,即除了结果,还关注内部过程。这可能用多了就会有体会,会引导你下意识的去想着如何优化或改造工作流,带来更多的灵活可能性。

另,节点式与dataflowworkflow也不是新事物,我2005年开始接触的节点式编程环境MaxMSP,从其诞生距今已经三十多年了。


图自Wiki,上古版本的MaxMSP界面

出自:https://mp.weixin.qq.com/s/geUKpopRa4W9n08SlF2wIA