ComfyUI 基本原理

Webui vs Comfyui

Comfyui 和 Webui 都是基于 Stable Diffusion 开发,实现文生图、图生图、ControlNet 控制、高清放大、局部重绘、Animatediff 生成视频等

  • Webui 具有整合好的可视化界面,可以在浏览器上对各个参数进行点击、选择,学习成本低
  • Comfyui 是一个基于节点式的操作流程,没有固定的整合使用界面,一个个被线连接的节点,构成一个从输入到输出的完整工作流程
    • 相比于 Webui 只能按照预设好的方式,调节有限的参数来进行一个固定的流程生成,ComfyUI 自由度和灵活性很高,可以进行各种功能的节点自由组合
    • 同时,有很多在线版ComfyUI,例如 LiblibAI 等(LiblibAI 默认预安装了非常多的节点插件,以及模型库,各种模型不需要下载,但是使用的是平台的计算资源,需要排队,而且有使用次数限制,需要付费)

基本原理

  • 节点系统:ComfyUl通过一个基于节点的图形界面来操作,每个节点代表图像生成过程中的一个步骤,如加载模型、文本编码、图像采样等
  • 工作流执行:用户通过连接这些节点来建立一个完整的工作流,每个节点的输出可以连接到其他节点的输入,形成一个数据处理流,图像生成过程遵循这些节点连接定义的路径执行
  • 模型和数据处理:它支持多种类型的模型和数据处理节点,如CLP模型节点用于文本处理,KSampler节点用于图像采样和噪声去除,VAE节点用于图像与潜在空间的转换等
  • 异步队列系统:comfyUl内置了一个异步队列系统,可以优化和管理图像生成任务,提高效率和性能

工作流 Pipeline

新建一个工作流,默认是文生图工作流,从左到右分别是:条件输入模块、潜空间、像素空间

基本逻辑:首先选择一个大模型,输入正向提示词和负向提示词,指定生成图片的输出分辨率,然后进入整个工作流的核心节点,K采样器,就是潜空间模块,K采样器根据前面的条件输入模块的要求,通过不断加噪去噪的过程,生成符合要求的图片,通过VAE解码这个节点,把潜空间的图像最终转为像素空间的图像

  • 其中,提示词内容可以大致分为两大类,分别是细节描述生图标准:

    • 细节描述主要是对整体画面内容进行书写,主要分为人物主体特征,例如:服饰,发色,五官,面部,动作...,以及场景特点,例如:室内环境,室外环境,整体场景的描述,内部细节的描述等等;还有场景设定,像是:白天,夜晚,天气,光线方向等,同时也可以在前面加入一些形容词,例如beautiful,happy,让整个画面的描述带有一定的感情色彩
    • 生图标准主要是指对于有关图片质量产出的标准进行提示词书写,主要为画质,例如8K,高分辨率,清晰等提示词,以及画风,例如动漫,彩绘,写实,抽象等决定画面风格的提示词
    • 负向提示词,它决定着不希望画面中出现什么内容,例如低画质,额外的脚,缺少手指等等,然后再根据图片产出重新将不希望出现的画面加入负向提示词中
  • 双击空白部分,就可以添加组件,例如添加 LoRA、ControlNet 等

    • 首先需要确定,LoRA节点和ControlNet节点应该放置在哪个模块里,LoRA模型和ControlNet控制都属于限制最终图像生成的前置条件,所以肯定是要在条件输入模块里添加的,双击空白部分,添加LoRA加载器,LoRA实际上就是大模型的微调模型,依附在大模型上,所以只需要把 LoRA 加载器串联在大模型后面即可
    • 可以观察到,不同节点之间接口颜色和名称不同,不同颜色的接口是不能相互连接的,把相同颜色的接口对接一下,直接连起来,然后选择下载好的LoRA模型,这里选择的是卡通的LoRA风格,这样就把LoRA加载进来了,在LoRA加载器还可以调整LoRA模型的权重值

  • 添加 ControlNet 首先需要安装ControlNet的插件和下载各个ControlNet控制器的模型,然后双击空白部分,添加ControlNet应用节点,看到它的前置输入接口是条件,在工作流里找到正向提示词后面有一个条件接口,那么ControlNet应用节点是放置在正向提示词后面的,放在正向提示词后面串联起来。条件接口的下面还有ControlNet和图像两个接口
  • 在ControlNet接口前面接入ControlNet加载器,用于加载ControlNet模型,例如这里选择的是Openpose的姿态模型,模型有了以后,还需要给ControlNet指定一个姿态的图片,首先在图像接口接上一个Openpose姿态预处理器,然后添加一个图片节点,这样ControlNet模块就部署好了

  • 修改一下正向提示词、输出图像的分辨率、调整采样步数等参数,就可以生成一张同款姿态的卡通图片了~

大部分工作流都是相同的运行逻辑!大多数天马行空的想法都能通过一个一个节点相互连接来实现~

ComfyUI 源码分析

这个文章写的很详细:

ComfyUI源码分析-NODE RUNTIME TRACE - 知乎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值