ControlNet 应用☍
在 ControlNet 出现之前,控制图片的生成靠的是提示词,再加上图生图的局部重绘辅助。但在 ControlNet 出现后,控制图片变得简单了,通过图片 + 提示词的方式来更好的控制图片生成,还可以配合图生图进行生图。
ControlNet 扩展☍
如果需要使用 ControlNet,需要安装 sd-webui-controlnet 扩展。
Note
- sd-webui-controlnet 扩展下载:https://github.com/Mikubill/sd-webui-controlnet。
- sd-webui-controlnet 扩展部分预处理器模型文件官方下载地址:https://huggingface.co/lllyasviel/Annotators/tree/main。
- sd-webui-controlnet 扩展模型文件官方下载地址:https://github.com/Mikubill/sd-webui-controlnet/wiki/Model-download。
- 预处理器模型文件 用于 预处理器 项,模型文件 用于 模型 项。
- sd-webui-controlnet 扩展 并不会 主动下载预处理器模型文件 / 模型文件,默认情况下,您需要主动的去下载模型文件并放置到对应的文件夹。而预处理器文件在首次使用对应预处理器时从网络下载。
如果您打算主动下载预处理器模型文件,请将下载的文件按照以下折叠内容放置到对应的文件夹内。
点击展开
stable-diffusion-webui/extensions/sd-webui-controlnet/annotator/downloads
├── anime_face_segment/UNet.pth
├── clip_vision/clip_g.pth
├── clip_vision/clip_h.pth
├── clip_vision/clip_vitl.pth
├── densepose/densepose_r50_fpn_dl.torchscript
├── depth_anything/depth_anything_vitl14.pth
├── depth_anything_v2/depth_anything_v2_vitl.safetensors
├── hand_refiner/hr16/ControlNet-HandRefiner-pruned/graphormer_hand_state_dict.bin
├── hand_refiner/hr16/ControlNet-HandRefiner-pruned/hrnetv2_w64_imagenet_pretrained.pth
├── hed/ControlNetHED.pth
├── insightface/models/antelopev2/1k3d68.onnx
├── insightface/models/antelopev2/2d106det.onnx
├── insightface/models/antelopev2/genderage.onnx
├── insightface/models/antelopev2/glintr100.onnx
├── insightface/models/antelopev2/scrfd_10g_bnkps.onnx
├── insightface/models/buffalo_l/1k3d68.onnx
├── insightface/models/buffalo_l/2d106det.onnx
├── insightface/models/buffalo_l/det_10g.onnx
├── insightface/models/buffalo_l/genderage.onnx
├── insightface/models/buffalo_l/w600k_r50.onnx
├── lama/ControlNetLama.pth
├── leres/latest_net_G.pth
├── leres/res101.pth
├── lineart/sk_model.pth
├── lineart/sk_model2.pth
├── lineart_anime/netG.pth
├── manga_line/erika.pth
├── midas/dpt_hybrid-midas-501f0c75.pt
├── mlsd/mlsd_large_512_fp32.pth
├── mobile_sam/mobile_sam.pt
├── normal_bae/scannet.pt
├── normal_dsine/dsine.pt
├── oneformer/150_16_swin_l_oneformer_coco_100ep.pth
├── oneformer/250_16_swin_l_oneformer_ade20k_160k.pth
├── openpose/body_pose_model.pth
├── openpose/dw-ll_ucoco_384.onnx
├── openpose/facenet.pth
├── openpose/hand_pose_model.pth
├── openpose/rtmpose-m_simcc-ap10k_pt-aic-coco_210e-256x256-7a041aa1_20230206.onnx
├── openpose/yolox_l.onnx
├── pidinet/table5_pidinet.pth
├── TEED/7_model.pth
├── uniformer/upernet_global_small.pth
└── zoedepth/ZoeD_M12_N.pt
安装后可在 SD WebUI 左下角的选项找到 ControNet 选项。
这里简单介绍 ControlNet 扩展的几个选项。
功能 | 作用 |
---|---|
图片导入框 | 上方导入图片的框就是导入作为控制条件的图片。 |
完美像素模式 | 可解决导入的控制图片和生成图片设置的宽高比例不同的问题。启用后 ControlNet 插件后,ControlNet 将会自动设置 Resolution 值(预处理器的分辨率),通常为最低可用分辨率。如果需要更高精度的预处理结果,需要禁用完美像素模式,手动调节 Resolution。 |
高效子区蒙版 | 该功能用于 ControlNet Inpaint / IP Adapter 控制类型中,用于上传预绘制的蒙版。可查看关于该选项的说明:What does mask upload do? · Mikubill/sd-webui-controlnet · Discussion #2793。 |
上传独立的控制图像 | 该选项只在图生图的 ControlNet 选项中出现,当不启用该选项时, ControlNet 使用图生图中导入的图像作为 ControlNet 图像。如果启用该选项,则而外导入一张图像作为 ControlNet 图像。 |
控制类型 | 调节不同的控制效果,一般选择后 ControlNet 扩展会自动选择相对应的预处理器和模型,部分情况下可能需要手动选择模型。 |
预处理器 | 处理导入的控制图片,使控制图片成为 ControlNet 模型可识别的控制条件。如果导入的控制图片已经经过预处理器处理过,则预处理器应选择无。预处理器有许多种,预处理图片的精度各不相同,可根据自己的需求进行选择。 |
模型 | 选择要使用的 ControlNet 模型。 |
中间的爆炸按钮(💥) | 点击后可显示预处理器处理后的控制图片。 |
控制权重 | 调节 ControlNet 控制的强度。 |
引导介入 / 终止时机 | 调节 ControlNet 介入图片生成过程的时机。 |
控制模式 | 调节生图时提示词和 ControlNet 这两者所占的控制强度。 |
不同 ControlNet 的作用☍
下面列出不同 ControlNet 的作用。
种类 | 作用 | 控制图片 | 处理后的控制图片 | 效果图 |
---|---|---|---|---|
Canny | 使用粗略的线条描绘图片中物体的边缘,生成线稿图。生图过程中使用线稿图约束物体的边缘。 | |||
Depth | 生成一个灰度图,通过灰度的深浅描述物品的前后远近关系,指导大模型生成图片时物品的远近关系。 | |||
NormalMap | 生成从输入图像派生的基本法线贴图,该图像使用了三种颜色:红色、绿色和蓝色。在 3D 程序领域,这些颜色用于确定物体表面的感知光滑度或凹凸度。每个颜色通道对应于一个特定的方向,例如左 / 右、上 / 下和近 / 远,从而可以在三维环境中模拟复杂的表面特征。 | |||
Openpose | 将图片中的人物动作分析出来,并生成骨骼图,指导大模型绘制人物时的动作。 | |||
MLSD | 将图片中的场景(不包括人物)使用直线进行轮廓的大致描绘,生成大致的线条结构图。在生图过程通过线条结构图约束场景中大物件的边缘,常用于场景设计。 | |||
Lineart | 使用更加精细的线条对图片进行描绘,生成线稿图。在生图过程中通过线稿图约束物体的边缘,常用于比较精细地还原物品的结构,保持构图结构。 | |||
Softedge | 将图片中物体的边缘用软边缘线条进行描绘,生成线条图。在生图过程中通过线条图约束物体的边缘,常用于还原物品的大致结构,保持构图结构。 | |||
Scribble | 将图片处理成涂鸦,类似手绘的效果,然后利用生成的涂鸦图片指导大模型生图,常用于自己画一张粗糙的涂鸦,使用该涂鸦来生成一张效果不错的图片。 | |||
Segmentation | 将图片进行语义分割,将不同的画面元素用不同的颜色进行标注,生成语义分割图。在生图的过程中使用语义分割图指导大模型在对应的区域绘制不同颜色对应的物品,常用于大致规划图片构图。 | |||
Shuffle | 将图片进行随机变换,然后将变换后的图像作为参考,指导图片生成的过程(风格迁移)。 | |||
Tile/Blur | Tile 将图片分割成一个个小区快,在对每个小区快进行重绘。Tile 不仅可以用作图片放大,增加图片的细节,也可以保持图片的整体构图不被改变,可用于风格转换。Blur 将图片进行高斯模糊,用作生成图片的参考,有点类似图生图,但整体构图不会改变太多。 | |||
Inpaint | 重绘画笔涂抹过的区域,和 SD WebUI 自带的局部重绘功能类似。 | |||
InstructP2P | 将提示词作为命令,指定修改图片中的元素,但不改变构图。 | |||
Reference | 将输入的图片作为参考,有点类似图生图。相对于图生图的效果,画面有着更多样的变化,不会过于呆板,输入图的风格也能迁移到生成出来的图片中。 | |||
Recolor | 根据提示词的描述,对黑白的图片进行上色 | |||
Revision | 使用 CLIP Vision 分析图片,并指导图片的生成。 | |||
IP-Adapter | 使用 CLIP Vision 分析输入图片的信息,并将得出的信息作用于图像的生成过程中,常用于迁移画风,并搭配其他控制构图的 Controlnet 一起使用。 |
Note
点击种类的名称可下载对应的 ControlNet 模型,ControlNet 模型放置在 stable-diffusion-webui/models/ControlNet 路径中
不同的 ControlNet 可组合起来一起使用,实现不同的效果。
ControlNet 使用☍
下面介绍不同 ControlNet 控制类型的使用。
ControlNet Scribble / Canny / MLSD / Softedge / Lineart☍
该控制类型属于边缘类控制,Scribble / Canny / MLSD / Softedge / Lineart 控制的精度各不同。
对画面的控制的精度:Scribble < Canny < Softedge < MLSD < Lineart
Scribble☍
这个 ControlNet 类型通常用于将涂鸦转换为图片,可以发挥自己的灵魂画技画一张草稿,再用 ControlNet Scribble 将涂鸦转换为一张想要的壁纸。
Note
使用的模型:
Stable Diffusion XL 模型:Illustrious-XL-v0.1.safetensors,模型放在stable-diffusion-webui/models/Stable-diffusion
路径中。
ControlNet 模型:xinsir-controlnet-union-sdxl-1.0-promax.safetensors,模型放在stable-diffusion-webui/models/ControlNet
路径中。
ControlNet 扩展下方可以调节 Scribble 预处理器的效果。
参数 | 作用 |
---|---|
Resolution | 调节预处理器的分辨率。 |
XDoG Threshold(scribble_xdog 预处理器) | 设置边缘检测灵敏度。较低的值将导致检测到更多的边缘,从而可能捕获更精细的细节,而较高的值将集中在更突出的边缘上,从而减少杂色。 |
下面是不同预处理器效果。
预处理器 | 无 | scribble_pidinet | scribble_xdog | scribble_hed |
---|---|---|---|---|
效果图 |
Canny☍
Canny 控制类型的相比于 Scribble,精确度就比较高,可以用于复刻图片或者做艺术字等。
Note
使用的模型:
Stable Diffusion XL 模型:Illustrious-XL-v0.1.safetensors,模型放在stable-diffusion-webui/models/Stable-diffusion
路径中。
ControlNet 模型:xinsir-controlnet-union-sdxl-1.0-promax.safetensors,模型放在stable-diffusion-webui/models/ControlNet
路径中。
ControlNet 扩展下方可以调节 Canny 预处理器的效果。
参数 | 作用 |
---|---|
Resolution | 调节预处理器的分辨率。 |
Low Threshold | 去掉过细的线段。大于低阈值的线段被认定为边缘。 |
High Threshold | 去掉零散的线段。大于高阈值的线段被认定为强边缘,全部保留;高阈值和低阈值之间的线段认定为弱边缘,只保留强边缘相邻的弱边缘。 |
下面是不同预处理器的效果。
预处理器 | 无 | canny |
---|---|---|
效果图 |
MLSD☍
MLSD 比较特殊,使用 MLSD 的预处理图片时,预处理器只会识别到图片中包含直线的部分(通常是建筑,物体),其他部分并不会识别到(如人物),所以这个控制类型适合控制建筑类的生成。
Note
使用的模型:
Stable Diffusion XL 模型:Illustrious-XL-v0.1.safetensors,模型放在stable-diffusion-webui/models/Stable-diffusion
路径中。
ControlNet 模型:xinsir-controlnet-union-sdxl-1.0-promax.safetensors,模型放在stable-diffusion-webui/models/ControlNet
路径中。
ControlNet 扩展下方可以调节 MLSD 预处理器的效果。
参数 | 作用 |
---|---|
Resolution | 调节预处理器的分辨率。 |
MLSD Value Threshold | 直线阈值。值越低,检测的直线越多。 |
MLSD Distance Threshold | 距离阈值。对检测的之间进行距离筛选。 |
下面是不同预处理器的效果。
预处理器 | 无 | mlsd |
---|---|---|
效果图 |
Softedge☍
Softedge 的精度较高,预处理出的控制图片的边缘更加平滑,并且忽略内部的细节,可以让 AI 有更多的发挥空间。
Note
使用的模型:
Stable Diffusion XL 模型:Illustrious-XL-v0.1.safetensors,模型放在stable-diffusion-webui/models/Stable-diffusion
路径中。
ControlNet 模型:xinsir-controlnet-union-sdxl-1.0-promax.safetensors,模型放在stable-diffusion-webui/models/ControlNet
路径中。
ControlNet 下方可以调节 Softedge 预处理器的效果。
参数 | 作用 |
---|---|
Resolution | 调节预处理器的分辨率。 |
Safe Steps(softedge_teed、softedge_anyline 预处理器) | 这个值越大,预处理得到的图片画面越干净。 |
下面是不同预处理器效果。
预处理器 | 无 | softedge_pidinet | softedge_teed | softedge_pidisafe | softedge_hedsafe | softedge_hed | softedge_anyline |
---|---|---|---|---|---|---|---|
效果图 |
Lineart☍
Lineart 控制类型的精度最高,可以用于线稿上色等。
Note
- 使用的模型:
Stable Diffusion XL 模型:Illustrious-XL-v0.1.safetensors,模型放在stable-diffusion-webui/models/Stable-diffusion
路径中。
ControlNet 模型:xinsir-controlnet-union-sdxl-1.0-promax.safetensors,模型放在stable-diffusion-webui/models/ControlNet
路径中。 - 如果控制图片是白底线稿,只需要 invert 预处理器将导入的图片进行反色就成为 ControlNet Lineart 的控制图片了。
ControlNet 下方可以调节 Lineart 预处理器的效果。
参数 | 作用 |
---|---|
Resolution | 调节预处理器的分辨率。 |
下面是不同 Lineart 预处理器的效果。
预处理器 | 无 | lineart_standard | lineart_realistic | lineart_coarse | lineart_anime_denoise | lineart_anime |
---|---|---|---|---|---|---|
效果图 |
ControlNet NormalMap / Depth / Segmentation☍
这类控制类型类似边缘控制,也能提供比较高的精度控制。
NormalMap☍
该控制类型通过法线贴图进行控制,可以为 AI 提供方位信息用于生成,可以更加精准的控制生成的图片中的元素方位,如人物面向的方向等。
Note
使用的模型:
Stable Diffusion XL 模型:Illustrious-XL-v0.1.safetensors,模型放在stable-diffusion-webui/models/Stable-diffusion
路径中。
ControlNet 模型:xinsir-controlnet-union-sdxl-1.0-promax.safetensors,模型放在stable-diffusion-webui/models/ControlNet
路径中。
ControlNet 下方可以调节 NormalMap 预处理器的效果。
参数 | 作用 |
---|---|
Resolution | 调节预处理器的分辨率。 |
Normal Background Threshold(normal_midas 预处理器) | 控制图片中多远的背景元素被消除,该值越高,法线贴图中远处部分消失的越多。 |
Fov(normal_dsine 预处理器) | 控制在任何给定时刻看到的可观察世界的范围,影响输入图像的透视来影响法线贴图的生成方式。较高的值会使视图更宽,捕获更多的场景,而较低的值会缩小视图。 |
Iterations(normal_dsine 预处理器) | 设置预处理器的迭代步数,类似图片生成参数中的迭代步数。值越高,预处理得到的发现贴图质量越高。 |
下面是不同预处理器的效果。
预处理器 | 无 | normal_bae | normal_midas | normal_dsine |
---|---|---|---|---|
效果图 |
Depth☍
该控制类型通过灰度图中带的远近前后关系,控制 AI 生成元素时的远近前后关系。
Note
使用的模型:
Stable Diffusion XL 模型:Illustrious-XL-v0.1.safetensors,模型放在stable-diffusion-webui/models/Stable-diffusion
路径中。
ControlNet 模型:xinsir-controlnet-union-sdxl-1.0-promax.safetensors,模型放在stable-diffusion-webui/models/ControlNet
路径中。
ControlNet 下方可以调节 Depth 预处理器的效果。
参数 | 作用 |
---|---|
Resolution | 调节预处理器的分辨率。 |
Remove Near %(depth_leres++ / depth_leres 预处理器) | 将较亮的区域剪辑为全白,从而有效地将图像的较近部分涂抹为平面,就像卡通人物撞到一块玻璃一样。值越高,深度贴图的近处部分就越容易被压平和模糊。 |
Remove Background %(depth_leres++ / depth_leres 预处理器) | 将较暗的区域剪辑为全黑,从而有效地使它们消失在阴影中。值越高,深度贴图的远处部分消失得越多。这对于剪切背景中不需要的元素非常有用。 |
下面是不同预处理器的效果。
预处理器 | 无 | depth_midas | depth_zoe | depth_leres++ | depth_leres | depth_hand_refiner | depth_anything_v2 | depth_anything |
---|---|---|---|---|---|---|---|---|
效果图 |
Note
depth_hand_refiner 预处理器专门用于识别手部并只生成手部的深度图,因为该预处理器在训练时可能缺少二次元图片的训练集,所以对于二次元图片的手部识别较差。
Segmentation☍
该控制类型通过对图片进行语义分割,使用不同的颜色对图片元素进行标记,使模型在生成图片时能够根据颜色信息在对应的颜色位置生成对应的元素。
Note
- 使用的模型:
Stable Diffusion XL 模型:Illustrious-XL-v0.1.safetensors,模型放在stable-diffusion-webui/models/Stable-diffusion
路径中。
ControlNet 模型:xinsir-controlnet-union-sdxl-1.0-promax.safetensors,模型放在stable-diffusion-webui/models/ControlNet
路径中。 - Segmentation 分割图像使用的颜色对应的元素可参考:大江户战士整理的Seg分隔.pdf。
ControlNet 下方可以调节 Segmentation 预处理器的效果。
参数 | 作用 |
---|---|
Resolution | 调节预处理器的分辨率。 |
下面是不同预处理器的效果。
预处理器 | 无 | seg_ofade20k | seg_ufade20k | seg_ofcoco | seg_anime_face | mobile_sam |
---|---|---|---|---|---|---|
效果图 |
ControlNet OpenPose☍
该控制类型通过骨架图,精准地控制人物动作。
Note
使用的模型:
Stable Diffusion XL 模型:Illustrious-XL-v0.1.safetensors,模型放在stable-diffusion-webui/models/Stable-diffusion
路径中。
ControlNet 模型:xinsir-controlnet-union-sdxl-1.0-promax.safetensors,模型放在stable-diffusion-webui/models/ControlNet
路径中。
ControlNet 下方可以调节 OpenPose 预处理器的效果。
参数 | 作用 |
---|---|
Resolution | 调节预处理器的分辨率。 |
下面是不同预处理器的效果。
预处理器 | 无 | openpose_full | openpose_hand | openpose_faceonly | openpose_face | openpose | dw_openpose_full | densepose_parula | densepose | animal_openpose |
---|---|---|---|---|---|---|---|---|---|---|
效果图 |
Note
- 因为部分预处理器在训练时训练集缺少二次元类型的图片,所以预处理器的识别效果较差。
- 可以使用 sd-webui-openpose-editor 扩展对骨架图进行编辑,导入图片到 ControlNet 扩展后,选择识别效果比较好的预处理器,如 dw_openpose_full,再点击 💥 对图片进行预处理,处理图片完成后可以在预处理结果看到处理好的图片,此时点击第二个编辑按钮进入 sd-webui-openpose-editor。
在里面对骨架图编辑好后,点击发送姿势到ControlNet,将编辑后的骨架图发送回 ControlNet 扩展中,再进行图片生成,这样可以得到比较好的效果。 - sd-webui-openpose-editor 扩展下载:https://github.com/huchenlei/sd-webui-openpose-editor
ControlNet Inpaint☍
该功能类似图生图的局部重绘功能,用于对图片进行重绘。
Note
使用的模型:
Stable Diffusion 1.5 模型:nai1-artist_all_in_one_merge.safetensors,模型放在stable-diffusion-webui/models/Stable-diffusion
路径中。
ControlNet 模型:control_v11p_sd15_inpaint_fp16.safetensors,模型放在stable-diffusion-webui/models/ControlNet
路径中。
下面是不同预处理器的效果。
预处理器 | 无 | inpaint_only | inpaint_only+lama | inpaint_global_harmonious |
---|---|---|---|---|
效果图 |
Note
- ControlNet Inpaint 的效果可在图生图中做到,在图生图界面中,将蒙版区域内容处理选择为潜空间噪声或者空白潜空间即可得到一样的效果。
- inpaint_only 预处理仅仅是对图片进行重绘,inpaint_only+lama 通过 Lama 模型对要局部重回的区域进行元素消除后再进行局部重绘,inpaint_global_harmonious 在对图片进行局部重绘后,根据重绘部分的结果,对非重绘部分进行整体调色,使重绘部分和非重绘部分的衔接更好。
ControlNet InstructP2P☍
通过提示词定向修改图片中某个元素,但保持基本构图一致。
Note
使用的模型:
Stable Diffusion 1.5 模型:nai1-artist_all_in_one_merge.safetensors,模型放在stable-diffusion-webui/models/Stable-diffusion
路径中。
ControlNet 模型:control_v11e_sd15_ip2p_fp16.safetensors,模型放在stable-diffusion-webui/models/ControlNet
路径中。
ControlNet Reclor☍
该控制类型用于对黑白图片进行重上色,根据提示词对图片的色彩进行还原,但保持原图的一致性。
Note
使用的模型:
Stable Diffusion XL 模型:Illustrious-XL-v0.1.safetensors,模型放在stable-diffusion-webui/models/Stable-diffusion
路径中。
ControlNet 模型:control-lora-recolor-rank128-sdxl.safetensors,模型放在stable-diffusion-webui/models/ControlNet
路径中。
ControlNet 下方可以调节 OpenPose 预处理器的效果。
参数 | 作用 |
---|---|
Resolution | 调节预处理器的分辨率。 |
Gamma Correction | 调整预处理得到的图片亮度和对比度。 |
下面是不同预处理器的效果。
预处理器 | 无 | recolor_luminance | recolor_intensity |
---|---|---|---|
效果图 |
ControlNet Tile☍
该控制类型能够保持和原图的一致性,并且能够为原图增加细节。在低 ControlNet 权重下可用于风格转换,高 ControlNet 权重下为图片增加细节。
Note
使用的模型:
Stable Diffusion XL 模型:Illustrious-XL-v0.1.safetensors,模型放在stable-diffusion-webui/models/Stable-diffusion
路径中。
ControlNet 模型:xinsir-controlnet-union-sdxl-1.0-promax.safetensors,模型放在stable-diffusion-webui/models/ControlNet
路径中。
ControlNet 下方可以调节 Tile 预处理器的效果。
参数 | 作用 |
---|---|
Resolution | 调节预处理器的分辨率。 |
Down Sampling Rate(tile_resample 预处理器) | 增加预处理器得到的图片模糊度,有助于 ControlNet Tile 为图片增加细节。值越高,模糊效果越强。 |
Variation(tile_colorfix+sharp / tile_colorfix 预处理器) | 调节变化的程度。 |
Sharpness(tile_colorfix+sharp 预处理器) | 为预处理后的图片增加锐化效果。 |
Sigma(blur_gaussian 预处理器) | 调节模糊效果。值越大,模糊效果越强。 |
下面是不同预处理器的效果。
预处理器 | 无 | tile_resample | tile_colorfix+sharp | tile_colorfix | blur_gaussian |
---|---|---|---|---|---|
效果图 |
ControlNet Shuffle☍
该控制类型通过打乱元素的图片,实现风格迁移(在整体上色方面)。
Note
使用的模型:
Stable Diffusion 1.5 模型:nai1-artist_all_in_one_merge.safetensors,模型放在stable-diffusion-webui/models/Stable-diffusion
路径中。
ControlNet 模型:control_v11e_sd15_shuffle_fp16.safetensors,模型放在stable-diffusion-webui/models/ControlNet
路径中。
下面是不同预处理器的效果。
预处理器 | 无 | shuffle |
---|---|---|
效果图 |
ControlNet Reference☍
该控制类型通过参考导入 ControlNet 的图片,将图片中的画风进行迁移。
Note
使用的模型:
Stable Diffusion XL 模型:Illustrious-XL-v0.1.safetensors,模型放在stable-diffusion-webui/models/Stable-diffusion
路径中。
ControlNet 下方可以调节 Reference 预处理器的效果。
参数 | 作用 |
---|---|
Resolution | 调节预处理器的分辨率。 |
Style Fidelity (only for Balanced mode)(仅在 ControlNet 控制模式为均衡模式下生效) | 调节风格迁移的强度。值越高,迁移画风的效果越强烈。 |
下面是不同预处理器下生成的结果。
预处理器 | 无(参考图) | reference_only | reference_adain+attn | reference_adain |
---|---|---|---|---|
效果图 |
ControlNet Revision☍
使用 CLIP Vision 理解导入 COntrolNet 扩展的图片,并作为提示词进行图片生成。
ControlNet 下方可以调节 Revision 预处理器的效果。
参数 | 作用 |
---|---|
Resolution | 调节预处理器的分辨率。 |
Noise Augmentation | 类似图生图中重绘幅度。 |
预处理器中 revision_clipvision 是将 CLIP Vision 解析图片得到的提示信息和原有的提示词共同控制图片生成,而 revision_ignore_prompt 则忽略原有的提示词,只使用 CLIP Vision 解析图片得到的提示信息进行图片生成。
IP Adapter☍
这个控制类型拥有较强的风格迁移效果,可用于保持人物特征一致性或者进行风格迁移。
Note
使用的模型:
Stable Diffusion XL 模型:Illustrious-XL-v0.1.safetensors,模型放在stable-diffusion-webui/models/Stable-diffusion
路径中。
ControlNet 模型:ip-adapter-plus_sdxl_vit-h.safetensors,模型放在stable-diffusion-webui/models/ControlNet
路径中。
ControlNet 下方可以调节 Tile 预处理器的效果。
参数 | 作用 |
---|---|
Resolution | 调节预处理器的分辨率。 |
Weight Type | 调节 IP Adapter 对模型权重的控制方式。 |
多 ControlNet 使用☍
不同的 ControlNet 类型可以共同控制图片的生成,在 ControlNet 扩展界面中可以看到 3 个 ControlNet 控制单元,可以将这些控制单元启用,并分别设置好不同的参数,即可使用多重 ControlNet 控制图片的生成。
下面是使用 ControlNet Reference + ControlNet Lineart 进行生图,可以根据自己的需求选择要使用 ControlNet。
如果需要使用 3 个以上的 ControlNet,可以在 SD WebUI 的设置 -> ControlNet -> Multi-ControlNet: ControlNet 单元数量调节要显示的 ControlNet 单元数量。
文生图和图生图中 ControlNet 的区别☍
在文生图中使用 ControlNet。相当于在图生图中将重绘幅度设置为 1 后使用 ControlNet。
所以,在图生图中如果重绘幅度低于 1,使用 ControlNet 时控制图片生成的条件为提示词 + 图片 + ControlNet,而在文生图中,使用 ControlNet 时控制图片生成的条件为提示词 + ControlNet。
ControlNet 预处理器和 ControlNet 模型的关系☍
ControlNet 模型在控制图片的生成时,需要使用一张图作为参考,但是 ControlNet 模型并不认识普通的图片,所以这就需要使用 ControlNet 预处理将图片处理成 ControlNet 模型认识的图片。
ControlNet 预处理器后的图片如上方不同 ControlNet 的作用部分中表格的处理后的控制图片的一样的效果。如果给 ControlNet 模型参考的图片是已经经过 ControlNet 处理过的图片时,就不需要再次经过 ControlNet 预处理器进行处理。
ControlNet 预处理器并不参与生图的采样过程,所以并不存在只兼容 Stable Diffusion 1.5 或者 Stable Diffusion XL 的说法。而 ControlNet 模型参与生图过程的采样过程,所以需要使用匹配版本的 Stable Diffusion 模型,如果出现mat1 and mat2 shapes cannot be multiplied
这种报错,这就说明 ControlNet 模型和 Stable Diffusion 模型的版本不匹配。