type
summary
status
category
tags
slug
date
password
icon
CONTENT
第一课_简介
核心:工作流workflow
- 安装
- 搭建特定目的的工作流
- 使用
- 术语
- clip:链接提示词
- K采样器ksampler:这个采样器负责去噪(sd生成图片的本质,出去前期的加噪,生图是一个条件去噪的过程,而这就是由采样器ksampler负责的)
- 种子控制不同:
- 采样器sampler,调度器scheduler分开了,webUI里是简化组合了直接
- Latent: 图片数据的向量化表达,“潜空间”
- VAE:Decode,变分自编码器,潜空间变量↔️图片的“转化器”
clip

随机性控制

latent

VAE

- 自己搭建
- 挪用别人的
- .json文件,元数据图片,纯文本参数
参考

- 作者自带的工作流示例吃透,能更快上手
- comfyUI组件,即自定义组件插件安装
第二课_自定义节点
Custom Nodes
一般的下载方式
- git clone:可以git pull随时便捷更新
- 仓库下载压缩包:形式是离线的,更新不方便
ComfyUI Manager
- git clone脚本的UI可视化执行
- 自动识别并补充安装导入工作流的缺失节点
实用功能节点推荐
- 汉化
- AIGODLIKE ComfyUI Translation
- 提示词自动补全
- ComfyUI custom scripts
- 提示词翻译节点
- clip translate:适时选择翻译引擎
- 提示词反推
- tagger:根据图片反推提示词,但需要安装用于反推的前置模型
- 此时tagger输出为string字符串的text,所以不能直接输入到clip的prompt里面,需要把clip节点转换convert text to input,就把prompt输出形式从手动输入的框改为了text输入接口。
clip 转换

- 自动负面提示词
- auto negative prompt:强度enhancenegative调为1,就能自动化负面提示词了
- 不需要再操作的固定节点可以点左上角收缩
节点包_节点集合_nodes pack
- impacts节点包
- pipe管线:pipe类型的ksampler:(单向数据流动),应用场景例如:生成完一次的,还得重新拉线的情况
没搞懂,不自己跑一遍是不懂为什么需要pipe这种中介形式的
ksampler pipe

- inspire pack
- efficiency nodes效率节点
- 大概相当于集合以前webui的功能,把输入和输出集合到一个节点
第三课_常用工作流
overview

高清修复
- 核心参数:denoise,去噪,0.5~0.8区间合适
example

- 其他算法放大:esrgan传统放大模型:不同于hires处理潜空间数据,esrgan处理的是图片像素,所以后续还需要再把像素数据转化为latent潜空间数据;常用“realESRGAN_x4plus”
- 传统的放大模型也有很多选择,可以自己根据需求和效果选择;当然,缩小就是up值小于1。
区别对比

4. Ultimate Upscale
一个nodes pack,针对高清修复,或放大;核心跟webui第三种放大手法一样,是先切割小块,放大后拼接在一起。
局部重绘_inpaint
蒙版Mask
- 普通蒙版:右键image蒙版编辑器,输出到重绘ksampler的也是像素信息,即蒙版部分是空的,需要较大的权重才会有作用。即把挖出来的部分扣掉,重新文生图。(新生成部分与原图部分无关,变化大)
- set latent noise mask:latent潜空间蒙版,将指定区域原图像素转化为潜空间数据,再重新采样。即把挖出来的部分作为参考,做一次图生图。(新生成部分参考原图部分,变化小)
- grow mask:羽化,边缘,过渡区
- blur:羽化,但有整体和主体羽化的不同node
- invert:对应webui里的重绘“蒙版区域”还是“非蒙版区域”
- convert mask to image:后面接一个save/preview image,最后把蒙版导出为可视化图像,方便看最后的蒙版长啥样
- convert image to mask:即上传图片为蒙版
- 黑白在RGB红绿蓝三通道中是等值一样的
附加网络_Additonal Network
附着在大模型/底模/目前的checkpoint模型后的起调整作用的小模型统称,最常见的Embeddings,LoRA和ControlNet。
Core原理

Embeddings
- 可以直接在prompt中调用,在开启manager默认设置后,自动补全更方便
LoRA
- LoRA不能直接在prompt中调用,因为Embeddings是latent中的向量数据,但LoRA不是,他是经过再训练的附加权重
LoRA

- LoRA训练时有两类数据:文本编码clip text,噪声预测UNet,这俩权重侧重不同,具体的微调效果自己试,看例子记不住。
- Stack,堆叠加载,一回加载数个LoRA模型,
ControlNet
- load controlnet;apply controlnet
- 输出的信息是条件conditioning,会和prompt汇集在一起
- ComfyUI不自带controlnet的预处理节点,得下载自定义节点:ControlNet Aux,用于把image 转化为 骨骼图,node名字为:ControlNet Preprocessor
- 也有stack,但stack只接受处理好的信息图,所以还需要预处理器node
综合应用
典型工作流实践
- 批处理
- get (information)节点,如image size等,免去获取图片大小的手动重复操作
- condition combine:clip转换为text输入后,无法再输入对应LoRA的trigger tag,所以得用到条件组合node。
- bypass操作:右键节点bypass忽略,在工作流进行到这步时不做处理,跳过,用于开关某个作用节点。
- 工作流
- 除了自定义,另一大优势在分享和套用
- 高度自定义SOP;标准化流程
- 其他可能用到的组合模型(这也是一大优势,即组合其它领域的AI模型,模块化)
- 自动扣图模型
迪斯科_工作流搭建
content

总的三个步骤
分析需求
确定首尾

