首页  >  教程  >  文章
2023-10-25 09:53

Stable Diffusion基础应用教程丨关于如何实现图片的额外功能/后期处理/高清化

"额外功能"对应的英文单词是Extras,算是直译。但是部分版本中的翻译是“后期处理”或者“高清化”,这都是意译,因为它的主要功能是放大图片、去噪、修脸等对图片的后期处理。注意这里边对图片的处理不是 Stable Diffusion 本身的能力,都是额外扩展的。

下面正式开始介绍“额外功能”的相关能力。

图片放大

先看最基本的图片放大能力。对于分辨率比较小的图片,如果强制用较大的分辨率展示,会出现图片模糊的情况,这时候就可以使用SD WebUI的图片放大功能。所谓图片放大就是在保持图片清晰度的前提下增加图片的分辨率,它还有个专业点的名词:超分辨率技术,简称为“超分”。

具体操作方式请参考下图:

图片

1、主菜单中点击进入“额外功能”。

2、点击“单张图像”,也就是一次只处理一张图片。后边的“批量处理”可以上传多张图片进行处理,“批量处理目录下图像”可以指定处理一个目录下的所有图片。

3、点击上传一张要处理的图片。

4、选择缩放比例。这里有两种方式:按照比例缩放和指定分辨率缩放,指定分辨率时可以设置是否自动裁剪,都很好理解,试试就明白了。

5、Upscaler1用来指定放大算法,常见的放大算法有下面几个:

无/None:单纯的放大,不做任何优化处理。

Lanczos:使用加权平均插值方法,利用原始图像自身的像素信息,增加图像的细节,从而提高图像的分辨率。传统的纯数学算法,效果一般。

Nearest:使用简单的插值方法,基于最近邻像素的值进行插值,从而增加图像的细节和提高分辨率。传统的纯数学算法,效果一般,还不如 Lanczos 的效果好。

LDSR:基于深度学习,通过使用轻量级的网络结构和残差学习,实现较高的超分性能和计算效率。适用于各种需要快速且准确地提高图像分辨率的应用场景,如实时视频处理、移动设备图像处理等。

ESRGAN:全称Enhanced Super-Resolution Generative Adversarial Networks (增强超分生成对抗网络),基于深度学习的超分辨率算法。增加了很多看上去很真实的纹理,但是有时可能会过度拟合,出现不好的效果。

4x-UltraSharp:基于ESRGAN做了优化,比较适合处理真人。

ESRGAN_4x:Real ESRGAN,完全使用纯合成数据来尽量贴近真实数据进行训练。腾讯贡献。

R-ESRGAN 4x+:基于Real ESRGAN的优化模型,适合放大真实风格的图片,常用。

R-ESRGAN 4x+ Anime6B:基于Real ESRGAN的优化模型,适合放大动漫风格的图片,常用。

ScuNET GAN:基于深度学习,使用生成对抗网络(GAN)进行训练。主要用在提高图像的视觉效果和感知质量,例如在图像增强、视频处理等。

ScuNET PSNR:基于深度学习,使用均方误差(PSNR)进行训练。主要用在提高图像的客观质量和准确性,例如在医学图像分析、监控视频处理等。

SwinIR_4x:使用Swin Transformer思想,基于自注意力机制的Transformer结构,适合各种图像的超分,比较通用。

这些算法会在首次使用它们时分别下载,你也可以提前下载它们,并放到指定的目录。我整理的SD绘画资源中已经收集了这些文件,下载方式请看本文最后的部分。

6、Upscaler2 用来避免 Upscaler1 过度处理的问题,比如磨皮太严重。可以使用一些普通方法算法,比如 Lanczos。Upscaler2 可见度是指图片放大时使用 Upscaler2 算法进行处理的比例,为0时完全不使用 Upscaler2.为1时只使用 Upscaler2.

7、点击“生成”。

8、放大后的图片在这里显示。

小结

这个图片放大功能主要是为了放大 Stable Diffusion 生成的低分辨率图片,因为图片分辨率越大对显存的要求也越大,所以对于显存较小的同学,可以先在文生图中生成一张低分辨率图片,然后再在这里放大。

对于修复模糊图片,这个图片放大功能其实能力有限,实际测试 WebUI 默认自带的放大算法也就是能去去噪点,消消锯齿,出图的效果并不是很好,特别是原本就很糊的图片。

不过可能存在其它的算法具备较好的模糊图片修复效果,大家可以找来试试。推荐一个放大模型的下载站点:https://openmodeldb.info/

修脸

虽然图片放大本身对修复模糊图片的效果有限,但是它附带了一个修脸的参数。如果文生图生成的人脸效果不好,比如磨皮太严重、人脸变形等,都可以在这里试试。对于模糊的人脸,也有比较好的修复效果。

修脸方法支持两个模型:GFPGAN 和 CodeFormer,操作方法参见下图:

图片

1、GFPGAN:腾讯开源的一个修脸模型,修复的细节比较清晰,人物形象的还原度比较高,气质保持的好。

2、CodeFormer:另一个修脸模型,修图的细节也比较清晰,皮肤纹理更真实一些,不过这个模型对牙齿的处理效果不好。这个模型还有一个面部重建权重的参数,取值范围0-1.0的时候模型会补充很多细节,面部改变较大;1的时候面部基本没有改变,不会补充很多细节,但是也有修脸的效果。

这两个模型可以一起使用,我们可以通过 GFPGAN visibility 和 CodeFormer visibility 来设置它们的参与度。

下面是几组示例。

1、原图是 Stable Diffusion 生成的,我用图片管理工具缩小了分辨率。可以看到,相比仅放大,加上修脸之后,人物的面部有了明显的改善。

图片

2、这是一张从网上收集的图片,原图就是比较模糊的老照片,分别单独使用GPFGAN和CodeFormer的效果。GFPGAN的人物气质拿捏的比较到位,CodeFormer面部纹理更真实一些,但是不宜将重建权重值设置的过小。

图片

3、这也是从网上收集的图片,这张照片破损比较严重,使用的GFPGAN模型,能修复一些破损。

图片


扫一扫,关注作者公众号

AI探索者,分享AI前沿知识跟实用技巧

2

相关文章