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 - 知乎

03-08
### ComfyUI简介 ComfyUI是一个用于创建和管理图形界面应用程序的框架,旨在简化开发流程并提高效率[^1]。该平台支持多种插件扩展功能,如ComfyUI-Manager、ComfyUI-Translation语言包、Insightface人脸识别组件、ComfyUI-Crystools资源监测器以及ComfyUI-Custom-Scripts实用工具等。 ### 安装指南 对于希望快速上手的新用户而言,官方提供了最新的ComfyUI整合包下载选项[^3]。此整合包已预先集成了所有必要的依赖项与配置文件,只需解压缩至本地磁盘中的指定目录下便能立即启动应用。随附有详尽的文字版安装手册供查阅参考,确保每位使用者都能顺利建立起运行环境。 具体操作如下所示: ```bash # 下载链接通常位于官方网站首页显著位置 wget https://example.com/path/to/comfyui-latest.zip unzip comfyui-latest.zip -d /your/preferred/directory/ cd /your/preferred/directory/ # 阅读README.md获取更多细节指导 cat README.md ``` ### 使用教程 初次接触ComfyUI的朋友可能会对其工作原理感到陌生,在这种情况下建议先观看一些入门级的教学视频或阅读图文资料来熟悉基本概念和常用命令。随着实践次数增多自然会逐渐掌握更高级的功能特性。 例如,当涉及到特定节点的操作时(比如Reactor Node),可参照专门针对此类情况编写的文档来进行学习[^2]。这些材料往往涵盖了从基础设置到复杂场景下的应对策略等多个方面,有助于加深理解程度的同时也能够有效减少错误发生的概率。 ### 常见问题及解决方案 面对可能出现的技术难题,除了利用搜索引擎查找相似案例外还可以尝试访问社区论坛寻求帮助或是直接联系技术支持团队获得专业的解答和支持服务。另外,定期关注项目仓库里的Issues页面也是不错的选择之一——这里不仅记录着其他开发者曾经遭遇过的挑战及其对应的处理办法,有时甚至还能提前了解到即将推出的改进措施呢!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值