使用 Stable Diffusion WebUI 生成高分辨率图片或高清修复
查看「Stable Diffusion 专题」获取更多相关内容
如何在 Stable Diffusion WebUI 里创建高分辨率图片?在刚开始接触 SD 时通常的第一反应是修改「宽」和「高」的设定,但实际上这样做是有问题的
简单来说以 SD1.5 模型为例,这些模型基于 512 x 512 分辨率的图片数据进行训练的,那么如果设置生图宽高大于 512,那么就可能出现一些怪异画面,如多个头或奇怪的四肢。
所以,推荐的做法是根据使用的模型生成合适的分辨率图片,然后通过放大算法生成高分辨率图片。基于此,我们还可以将一些老照片通过放大算法增强图片的细节及改善图片的模糊。
高分辨率修复 (Hires. fix)
第一个方法是使用「高分辨率修复 (Hires. fix)」
在「文生图」生图参数里,勾上「高分辨率修复 (Hires. fix)」即可使用,简单来说「Hires. fix」是先生成一个低分辨率图片,然后再重绘放大
如我们想要一张 1024 x 1024 的图像,那么生图参数的宽高仍然设置为 512
,在开启「高分辨率修复 (Hires. fix)」后设置「放大倍数」为 2
即可生成 1024 x 1024 的图像,或者也可以在「放大倍数」右侧的宽高设置来指定具体数值
「高分迭代步数」一般来说设置为 0
即可,它会使用生图参数中的「迭代步数」相同的设置
「重绘幅度」会在生图的最后步骤对图片进行重绘,一般建议设置在 0.3
~ 0.5
,数值越高和原图差距越大,甚至变形
放大算法
目前来说自带的「放大算法」普遍推荐使用 R-ESRGAN 4x+
和 R-ESRGAN 4x+ Anime6B
(Anime 表示这是一个适合用于动漫图片的)
除了自带的建议大家关注 Civitai 上的 Upscaler 模型分类,看看当下好评的都有哪些,如 4x-Ultrasharp、8x_NMKD-Superscale_150000_G 等等
下载后放到 SD WebUI 的 /models/ESRGAN
目录里面,然后重启 WebUI 就可以选择使用了,动手试试吧
后期处理
在顶部「后期处理」中可以将已有的图片进行处理,这类似「重绘幅度」设置为 0
的「高分辨率修复 (Hires. fix)」操作,也类似于 Photoshop 的智能锐化
在「后期处理」的「图像放大」使用「图生图」中提到的 R-ESRGAN 4x+
或 R-ESRGAN 4x+ Anime6B
,亦或是你下载的其他「放大算法」
另外,「后期处理」的「图像放大」可以使用两种放大算法,在选择第二种放大算法后,设置「放大算法 2 强度」来控制第二种放大算法的权重,如果不使用则设置默认的 None
即可
SD upscale
除了「高分辨率修复 (Hires. fix)」,中还可以使用「图生图」底部「脚本」里的「SD upscale」
「放大倍数」和「放大算法」已经有所了解,这里的新东西就是「分块重叠像素宽度」,要理解这个需要先大致了解的「SD upscale」工作流程
「SD upscale」会将需要放大的图片按需要进行切割成一定数量的小图片,然后再将一个个小图片进行处理放大后,重新拼接在一起。那么如默认的「分块重叠像素宽度」设置为 64
,各个图片边缘都会与相邻块重叠 64 像素,如此控制相邻块之间的重叠程度来减少拼接痕迹