研究实现需求的路径
- 拆分功能模块
- 对单独的模块的效果和效率综合考虑,再做选择
如智能自动抠图SAM+Grounding DINO

- 比如风格变化,有如下选择:底模改变或者LoRA细调或IP-Adapter等
- 比如精度控制的插件使用:contolnet的类型组合
架设工作流五个步骤
- 添加核心节点
- 技巧:可以分主副界面,主界面设计主干,副界面测试功能
- 连接工作流主干
- 技巧:可以从只有输出的那个节点往后拉线,比如load image节点,输出给vae,各种预处理器
- 完善工作流旁支
- 调节参数:自动获取输入文件信息的node,如tagger,getimagesize等;避免手动改参
- 预览工作流进程(某些节点的阶段性处理结果preview):如controlnet骨骼图的preview,自动抠图组件的结果图preview,当然也可以加入中间node,预览蒙版图
- 测试工作流
- 调参:根据表现倒回去调重绘幅度,各种权重
- bug:比如上传图片过大,超负荷,可以加个resize节点,缩放图片大小
- 优化:蒙版效果一般,加入blur节点,扩展边缘范围,再模糊边缘
- 整理工作流:易读性和易用性
- 对齐,大小缩放,排版:多选右键对齐,按住shift自动吸附背景网格
- 不用手动改动的node收缩,如:文本输入的clip编码器,tagger,vae等
- 分组:模块化
- 理线:
- 技巧1:出口线多时,可以右键出转接点(拉线时长按shift+r)
- 技巧2:manager里切换线的类型:直角线
- 标注注释Note
转接点

另存
其实熟悉了,从头推到尾也是可行的
使用技巧
示例:产品换背景
- 类似于粘土风案例,从人换成了背景,一样的输入输出,中间的抠图,反转,蒙版等
- 但这里要考虑用户的需求,用户换背景跟指定风格转换不同,可以加入更多自定义prompt,这里的需求变成了:自然描述语言→prompt提示词
- 文本翻译
- 提示词连接
- 风格提示词自动选择补充
- 元节点单独提取出输入窗口(考虑到用户体验)
eg


示例:老照片上色
- 功能需求分析:
- 清晰度
- 上色
- 注意事项
- 原照片是黑白的,所以tagger反推出的tag会有黑白,导致出图带有黑白元素;可以在tagger的排除标签里剔除这类标签
- RGThree节点包,有控制节点,可以作为单个或分组节点生效与否的控制开关
- 疑惑:为什么没把放大的VAE放进去一起开关,而是拿出来,也就意味着不需要放大时也会用到放大的VAE,即把图像转化为潜空间latent数据。解决了:保持save image前面的VAE解码器收到latent数据,所以无论放大组是否生效,都得输出latent数据给VAE解码器,前面的上色输出的是像素数据,所以需要再编码一次。
- RAGThree节点包的图像对比node,可以实现原图与成图的拉帘对比效果
on-off

eg

示例:风格化海报
- 用到的功能模块
- 照片拼接
- 风格转化
- 文字覆盖
- 组合,调参等常规操作
总结心得
- 节点对应的是手段,流对应的是过程,搭建工作流即是解决问题的全过程,从需求总结,到搭建,到调试等
- 发展很快,多了解,多操作
- 类比为语言,具体点编程语言
- 节点=函数+数据结构
- 连接线=语法
- 功能分组 = 实现特定功能的子页面文件
- 掌握完编程语言的基础函数和语法,以及常用的数据结构,到底能构建出什么样的程序是看你自己的。
- 就跟语言一样,语言本身的生态和优缺点,时代的特殊性都会影响到工作流模式的发展,写东西也要考虑这些。
ComfyUI打包应用
这个算是一个产出,看能不能打包一个最简单的抠图应用,借用现有的模型,偏性价比,低算力需求。
- 平台:Shell
- 关于环境配置:shell平台会在工作流搭建完成保存后自动识别用到的node和模型,如果是自己训练的模型,需要上传到hugging face一类的代码托管平台,然后把链接粘贴过去
- 技巧:shell agent里,输出线可以连回输入线,即自重复执行,比如再生成按钮
- Run是在本地测试的,最后export导出json文件
- 回到平台客户端,选择创建Bot,用ShellAgent模式,deploy对应环境
- 公开部署,需要开发者pass身份
- 自己作为第一批用户,把出图分享到广场,引流宣传
想办法换平台:微信公众号企业号小程序,手机应用APP,黑盒或其他垂直类目平台。
低代码平台的使用
实操产出
SD3.5
timeline

- 性质:宽泛概念的免费可商用
license

- 配置要求(本地)
reference

- 暂时还是云端吧,0.8一小时的4090D说是
- 智灵:智灵
- 揽睿星洲:3090一块五一小时
price(4090D)


- 新的VAE,参数设置,参考官方文档
- 调度器用官方推荐的sgm_uniform
- Large,large_turbo,medium
- 虽然medium参数量要比large少70%,但氛围感或审美方面有时候比large要好,就很迷,当然,细节上还是large更优
- medium不是large的缩小压缩版或蒸馏版,medium拥有不同的架构,更像是在large基础上训练的新模型
medium模型官方回答:多了注意力层,attention layers

- 量化模型:FB8精度,以及对应的文本编码器
contrast



- GGUF:一种量化格式
- 应用
- 重绘,重细节,用large,重风格,用medium
- Author:Frank
- URL:https://blog.fqqblog.com/article/252bd4d9-052e-80fa-b9c7-d43bd3a527f7
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!

ComfyUI


