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插件里将编码器分块大小减少即可。

相关推荐
三水不滴1 小时前
Redis 过期删除与内存淘汰机制
数据库·经验分享·redis·笔记·后端·缓存
wdfk_prog2 小时前
[Linux]学习笔记系列 -- [drivers][i2c]i2c-dev
linux·笔记·学习
土拨鼠烧电路2 小时前
笔记03:业务语言速成:“人、货、场”模型与IT系统全景图
笔记
2301_812731413 小时前
CSS3笔记
前端·笔记·css3
越努力越幸运5083 小时前
CSS3学习之网格布局grid
前端·学习·css3
chillxiaohan4 小时前
GO学习记录——多文件调用
开发语言·学习·golang
小乔的编程内容分享站4 小时前
记录使用VSCode调试含scanf()的C语言程序出现的两个问题
c语言·开发语言·笔记·vscode
中屹指纹浏览器5 小时前
2026年指纹浏览器技术迭代与风控对抗演进
经验分享·笔记
1104.北光c°5 小时前
【从零开始学Redis | 第一篇】Redis常用数据结构与基础
java·开发语言·spring boot·redis·笔记·spring·nosql
Funny_AI_LAB5 小时前
AI Agent最新重磅综述:迈向高效智能体,记忆、工具学习和规划综述
人工智能·学习·算法·语言模型·agi