一.Tile特性
模型文件:control_v11f1e_sd15_tile.pth
配置文件:control_v11f1e_sd15_tile.yaml
模型下载:https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main
1.在SD Web UI工具中经常翻译为“分块”
1.1.它的主要作用是在保持图片整体布局的基础上给照片添加细节
1.2.基于这个特性,经常结合各种插件做图片的精细放大处理
1.2.1.用于对图片进行高清修复改善画质
1.3.另外它还有一个很重要的功能,就是用来转换图片风格
1.3.1.比如真人漫改,漫改真人、各种艺术字制作等
2.该模型有多种用途,该模型有两种行为
2.1..忽略图像中的细节并生成新的细节
2.1.1.很多人理解为是增强细节,实际上是生成新的细节
2.1.2.因此可以使用该模型去除不良细节并添加精细细节
2.1.3.完成这个细节处理的并不是预处理器
2.1.3.1.而是你选择的模型,当细节不理想可以换个模型试试
2.1.4.图片修复细节放大、超分辨率图片、高清修复改善画质就是用的这功能
2.2.如果本地图块内容和提示词不匹配,则忽略全局提示,并使用图块内容引导扩散
2.2.1.正常情况下,提示词会影响每一个图块内容的扩散
比如提示是“一个漂亮的女孩”,把一张图片分割成4×4=16个块进行放大(脚本)
那么得到的会是16个“漂亮的女孩”,而不是“一个漂亮的女孩”
3.ControlNet Tile 可以解决这个问题
3.1.对于给定的 Tile,它可以识别Tile内部的内容并增加所识别语义的影响力
3.1.1.如果内容不匹配,它还可以减少全局提示的影响力
4.可以看到提示是“一个英俊的男人”,但模型并没有在那片树叶上画“一个英俊的男人”
4.1.相反,它识别出树叶上相应的亮光
5.补充:为什么要分块扩散?
5.1.其实很简单,SD中如果想生成一张4K/8K的大图,一般是不会直接输出这个大小的
5.2.一是太大内容容易出错,二是容易爆显存,速度还慢
5.3.所以SD就出了个办法就是把4K/8K的大图切成一小块一小块
5.4.每一小块扩散完然后拼接起来。速度快,一般的显卡也都能跑
6.这也是tile与图生图不同的地方,图生图修复完后经常发现A已经变成与A相似的B
7.而tile无论是在修饰、修复、增加或者改变细节的时候都能很好的锁定主体
7.1.修复完之后A还是A,我觉得这就是tile的核心
8.例如上面是图生图+tile的方式改变女主的头发颜色,女主还是女主
8.1.但是女主除头发变化外其他地方也也被加以修饰
8.2.要想只修改头发的颜色,要用的局部重绘
8.3.这里个人认为同时开启图生图和tile模型时,图生图基本上就是个傀儡
8.4.主要控制图片生成的元素成模型+tile+提示词,基本没有图生图什么事情
9.预处理器
tile_resample(分块-重采样):仅保持图片布局,颜色会进行一些变化(常用)
tile_colorfix+sharp(分块-固定颜色+锐化):保持图片布局的同时固定图片的颜色
tile_colorfix(分块-固定颜色):保持图片布局的同时固定图片的颜色
blur_gaussian(模糊-高斯模糊):主要用于调整景深用的
9.1.tile_resample(分块-重采样)的逻辑就是缩小图片,再根据缩小图片中的细节去重绘
9.1.但重绘后的图在颜色的饱和度要低一些
9.2.tile_colorfix(分块-固定颜色)主要针对tile_resample有时会导致颜色偏移的问题
9.2.1.请注意,tile_colorfix 始终锁定颜色,这意味着即使在“我的提示更重要”模式下您也无法编辑颜色
9.2.3.例如:提示词中加入“穿着蓝色连衣裙”。
tile_resample:(衣服颜色改变);tile_colorfix(所有参数与tile_resample相同):(失败/崩溃)
tile_colorfix预处理器信息参考:https://github.com/Mikubill/sd-webui-controlnet/discussions/1431
9.3.tile_colorfix+sharp(分块-固定颜色+锐化):在tile_colorfix基础上增加了一个锐化,在处理真实人物时区别并不明显。
10.高清修复小图
10.1.按照给出的小图,重新生成一张高度相似的大图
10.1.1.主要用在修复不良图片,比如模糊变清晰
10.2·打开文生图,在提示词中输入小图的简单描述关键词
修改下输出图片的大小,最好与小图比例一致
采样方法、迭代步数与CFG这些按自己喜好来
10.3.选择controlnet,点选启用,导入要修复的小图
预处理选择tile,模型也选择tile。然后直接运行就可以
10.4.新生成的图片与初始图片还是非常相似的,比起图生图来说好用很多
11.改善细节
11.1.改善细节用得最多的地方就是将末完成的草图细化并完成,或者给原图增加一些细节
11.1.1.还有手绘转真人,真人转手绘,都可以用这个办法
11.2·打开文生图,在提示词中输入草图的简单描述关键词
11.2.1.修改下输出图片的大小,最好与草图比例一致
11.2.2.采样方法、迭代步数与CFG可以多尝试一下
11.3.选择controlnet,点选启用,导入草图
11.3.1.预处理选择tile,模型也选择tile。然后直接运行就可以
11.4【个人疑问】:改善细节能不能用图生图模式?
个人觉得改变较大时用文生图,要想改变小就用图生图(重绘不要太大)
12.细节替换
12.1.细节替换其实与改善细节本质上没有什么不同,使用方法也是一样
12.2.区别就在于提示词的改变,改善细节提示词与原图是一致的
12.3.而细节替换是要改变提示词,进而影响到新图的生成
12.4.例如:想将一张美女图的头发从黑色变成红色,这就要用到细节替换
12.4.1.如果只是想让头发更加精细,就要用到改善细节
13.超分辨率放大
13.1.超分放大,主旨就是放大,如果是要改善细节等最好不要在这一步来操作
13.2.SD中如果想生成一张4K/8K的大图,一般是不会直接输出这个大小的
13.3.一是太大内容容易出错,二是容易爆显存,速度还慢
13.4.所以SD就出个办法就是把4K/8K的大图切成一小块一小块,每一小块扩散完然后拼接起来
13.5.速度快,一般的显卡也都能跑
二. tile+Tiled Diffusion
1.严格来讲,这个扩展其实是由TiledDiffusion和TiledVAE组成
1.1.这个扩展的核心就是将图像区块化处理
2.这样处理的作用有两点:1.提高分辨率 ; 2.降低绘制显存
3.Diffusion负责扩散,VAE负责编码,各有分工,所以,在使用的时候,两者必须同时启用
4.git地址:https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111.git
5.对于高清修复的原理,本质上其实就是再来一次额外的图生图
5.1.但是这种方式无法突破显存上的限制,并且绘制速度特别的慢
5.2.后来就有SD放大和进阶的Ultimate Upscale脚本(后面有介绍到)
5.3.其实已经有分区块儿绘制的雏形,但是可控性差,并且绘制的速度也偏慢
6.TiledDiffusion插件的优势就是:效果好、效率高以及可控性强
6.1.并且最重要的是通过有效方法优化显存利用
7.TiledDiffusion和TiledVAE教程:https://zhuanlan.zhihu.com/p/718620173
8.这张照片现在有点模糊,操作一般是把它先变清晰之后
8.1.然后再加一些细节锐度。如果上来就给很高的参数的话
8.2.可能会造成一些细节上的扭曲变形
9.打开Tiled Diffusion,然后把噪声反转打开,参数放小一点
9.1.如果把噪声反转的步数调大的话,图片就很模糊,会造成很多很奇怪的细节
9.2.这里的细节保持为1,保留一定的细节,要不然一会儿什么都没有了,其它保持默认
10.这张图片的清晰度和细节已经有一定程度的提升,现在把它发送到图声图中
10.1.替换这张照片,然后再对它最后进行一个整体上的锐化处理
11.将上面细化后的图片进行放大处理
11.1.打开Tiled Diffusion。放大算法选择R-ESRGAN 4x+,放大倍数3倍
11.2.启用噪声反转,步数25步。Renoising Strength选择0.5
11.3.打开controlnet Tile。其他参数都是默认的,重绘幅度是0.75,基本上保留了原图的一个结构
三. tile+脚本(SD upscale)
1·把低分辨率原图A导入图生图,并输入原图A的原本关键词(填入简单描述关键词)
2·选择模型,如果原图A是写实照片选择写实底模型,如果是二次元请选择二次元底模型
2.1.忽略图片原有细节并生成新的细节,这个细节处理的并不是预处理器,而是选择的模型
2.1.1.所以模型一定要选对。
3·采样方式和提示词引导系数等参数可以参考
3.1.重绘幅度0.01-0.3, 同时画布尺寸要和原图一致
3.1.1.重绘尽可能低,否则放大时会出现方格
4·选择controlnet,点选启用。预处理选择tile,模型也选择tile
4.1.DownSampling Rate的数值是降低分辨率倍数,数值越大降低倍数越多
4.1.1.这里选择默认不进行改变,小伙伴们可以自行尝试
4.2.分块重采样的原理大致是,利用原图A画面降低的像素信息内容,重新引导生成
4.2.1.类似图生图的重绘控制,但是控制效果更强
5·选择脚本SD upscale放大,倍数自选
5.1.放大算法写实选择4X+,如果是二次元选择4X+Anime6B
5.2.只有图生图才有SD upscale放大脚本,文生图是没有的。4X-Ultrasharp算法也不错
6.总结
6.1.使用脚本放大时,重绘幅度不能过大,最好不要超过0.2
6.1.1.否则提示词将可能影响每一块的扩散,出现一张分为多块的图片
6.2.原图太小或模糊时不适合用此脚本
6.2.1.因为此脚本重绘幅度不能太大,无法将模糊的部分重新生成
6.2.2.推荐使用高清修复小图的方法,再来用超分放大
三.tile+脚本Ultimate SD Upscale
1.这个方法与方法二差不多,只是选择的放大脚本不同
2.内置脚本,没有的可以去扩展里搜索安装
3.放大算法写实选择4X+,如果是二次元选择4X+Anime6B,4X-Ultrasharp算法也不错
3.1.其它参数默认即可
4.无论是使用Ultimate SD upscale还是ControlNet+Ultimate SD upscale进行放大
4.1.其处理时间都会远远大于AI放大法,相应的效果也会更好
4.1.1.而普通的SD放大能真实的还原图片原本信息,不做修改
4.1.2.而且处理时间很短,但也意味着会放大图片本身存在的瑕疵
4.2.upscale插件及放大算法安装
4.2.1.可以直接搜索upscale进行安装,网址安装:https://huggingface.co/lokCX/4x-Ultrasharp/tree/main
4.2.3.4X-Ultrasharp是要单独下载的,模型下载:https://gitcode.net/explore
4.3.放大模型在第一次使用会自动下载,只是可能会慢一些
4.3.1.可以将上面模型下载下来并放入下面文件夹
四.遇到的问题
1.使用了tile再使用脚本放大,重绘幅度只要超过4就会出现方格,重绘幅度太小改变细节又少
答:超分放大tile+upscale; 主要作用就是放大而不是增加细节
所以重绘幅度不能太大,建议0.05
太大容易出现方格错误,原始图片太小或模糊时
可以先使用高清修复小图的方法后,再使用超分的方法
2.使用tile无法锁定主体,主要是人脸,A已不是A的问题
答:有人说最好使用人脸lora
3.随着学飞AI的深入,大家都在用ComfyUI,是不是要跳过SD呢