stable diffusion学习笔记——高清修复

ai画图中通常存在以下痛点:

  1. 受限于本地设备的性能(主要是显卡显存),无法跑出分辨率较高的图片。生图的时候分辨率一调大就爆显存。
  2. 即便显存足够。目前主流的模型大多基于SD1.0和SD1.5,这些模型在训练的时候通常使用小分辨率图片训练,在生成高分辨率图片时画面中很容易出现多人物/多肢体的情况。

以上问题说明了,玩ai画图,需要掌握提高画图分辨率的方式,同时要掌握方式对应的技巧,避免出现画面内容的问题。

超分修复

通过常见的ai超分辨率算法就可以增加图片的分辨率。这种方式本质上只是拉伸了图片之后适当处理了画面中的模糊区域。

这种方式的优点 是对本地设备没有要求,可以无压力成倍增加图片的分辨率。缺点是画面的细节并没有随着分辨率增加而增加。

高清修复(Hi-Res Fix)

第一种最常见的高清修复方式就是Hi-Res Fix,其原理是在低分辨率原图的基础上跑一次图生图,生成新的高分辨率图片。

放大算法:放大操作所使用的算法,R-ESRGAN 4x是现在比较流行的放大算法,如果是生成二次元图片可以使用该算法针对卡通图片的版本。部分模型发布者会根据实验推荐模型对应的放大算法,优先使用推荐的算法。

放大倍数:文生图生成的低分辨率图片分辨率增大的倍数。

高分迭代步数:放大算法迭代的步数,通常设置为0,即与文生图的迭代次数相同。

重绘幅度:放大图片本质上是重新生成一张新的图片,新的图片如果和原来的图片内容差异较大也是不符合预期的。重绘幅度就是新图片相对老图片的变化率。通常如果要让新图片的结构没有明显变化,重绘幅度要设置在0.5以下。

这种高清修复的方式使用起来比较简单,优点 是图生图保证分辨率增大之后画面也能有相匹配的画面细节。缺点是无法突破显存的上限,显卡显存不支持的分辨率依旧是跑不出来。

Tiled Diffusion + Tiled VAE

tiled diffusion的原理是对原图片进行分块处理。对每一个分块再进行图生图操作。在占用显卡显存的同时尽可能得到分辨率高,且画面细节足够丰富的图片。

首先,在这两个插件之外要设置好重绘幅度,由于在使用此功能的场景下通常会将分辨率提升数倍,因此重绘幅度应设置为0.4以下。

在tile diffusion中通常使用MultiDiffusion方案。放大算法的选取原则和高清修复相同。在设置放大比例时可以勾选保持输入图像大小,再设置放大倍数,这样放大倍数就不受原有的图生图放大倍数影响了,其它参数使用默认值即可。设置潜空间分块高度时建议将宽度和高度设置为相同值。

tile vae也使用默认参数即可,如果生成的图像饱和度与原图差异很大,可以开启快速编码器颜色修复再跑一次。

如果依旧出现了爆显存的情况,在tile vae插件里将编码器分块大小减少即可。

相关推荐
呜呜。2 小时前
WebSocket-学习调研
websocket·网络协议·学习
Tonya432 小时前
测开学习DAY28
学习
Lynnxiaowen2 小时前
今天我们开始学习ansible之playbook的简单运用
linux·运维·学习·云计算·ansible
心无旁骛~3 小时前
MotionTrans: 从人类VR数据学习机器人操作的运动级迁移
学习·机器人·vr
敲敲了个代码3 小时前
11月3-5年Web前端开发面试需要达到的强度
前端·vue.js·学习·react.js·面试·职场和发展·web
提娜米苏4 小时前
Bash Shell脚本学习——唇读数据集格式修复脚本
开发语言·学习·bash
喂自己代言4 小时前
心理健康与生活质量
笔记
不夜牛仔4 小时前
算法笔记17 - 贪心算法介绍与思路 | 路灯摆放问题 | 活动安排问题 | 最低字典序拼接 | 金条分割问题 | 项目投资问题
笔记·算法·贪心算法
青衫码上行4 小时前
【Java Web学习 | 第十篇】JavaScript(4) 对象
java·开发语言·前端·javascript·学习
大邳草民4 小时前
深入理解 Python 的属性化方法
开发语言·笔记·python