【ComfyUI学习笔记01】下载安装 | 运行第一个工作流 | 学习思路

【ComfyUI学习笔记01】下载安装 | 运行第一个工作流 | 学习思路

  • 前言
  • 下载安装
    • ComfyUI的下载和安装
    • ComfyUI Manager 的下载和安装
  • 运行第一个工作流
    • 初识节点 (Nodes) 工作流
    • 案例1 Image Generation
      • 绘制流程图,确定关键节点
      • 放置关键节点,确定连接顺序
      • 补充中间过程,完成流程搭建
    • 学习思路
      • 明确应用方向
      • 抛弃细节,块状记忆

前言

你好!这是博主学习ComfyUI时的心得笔记,从零开始。博主是工业设计专业的学生,学ComfyUI是为了批量和易控地渲染手绘图以及生成特定人物,主要面向应用,不会在底层原理上有过多深入。每期的推荐资料会放在文章末尾。
本系列一般不涉及节点参数的解读,推荐需要时,在Github上检索学习。
初来乍到,请多指教!

下载安装

本章节将介绍ComfyUI的下载和安装以及后续重要插件 ComfyUI Manager 的下载和安装。

ComfyUI的下载和安装

  1. 国内网盘下载 ,在bilibili等平台搜索“ComfyUI”下载,往往会有不错的结果,非常多博主1友好地免费提供网盘下载;
  2. 【推荐】Github下载,直接访问ComfyUI官方团队的库2,进行下载(需要翻墙 / 访问国内镜像网站);
    • 下载“ComfyUI_windows_portable_nvidia.7z”即可
    • 解压完毕后,请首先阅读README_VERY_IMPORTANT文件,以下是对其的中文翻译:
如何运行:如果你有NGPU,运行 nvidia gpu.bat (推荐使用)如果你想使用低速的CPU,运行 cpu.bat如果你在进入页面时遇到了一个红色的报错,大概是由于你没有在ComfyUI\models\checkpoints中保存任何模型,你可以在 https://huggingface.co/Comfy-Org/stable-diffusion-v1-5-archive/blob/main/v1-5-pruned-emaonly-fp16.safetensors 中下载Stable Diffusion 1.5,放入checkpoints文件夹更新ComfyUI的推荐办法:访问update文件夹,运行update_comfyui.bat想要与Python依赖一同更新的话,访问update文件夹,运行update_comfyui_and_python_dependencies.bat如果你在电脑上已经在WebUI中下载了不少模型,并且想通过ComfyUI调用:
访问ComfyUI文件夹,找到extra_model_paths.yaml.example,将其重命名为extra_model_paths.yaml,使用记事本打开,将WebUI中的模型文件夹地址复制进去,保存即可
  1. Git下载,git clone是后续更新、下载ComfyUI及其节点包重要的途径,推荐尽早安装下载3,安装过程中,只需要修改安装地址即可(建议 D:/ 等软件盘符Program Files文件夹),其他内容保持默认。

ComfyUI Manager 的下载和安装

ComfyUI Manager是使用ComfyUI必要的插件,它可以快速帮助我们下载、补全某些非常便利的节点,后续我们会逐渐探索ComfyUI Manager的强大功能。

Github作者4提供了4种ComfyUI Manager的安装方案,这里重点推荐2种:

  1. 【推荐】Git Clone安装,访问ComfyUI/custom_nodes文件夹,在地址栏键入“cmd”打开命令提示栏,输入以下内容后回车:

git clone https://github.com/ltdrdata/ComfyUI-Manager comfyui-manager

cmd访问custom_nodes文件夹

  1. .bat 安装,在下载好git后,把install-manager-for-portable-version.bat保存到 ComfyUI_windows_portable 文件夹中,双击安装
    • 请右键该链接,“链接另存为”

启动ComfyUI,在浏览器界面角落出现以下图标,即说明安装成功在这里插入图片描述

