当前位置: 首页 > article >正文

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


http://www.kler.cn/a/228047.html

相关文章:

  • 2501,20个窗口常用操作
  • VPR概述、资源
  • 算法的时间复杂度
  • nvm安装详细教程(安装nvm、node、npm、cnpm、yarn及环境变量配置)
  • Acwing94递归实现排列型枚举
  • 基于Langchain-Chatchat + ChatGLM 本地部署知识库
  • vue3-setup语法糖 - 父子组件之间的传值
  • 《动手学深度学习(PyTorch版)》笔记7.1
  • yarn/npm certificate has expired
  • echarts绘制2D地图
  • 中国城乡建设统计年鉴,pdf、xls格式,时间覆盖2002-2022年
  • Dockerfile保留字
  • pgsql隐式联查的笛卡尔积和子查询性能
  • django微博热搜数据分析与可视化系统python毕业设计
  • 利用k8s Infra 容器,解决pod网络故障注入的问题
  • Python第十五章(文件)
  • spring boot打完jar包后使用命令行启动,提示.jar 中没有主清单属性
  • flink实战--flink的job_listener使用解析
  • 【Docker】Docker Registry(镜像仓库)
  • HTTPS之使用acme.sh申请免费ssl证书
  • Vue实现视频播放
  • 项目安全问题及解决方法-----xss处理
  • gerrit(2) | 为什么使用 gerrit
  • 蓝桥杯刷题--python-1
  • vue前端+nodejs后端通信-简单demo
  • 网络安全面试题收集