4. ControlNet基本工作流(不含预处理器).json
#8
VAEDecode
Latent
VAE
图像
#7
CLIPTextEncode
CLIP
条件
(hands), text, error, cropped, (worst quality:1.2), (low quality:1.2), normal quality, (jpeg artifacts:1.3), signature, watermark, username, blurry, artist name, monochrome, sketch, censorship, censor, (copyright:1.2), extra legs, (forehead mark) (depth of field) (emotionless) (penis)
#11
LoadImage
图像
遮罩
download.png
image
#9
SaveImage
图像
ComfyUI
#12
ControlNetLoader
ControlNet
control_v11p_sd15_openpose.pth
#14
CheckpointLoaderSimple
模型
CLIP
VAE
awpainting_v12.safetensors
#5
EmptyLatentImage
Latent
512
768
1
#13
VAELoader
VAE
animevae.pt
#3
KSampler
模型
正面条件
负面条件
Latent
Latent
62738418713106
randomize
24
6
dpmpp_2m
karras
1
#10
ControlNetApply
条件
ControlNet
图像
条件
0.8
#6
CLIPTextEncode
CLIP
条件
masterpiece, best quality, highres, 1girl, (arms behind back:1.5), bare shoulders, blonde hair, long hair, white background, white dress, looking at viewer, face light, low contrast, outdoors, sea of white flowers, plants, cinematic lights, lightrays,
#16
Note
# 附加网络 (Additional Network)
是一个比较笼统的称呼,指SD生成中附加在最大的模型 (Checkpoint) 上的一些其他辅助性质的小模型
这些小模型的分类和作用:最常使用的三类:
- 词嵌入 (Embeddings)
- LoRA
- ControlNet
作用:提高生图质量、创作独特风格、精准控制画面
## 词嵌入 (Embeddings)
使用最简单的是Embedding,按 `Embedding:+模型名(不包含后缀)` 的形式填入提示词
如果开启了 Custom Scripts,可以方便地辅助输入该功能
## LoRA
与SD WebUI不同:
> 在SD WebUI中,可以用和Embedding类型的方式置入提示词中,如 `<lora:A-> Pixel_f2:1>`
>
> 但在ComfyUI中不行!
>
> 原因:Embedding本质上是一系列提示词向量的“合集”,而LoRA则是一组经过再训练的、从大模型上“提炼”出来的“附加权重”
使用:
- 使用LoRA加载器节点,放在Checkpoint Loader节点的后面
- 多个LoRA节点:直接串联他们就行了
原理:
- 可以将LoRA视做附加在主模型上的小模型,可以将checkpoint与后面被附加LoRA的部分视作一个“新的模型”
要项:
- strength_model、strength_clip 是LoRA的权重
- 与WebUI不同:这里是两个权重,而WebUI里只有一个
- 原因:LoRA训练时同时在底模的文本编码器 (CLIP Text Encoder) 和噪声预测器 (主模型UNet)上都做了训练,这两个部分都有对应的 “经验积累”
- 区别:例如 `Blindbox LoRA` 可以把普通插画风格作品变成带PVC盲盒手办的质感的3D渲染图
我们可以拉一张 **XY对比图**,展示两个权重在不同水平下的组合(图略,见原视频)。结果:
- 模型强度:(图上看起来影响较大) 直接地影响了LoRA的风格 (形象) 是否能被植入到主模型中,因为作用的是主管去噪的UNet部分
- CLIP强度:(图上看起来影响较小) 影响模型对一些提示词的相应结果,在一些具有大量触发词的LoRA里的作用会更显著
- 值建议:当哪不准时,可以设置相同的值。根据作者的说法,二者相等时,差不多就是在WebUI里设置 `<lora:lucy_(cyberpunk)_v10:0.5>` 的效果
- 多LoRA使用
可以使用有Stack功能的节点实现批量加载,例如 `LoRA Stack`、`CR LoRA Stack`,这个节点也能很好地与Efficient Loader节点配合。
很方便,但是这种方式也会有一些“局限性”。例如输出类型是 `LORA_STACK`,只能和Efficient Loader节点配合
## ControlNet
ControlNet也算附加网络吗?虽然在WebUI里以 “扩展插件” 的形式出现,但其核心的ControlNet模型,原理也是在生成时根据我们输入的 “控制信息” 动态调节Unet层来改变生成结果。感觉可以将其的训练和LoRA的训练做对比,其实是很像的
可以参考官方示例的 “Controlnet” 文件夹的一些标准工作流
核心:
- Load ControlNet Model 节点,加载ControlNet模型
- App ControlNet 节点,接收图像、正面条件、和ControlNet模型,并添加对应控制
参数strength也是控制权重强度的
如果需要控制开始、结束时机,则需要使用标有Advanced的进阶节点
要项:
- 有趣的是,接受了CLIP正面条件为参数,输出的也是条件类型
- 注意原生节点只包含了ControlNet “模型” 这一部分,不包括预处理。即加载图像的部分要直接导入一个预处理的结果。
那如何添加预处理器呢?下载一个预处理器节点。推荐 Fannovel16 开发的 ControlNet Aux 节点,然后搜 preprocess 调出对应的节点
- 既然有LoRA Stack,ControlNet也有Stack。推荐效率节点包的Control Net Stacker
Press enter or space to select a node. You can then use the arrow keys to move the node around. You can then use the arrow keys to move the node around, press delete to remove it and press escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel.
链接到当前文件 0
没有文件链接到当前文件