运行第一个工作流

这里,我们将着手搭建我们的第一个ComfyUI工作流,它是一个基础的文本转图像 (Text2Img) 工作流,如下图所示,通过它,我们可以对ComfyUI基本的运行过程有所了解
Text2Img工作流

初识节点 (Nodes) 工作流

从底层讲,节点工作流中,每个节点都是一段封装好的代码,搭建节点工作流的过程,就是不断调用代码的编程过程。它具备过程透明,高自由度的优点,但同时因其存在大量节点,且逐级运行,也存在强调逻辑,学习,记忆成本高的“缺点”。
在搭建节点工作流的过程中,知道我有什么(文本/待处理图片)和我要什么(生成图片/放大图片/局部重绘)很重要,它是我们的重要切入口,可以帮助我们梳理过程环节,这同样是编程思维的再次体现。

既然是一种编程任务,那么对初学者来说,流程图无疑是非常重要的工具

本案例流程图

案例1 Image Generation

案例文件"Image Generation"由官方 Browse Templates 提供。
在这里插入图片描述
在流程图中,已经梳理好了生成一张图片需要的关键过程,接下来,我们将进一步了解具体的实现步骤

绘制流程图,确定关键节点

(绘制过程略)我们只有得知图片大小内容后,才能生成我们的图片,而内容是根据文本(图片)描述图片风格确定的,因此,我们需要:

  • 图片大小控制节点: Empty Latent Image
    Empty Latent Image
  • 文本(图片)描述节点(本案例输入内容为文本):CLIP Text Encode(Prompt) CLIP Text Encode(Prompt)
  • 图片风格节点(即.checkpoint大模型节点)导入:Load CheckpointLoad Checkpoint
  • 图片输出节点(保存图片):Save Image
    在这里插入图片描述

放置关键节点,确定连接顺序

在本章节开头已经展示了完整的连接顺序,它并非一气呵成,逐级推进,而是以先放关键节点,再补充中间过程的思路确定的:

  • 找到并放置关键节点
    快速调用节点

除了通过快速检索栏调用,ComfyUI同样支持右键呼出菜单栏调用,通过菜单栏中的命名,可以猜到节点属于哪里,这对不知道节点叫什么,但知道它要起什么功能时很有帮助
右键菜单栏
关键节点及其顺序

补充中间过程,完成流程搭建

实现数据的处理和流通,是本环节的关键。在ComfyUI中,两个节点块有相同颜色的小圆点,表示可以直接流通该数据,如上图中Load Checkpoint右边的黄色CLIP和CLIP Text Encode(Prompt)左边的黄色clip。那如果没有颜色对应的小圆点呢?那就说明需要一些中间过程来对数据进行处理(Encode 编码/Decode 解码),在本案例中,有以下中间节点:

  • 采样处理节点:KSampler,它类似于WebUI中的参数设置面板,包括生成图片过程中的随机种子、步数、采样器等参数都由此节点控制
    KSampler
  • 潜变量图像解码节点:VAE Decode,KSampler采样完成后,生成的是Latent Image相当于“底片”,但我们需要的是一张可视图片,因此需要通过变自分解码器 VAE Decode 对其进行“显影”转换
    VAE Decode
    节点添加完毕后,将所有对应颜色的小圆点相连,即可完成我们案例1的工作流搭建。

学习思路

明确应用方向

ComfyUI作为一个复杂平台,可以实现非常多功能,满足不同生产需要。但复杂意味着决策,在打开、学习ComfyUI之前,先问问自己,想用它来干什么,然后直接去查看相关的应用即可,小白千万不要在一开始陷入对原理、技术的探求,就跟学英语时,不要一来就拿着牛津词典干啃一样。

以博主自身为例,博主是工业设计专业的学生,需要大量用到草图上色,快速渲染这样的图生图功能,偶尔用到人物姿态生成、帧图片等其他功能,不会把精力花费在实现以上功能外的地方。

