10天前,ControlNet 版本从1.0更新到了1.1版本,新版本的模型数量从原来的 8 个增加到了 14 个,其中 11 个已完成模型,2 个实验模型和 1 个未完成模型,这些模型里也包含了 1.0 版本的模型,并且相对于 1.0 版本优化得更好,生成图片的质量也远胜 1.0 版本。而且更新后的版本里模型名称也有了一定的更改,变得更为标准和规范。
至于 ControlNet 是什么,就不做过多介绍了,不清楚的网上查一下资料,概念性的文字说太多没意思,可以简单的理解为图生图的高级版,但不是图生图,总之这个扩展插件很强大,如果还没安装的话,那装就对了。
下面讲一下新版本 ControlNet 如何更新及安装。
一、更新
如果你原来安装过 ControlNet 扩展插件。在 Extensions扩展里面选择 Installed已安装选项,点击上方的 Check for updates查检更新按钮,等更新完成后再点击Apply and restart UI 应用并重启UI就能完成版本更新。
如果你原来没有安装过 ControlNet 扩展插件。同样在 Extensions扩展里面选择 Available可用选项,单击 Load from加载扩展插件列表,在出现的结果列表里搜索 ControlNet 并点击 Install安装即可,记得安装完成后重启一下UI界面。
如果从UI界面安装更新失败,还可以从 github 上直接下载压缩包,解压到主程序目录下的extensions 文件夹进行覆盖安装。记得先备份原来的版本,毕竟软件的东西谁也不知道会出现什么bug,万一出现问题了还能恢复回来。
二、更新模型文件
插件更新完成后,模型是不是会自动更新的,需要到Huggingface 上手动下载更新,这个网站不需要坐飞机就可以直接上。直接在 Huggingface 主页上输入 ControlNet 搜索就可以找到 1.1版本的模型下载页面。
模型列表中的 .pth 文件就是需要的模型,直接点击右侧向下的箭头即可下载。
这里要注意,1.1 版本除了模型文件外还会有一个类型为 .yaml 的配置文件,这个配置文件也要一起下载。下载完成后放入到ControlNet 的 models 文件夹即可。
到这里大家应该也发现了 1.1 版本的模型跟 1.0 版本的模型有很大的不同,首先是文件大小比 1.0 版本小了很多,1.0 版本的文件大小为 5.31GB,1.1 版本的文件只有1.45GB,相比之下少了 70%。其次是文件的名称也不一样,这里也主要介绍一下文件名称。
上图是官方介绍的文件名命名方法,可以看出整个文件名被分为 6 个部分,为别为:项目名、版本标志、品质标志、基础模型版本、模型功能名称、扩展名。因为官方的介绍都是英文的,这里也做个小翻译吧。
1、Project Name 项目名称
第一部分,如果是 Control 代表该模型是官方模型,如果不是 Control 开头则表示该模型是第三方模型,比如 color、sketch、style 这几个模型,都是 t2ia 开头的,就是第三方模型。
2、Version Flag 版本标志
版本的标志是一个字母 v 后面加对应版本号的形式,像官方的图示就表示版本号为 1.1 ,这个很简单。
3、Quality Flag 品质标志
品质标志,换成模型状态应该更好理解,用一个字母表示,跟在版本号的后面,有三种状态,分别是p/e/u,p 表示该模型是最终版本,可以正常使用;e 则表示该模型处于测试或试验阶段,可能会有bug;u则表示该模型还没有完成。除以上 3 种状态后还有一种状态官方没有标出来,就是修改版 f1 ,表示该模型之前出现过bug,被修复过 1 次,当然后面可能也会有 f2/f3/f4 等等。
4、Base Model Version 基础模型版本
基础模型版本也就是 stable diffusion 模型的版本,图示的SD15就表示使用的是 stable diffusion 的模型版本为 1.5 ,如果是 SD21 就表示使用的是 stable diffusion 的模型版本为 2.1。
5、Control Method 模型功能
这个名称就体现了该模型是做什么用的,功能是什么,很好理解,每个模型后面后面会有详细的介绍,这里就先略过。
6、Extension 扩展名
ControlNet 模型的扩展名为.pth,表示模型的文件格式。1.1 版本的模型不同于 1.0 版本的模型,1.1 版本的每一个模型会有一个与之对应的配置文件,文件扩展名为 .yaml,所以下载模型的时候也要把配置文件一起下载,放到 ControlNet 模型文件夹里面。当然如果是从UI界面进行安装及更新插件,更新的时候就会自动把这个配置文件下载了,不需要再下载一次。所以在使用模型的时候要留意一下有没有与之对应的配置文件,如果没有就要下载补充完整,不然模型会无法使用。
三、模型与预处理器
因为 ControlNet 对图片的控制更严格,所以每一个 ControlNet 模型都需要一张与之相对应的底图,openpose 有 openpose 的底图,canny 有 canny 的底图,这些底图都是不能混用的,如果混用就会导致出错或者坏图。
所以就需要一个与模型相对应的预处理器来把原图处理成模型需要的底图,当然底图也不一定非得要预处理器生成,也可以从网上下载或者使用其他的扩展插件来生成,但是不管用何种方式,都要有底图。
一个模型对应着一个或者多个预处理器,但是在新版本中,也有模型是不需要底图的,所以就没有相对应的预处理器,具体的对照关系可以参考下面这张表格,根据实际情况选择合适的预处理器。
本来计划是一篇写完的,但是写到这里发现篇幅又太长了,所以还是分为两部分吧,这篇就到这里,下一篇会对这些模型以及预处理器做一个详细的介绍。