抛弃细节,块状记忆

承接上文,抓住“应用方向”这个关键,就可以快速查找到想实现目标需要的关键环节。ComfyUI的节点成百上千,挨个记忆是不现实的,低收益的,但不难发现,ComfyUI的搭建实际上就是将不同环节的数据处理,传递,再处理,如果我们将这些过程切块,记住每一块需要什么,产出什么,将极大地降低我们的记忆成本。至于每一块的实现细节(具体节点),那就去扒网上的案例库好了。

目录、索引式记忆比起内容、字典式记忆来得有效率得多。这不是学生时期的考试,利用工具,节约时间是首要的


  1. bilibili Nenly同学 ↩︎

  2. ComfyUI Github网址 ↩︎

  3. Git下载地址 ↩︎

  4. ComfyUI Manager Github网址 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/915505.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/915505.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

numpy库的基础知识

一.numpy是什么 ?Numpy 是 Python 中专门用于高性能数值计算的库,其核心是一个功能强大的 n 维数组对象(ndarray),可以用来存储和操作大规模的数字矩阵或张量数据。numpy库的作用:核心功能:实现…

在UniApp中防止页面上下拖动的方法

1、pages.json中在某个页面设置禁用弹性滚动的页面 {"path": "pages/yourPage/yourPage","style": {"app-plus": {"bounce": "none"}} } 2、 pages.json中在所有页面设置禁用弹性滚动的页面 {"globalStyl…

LinkedList的模拟实现(双向链表Java)

一:结构LinkedList的底层是双向链表结构(链表后面介绍),由于链表没有将元素存储在连续的空间中,元素存储在单独的节点中,然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素…

Shopify 知识点

📜 一、Liquid模板语言(核心基础)语法结构 • 输出变量:{{ product.title }} 动态显示商品标题。 • 逻辑控制:{% if product.available %}…{% endif %} 条件渲染。 • 循环遍历:{% for item in collectio…

Web LLM 安全剖析:以间接提示注入为核心的攻击案例与防御体系

文章目录1 间接提示注入2 训练数据中毒为什么会出现这种漏洞?3 泄露敏感训练数据攻击者如何通过提示注入获取敏感数据?为什么会出现这种泄露?4 漏洞案例间接提示注入利用 LLM 中的不安全输出处理5 防御 LLM 攻击把LLM能访问的API当成“公开接…

ElasticSearch:不停机更新索引类型(未验证)

文章目录**一、前期准备****1. 集群健康检查****2. 备份数据****3. 监控系统准备****二、创建新索引并配置****1. 设计新索引映射****2. 创建读写别名****三、全量数据迁移****1. 执行初始 Reindex****2. 监控 Reindex 进度****四、增量数据同步****1. 方案选择****五、双写切换…

python学智能算法(二十七)|SVM-拉格朗日函数求解上

【1】引言 前序学习进程中,我们已经掌握了支持向量机算法中,为寻找最佳分割超平面,如何用向量表达超平面方程,如何为超平面方程建立拉格朗日函数。 本篇文章的学习目标是:求解SVM拉格朗日函数。 【2】求解方法 【2.…

mac安装node的步骤

适用于macOS 10.15及以上版本。 前提条件 macOS版本:确保系统为macOS 10.15(Catalina)或更高版本。可在“苹果菜单 > 关于本机”查看。管理员权限:部分安装可能需要管理员权限。网络连接:需要联网下载安装包或工具…

【LeetCode数据结构】栈的应用——有效的括号问题详解

🔥个人主页:艾莉丝努力练剑 ❄专栏传送门:《C语言》、《数据结构与算法》、C语言刷题12天IO强训、LeetCode代码强化刷题 🍉学习方向:C/C方向 ⭐️人生格言:为天地立心,为生民立命,为…

多尺度卷积模型:Inception块

在GoogLeNet中,基本的卷积块被称为Inception块(Inception block)。 使用窗口大小为11,33,551\times1,3\times3,5\times511,33,55的卷积层,从不同空间大小中提…

Android 默认图库播放视频没有自动循环功能,如何添加

Android 默认图库播放视频没有自动循环功能, 如何添加 按如下方式添加 开发云 - 一站式云服务平台 .../apps/Gallery2/res/values-zh-rCN/strings.xml | 3 ++ packages/apps/Gallery2/res/values/strings.xml | 3 ++ .../com/android/gallery3d/app/MovieActivity…

7月21日总结

命令执行 RCE RCE(remote code execute):远程命令执行或者代码执行,我们平时说的rce,比如thinkPHP的 rce漏洞,即算代码注入漏洞,也算rce漏洞,因为渗透的最终情况可以实现执行命令或…

Linux——自制shell命令行解释器

文章目录1.打印命令提示符2.获取用户输入指令3.重定向分析4.命令行参数表,环境变量表,初始化5.命令解析6.命令执行6.1.创建子进程6.2 处理内建命令6.3 文件重定向7.源码前言 在实现shell的时候我们先创建自己myshell目录,在目录中创建myshell.cc文件,因…

Boost库智能指针boost::shared_ptr详解和常用场景使用错误示例以及解决方法

1、Boost智能指针 —— boost::shared_ptr 详解一、什么是 boost::shared_ptr boost::shared_ptr 是 Boost 库中实现的一个智能指针模板类,用于管理动态分配的对象生命周期,采用引用计数机制。多个 shared_ptr 实例可以共享同一个对象的所有权&#xff0…

科学分析指南,如何快速找到并清理磁盘的无用文件

随着时间的推移,系统中会积累大量的临时文件、缓存文件、不再需要的安装包或其他大型文件。磁盘清理可以删除这些不必要的文件,从而释放宝贵的磁盘空间。它无需安装,插上 U 盘就能直接使用。只需勾选需要扫描的磁盘,点击“开始分析…

Laravel 系统版本查看及artisan管理员密码找回方法针对各个版本通用方法及原理-优雅草卓伊凡

Laravel 系统版本查看及artisan管理员密码找回方法针对各个版本通用方法及原理-优雅草卓伊凡一、查看 Laravel 版本的方法优雅草蜻蜓T会议系统专业版 最近又有客户要了,但是发现 密码不对 管理员账户密码不对,卓伊凡必须处理下,这里顺便讲解密…

针对大规模语言模型的上下文工程技术调研与总结(翻译并摘要)

针对大规模语言模型的上下文工程技术调研与总结声明摘要部分翻译介绍部分翻译相关工作部分翻译并摘要为什么使用上下文工程(翻译并摘要)基础组件(翻译并摘要)RAG(翻译并摘要简单介绍一下个人认为比较好的技术&#xff…

QT配置Quazip外部库

1.下载QuaZip源码网址:https://sourceforge.net/projects/quazip/  注:下载->解压->打开.pro文件2.编译QuaZip源码2.1配置zlib注:QuaZip需zlib的支持,我们需要引用zlib找到本地安装Qt目录下zlib目录:注&#x…

从C++开始的编程生活(4)——类的定义、访问限定符、类域、类的实例化和this指针

前言 本系列文章承接C语言的学习,需要有C语言的基础才能学会哦~ 第3篇主要讲的是有关于C的类的定义、访问限定符、类域、类的实例化和this指针。 C才起步,都很简单呢! 目录 前言 类 基本语法 访问限定符 基本语法 类域 类的实例化 内…

AD域控制器虚拟化的安全加固最佳实践

以下是AD域控制器虚拟化安全加固的7项核心实践,结合最新Windows Server 2022特性与虚拟化环境需求:基础架构强化‌ 采用静态IP分配并确保所有域控节点DNS指向主DC(如192.168.1.10)‌ 虚拟机模板需预配置林/域功能级别为Windows Se…