AI 绘画 | Stable Diffusion 高清修复、细节优化

前言

在 Stable Diffusion 想要生成高清分辨率的图片。在文生图的功能里,需要设置更大的宽度和高度。在图生图的功能里,需要设置更大的重绘尺寸或者重绘尺寸。但是设置完更大的图像分辨率,需要更大显存,1024*1024的至少要电脑的空余显存在8G以上。如显存不够,就会爆显存生图失败。即使显卡的显存够用,更大的分辨率的生成的时间也会越久。这里我们就需要高清修复的功能了,这个功能能大大降低生成高清图对显存的要求。

  • 目前主要有三种方式,分别是高清修复(Hi-Res.Fix)、SD放大(SD Upscale)、附加功能放大。
    在这里插入图片描述

高清修复(HiRes.Fix)

高分辨率修复 (Hires. fix)是指使用高分辨率(HiRes)修复(.Fix)的稳定扩散(Stable Diffusion)技术。只在文生图的功能有这个选项,位置在采样算法下方,点击展开后,有6个参数设置。分别是方法算法,高分迭代步数,重绘幅度,放大倍数,修复后的宽度和高度设置。
在这里插入图片描述
下图中的从512512到10241024是指我们文生图的设置的宽高是512512,要重新修复生成的图片的宽高是10241024。
在这里插入图片描述
这里我们先简单讲解下这些参数的作用

放大算法

简单来说就是我们要把一张512512的图片变成10241024的高清图片的放大算法。算法选择框里包含的放大算法有16种。
在这里插入图片描述

  • Latent
    Latent 放大算法是一种基于 VAE 模型的图像增强算法,通过将原始图像编码成潜在向量,并对其进行随机采样和重构,从而增强图像的质量、对比度和清晰度。这种方法通常能得到不错的效果,但与4x-UltraSharp、R-ESRGAN等相比,显存消耗比较小,但效果不是最优。
  • Latent (antialiased)
    结合了抗锯齿(antialiasing)技术的图像Latent放大算法。抗锯齿是一种用于消除图像中锯齿状边缘的技术,常用于提高图像的视觉质量。
  • Latent (bicubic)
    Latent 放大算法是一种图像超分辨率技术,可以通过插值算法来放大图像的尺寸,从而提高图像的分辨率。其中,双立方插值算法(Bicubic Interpolation)是一种常见的插值算法,它基于双线性插值算法,通过扩展影响范围至邻近的16个像素点,依据对未知像素点P的远近影响进行插值计算,从而得到更细致的影像。
  • Latent (bicubic antialiased)
    结合了双立方插值算法(Bicubic Interpolation)和抗锯齿(Antialiasing)技术的图像超分辨率技术的Latent放大算法。该算法通过插值算法来放大图像的尺寸,同时消除锯齿状边缘,从而提高图像的分辨率和质量。
  • Latent (nearest)
    结合了最近邻插值算法(Nearest Neighbor Interpolation)的图像超分辨率技术的Latent放大算法。该算法通过插值算法来放大图像的尺寸,同时保持图像的原始像素值,从而提高图像的分辨率和质量。
  • Latent (nearest-exact)
    结合了最近邻插值算法和双线性插值算法的特点的Latent放大算法,以达到更精确的放大效果。
  • None(无)
    没有使用放大算法。如何重绘幅度设置为0的画,单纯改变图像的宽高。图片放大程度越高,图像越模糊。不建议选择这个,选择None 生成图片速度和其他算法比不经没有提升,清晰度也比不上使用算法放大的。
  • Lanczos
    Lanczos算法是一种将对称矩阵通过正交相似变换变成对称三对角矩阵的算法,以20世纪匈牙利数学家Cornelius Lanczos命名。Lanczos算法是一种注重质量的放大算法,在缩小画面时能保持较好锐度。
  • Nearest
    最临近点插值算法(Nearest Neighbor)是一种最简单也是速度最快的一种算法。其做法是将放大后未知的像素点,将其位置换算到原始影像上,与原始的邻近的4周像素点A,B,C,D做比较,令P点的像素值等于最靠近的邻近点像素值即可。
  • BSRGAN
    BSRGAN是一种第三类放大算法,其核心是通过建立一个对抗网络,让这个网络去判断图像放大的好坏,最终得出成功放大的图像。
  • ESRGAN_4x
    ESRGAN_4x是使用生成对抗网络(GAN)技术进行图像放大的算法,其工作原理是将图像分割成小块,然后以生成式对抗网络算法来进行局部演算,最后再统一拟合。该算法比系统自带的其它放大演算法更加高效,能够增加细节纹理,图像质量更高。
  • LDSR
    LDSR算法是一种深度卷积神经网络(DCNN)实现的图像超分辨率技术。它具有高精度、高效率、易于实现等优点,在图像超分辨率等领域得到了广泛应用。不建议选择这个,出图时间是其他算法的好几倍,太慢了!!!
  • R-ESRGAN 4x+
    ESRGAN_4x的增强版,使用它将原图放大四倍之后,仍能充分保留原图细节的连贯性。它工作原理是通过将图片分割成小块,然后再以生成式对抗网络算法来进行局部演算,最后再统一拟合。所以,它比系统自带的其它放大演算法更加高效,并且能够增加细节纹理,图像质量更高。
  • R-ESRGAN 4x+ Anime6B
    R-ESRGAN 4x+ Anime6B 是一种结合了 R-ESRGAN 4x+ 和 Anime6B 两种算法的图像放大技术。
    R-ESRGAN 4x+ 是一种基于生成对抗网络(GAN)的图像超分辨率算法,可以将低分辨率的图像通过神经网络模型增强到4倍的分辨率。该算法通过生成器网络(Generator)和判别器网络(Discriminator)相互对抗,以提高生成器的超分辨率效果。
    Anime6B 是一种插画模式,可以应用于图像的放大过程,旨在补充细节并增强色彩。
    将这两种算法结合使用,可以在保证图像质量的同时,增加更多的细节和色彩,从而得到更加丰富和生动的图像效果。这种技术在动漫、游戏、插画等领域中得到了广泛的应用。
  • ScuNET
    ScuNET是一种真实感图像超分辨率增强方法。
  • ScuNET PSNR
    ScuNET的PSNR值(峰值信噪比)是评价图像质量的一种指标,PSNR值越高,说明图像的质量越好。ScuNET是一种真实感图像超分辨率增强方法,通过自注意力机制和残差学习,能够有效地提高图像的分辨率和视觉效果。
  • SwinIR_4x
    SwinIR_4x是一种基于Swin Transformer的图像超分辨率算法,使用4倍放大倍数进行超分辨率计算。该算法使用小尺寸卷积核来模拟感受野更大的卷积,将小尺寸的卷积核通过窗口分割和跳跃连接,将小尺寸的感受野扩大到大尺寸的感受野。通过这种方式,SwinIR_4x能够有效地提高图像的分辨率和视觉效果。

高分迭代步数

高分迭代步数即高质量高分辨的的迭代次数,原图和要放大倍数4倍以内, 高分迭代步数对最终的画质和细节只有很小的影响,肉眼很难看出来。越高的迭代步数步数,越要更长的出图时间,所以建议对设置为0。

重绘幅度

即在原来文生图的基础上,重新绘制的程度。SD web的默认值是0.7。同一随机种子和其他参数、提示词完全相同的情况下,重绘幅度幅度越大和原图越不像。

放大倍数

放大倍数即将文生图设置的原始宽高放大多少倍。放大倍数越大,需要的显存越大、出图时间越久。

宽高设置

除了通过设置放到倍数以外,还是可以通过设置要高清修复的宽度和高度来控制最终生成图片的大小。宽度和高度设置有一个不为0时,放大倍数设置的参数失效。
在这里插入图片描述

SD Upscale(SD 放大脚本)

SD Upscale 是Stable Diffusion web ui的第三方脚本(SD秋叶整合包内自带)。它能解决因为显存不足,而无法生成高分辨率图片的问题。原理是通过图像分块按比例放大图像。安装这个插件后,它只在图生图的功能的脚本显示,文生图的脚本选择框没有。

安装

通过国内镜像仓库 https://gitcode.net/ranting8323/multidiffusion-upscaler-for-automatic1111下载后,解压到 SD web根目录下的extensions文件夹内,或者通过web页面中的扩展》》从网址安装里填入仓库地址,安装即可。
在这里插入图片描述
这两种方式选则其一弄好后,重启下服务就安装成功了!
在这里插入图片描述

参数设置介绍

安装后在图生图面板网页最下方的脚本选择框里,选择SD Upscale 就能展开SD Upscale 参数设置。
在这里插入图片描述
在这里插入图片描述
选择SD Upscale 后,出现以下参数设置的面板。只有三个参数设置,一是分块重叠像素宽度、一个是放大倍数、一个是放大算法。放大倍数和放大算法上面已经说过,这里主要解释下什么是分块重叠像素宽度?
在这里插入图片描述

分块重叠像素宽度

“分块重叠像素宽度”可以理解为在进行图像处理或计算机视觉任务时,将图像分割成多个小块,并且每个小块之间会有一定程度的重叠。这里的“重叠像素宽度”就是指这些小块之间的重叠区域的大小。

这样做通常是为了在处理图像时能够更好地捕捉到图像的整体信息,避免出现边界效应或者信息丢失。通过调整重叠区域的大小,可以平衡图像的整体效果和计算效率。

分块重叠像素宽度的设置大小设置需要要根据具体的任务和需求来决定。

在图像处理或计算机视觉任务中,分块重叠像素宽度的设置需要考虑以下几个因素:

  • 图像分辨率和尺寸:对于高分辨率的图像,分块重叠像素宽度可以设置得相对较大,以更好地捕捉图像的细节和整体信息。而对于低分辨率的图像,则可以设置较小的重叠宽度,以避免浪费计算资源和产生过多的噪点。
  • 任务特点和需求:不同的计算机视觉任务对图像处理的要求和效果不同。例如,在图像分割或目标检测任务中,分块重叠像素宽度可以设置得相对较大,以更好地捕捉到目标物体和其周围的区域。而在图像去噪或超分辨率任务中,则可以设置较小的重叠宽度,以避免引入过多的噪点或产生过度锐化的效果。
  • 计算资源和时间限制:分块重叠像素宽度的设置也受到计算资源和时间的限制。如果处理任务需要大量的计算资源和时间,那么重叠宽度的设置应该相对较小,以减少计算量和时间成本。

综上所述,分块重叠像素宽度的设置需要根据具体的任务和需求来决定,需要权衡考虑图像分辨率和尺寸、任务特点和需求以及计算资源和时间限制等多个因素。一般情况下,我们维持默认就行。越大分块重叠像素宽度,需要耗费更多的计算资源。

后期处理(Extras)

Extras有的翻译为附加功能,我这里的中文插件翻译为了后期处理。在这里可以处理单张或者多张图片的高清方法功能。参数中的缩放比例和方法算法上面已讲,这里主要说一下。GFPGAN visibilityCodeFormer visibility
在这里插入图片描述
GFPGAN 和CodeFormer 都是用于放大图片人物的面部修复的开源的面部修复模型。多数情况,当人像图片成倍放大依托发达算法,对人脸的生成会有问题,或者原始图片就是问题的时候,我们可以选择面部修复的模型,对图片人物的面部进行高清修复。GFPGAN 和CodeFormer选择两个设置一个即可,两个的效果有一些微小的区别,看个人的喜好选择了!

  • 值得注意的是,这里必须选择方法算法后,缩放倍数和缩放尺寸才生效(缩放倍数和缩放尺寸切换到那个tab页那个生效)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/122816.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

金蝶云星空二开单据明细按钮绑定了权限项但是没控制到权限的问题排查

文章目录 金蝶云星空二开单据明细按钮绑定了权限项但是没控制到权限的问题排查明细按钮:行关闭和行反关闭,分别绑定了SCM_ROWCLOSE和SCM_ROWUNCLOSE解决方案 金蝶云星空二开单据明细按钮绑定了权限项但是没控制到权限的问题排查 明细按钮:行…

windows 下 QT Android 环境搭建(QGC 4.2.x + Qt 5.15.2)

文章目录 1. QT Creator 环境搭建2. JDK1)官网途径:2) 360 安装:配置 3. SDK1) 通过 Android Studio2)QT 配置中安装 姊妹篇: win10下新版QGC地面站环境搭建全面攻略(v4.x.x QGroundControl地面站搭建&…

挑战100天 AI In LeetCode Day04(热题+面试经典150题)

挑战100天 AI In LeetCode Day04(热题面试经典150题) 一、LeetCode介绍二、LeetCode 热题 HOT 100-62.1 题目2.2 题解 三、面试经典 150 题-63.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站,提供各种算法和数据结构的题目&am…

Spring 缓存注解这样用,太香了!

作者最近在开发公司项目时使用到 Redis 缓存,并在翻看前人代码时,看到了一种关于 Cacheable 注解的自定义缓存有效期的解决方案,感觉比较实用,因此作者自己拓展完善了一番后分享给各位。 Spring 缓存常规配置 Spring Cache 框架…

[Hive] INSERT OVERWRITE DIRECTORY要注意的问题

在使用Hive的INSERT OVERWRITE语句时,需要注意以下问题: 数据覆盖:INSERT OVERWRITE语句会覆盖目标目录中的数据。因此,在执行该语句之前,请确保目标目录为空或者你希望覆盖的数据已经不再需要。数据格式:…

pytorch(小土堆)深度学习

第五节课讲项目的创建和对比 第六节:Dataset,Dataloader Dataset提供一种方式区获取数据及其label(如何获取每一个数据及其label,告诉我们总共有多少的数据) Dataloader为后面的网络提供不同的数据形式 第七节:Dataset类代码实战 显示图片 f…

Linux提权方法总结

1、内核漏洞提权 利用内核漏洞提取一般三个环节:首先对目标系统进行信息收集,获取系统内核信息及版本信息 第二步,根据内核版本获取对应的漏洞以及exp 第三步,使用exp对目标进行攻击,完成提权 注:此处可…

VR虚拟现实:VR技术如何进行原型制作

VR虚拟现实原型制作 利用VR虚拟现实软件进行原型制作可以用于增强原型测试期间的沉浸感,减少产品设计迭代次数,并将与产品原型制作相关的成本降低40-65%。 VR虚拟现实原型制作市场规模 用于原型制作的虚拟现实 (VR) 市场在 2017 年估计为 2.104 亿美元…

数据可视化PCA与t-SNE

PCA(主成分分析)和t-SNE(t分布随机近邻嵌入)都是降维技术,可以用于数据的可视化和特征提取。 降维:把数据或特征的维数降低,其基本作用包括: 提高样本密度,以及使基于欧…

ClickHouse介绍和使用

ClickHouse介绍和使用 1. 简介2. ClickHouse特点3. 数据类型3.1. 整型3.2. 浮点型3.3. Decimal型3.4. 布尔型3.5. 字符串3.6. 枚举类型3.7. 时间类型 4. 表引擎4.1. TinyLog4.2. Memory4.3. MergeTree4.3.1. partition by分区(可选)4.3.2. primary key 主…

【笔记】原型和原型链(持续完善)

概念 原型:函数都具有 prototype 属性,称之为原型,也称之为原型对象 1.1 原型可以放一些属性和方法,共享给实例对象使用(也就是原生方法)。 1.2 原型可以做继承原型链:对象都有 __proto__ 属性…

leetcode一道比较难的链表题

今天还是继续来分享我们的链表题,这个题目有点难,主要是思路比较难想,但是如果沥青思路写起来就比较简单了(我乱讲的) 随机链表的复制 这个是题目的描述,大家也可以在链接里看,那我把这道题目…

深眸科技聚焦3D机器视觉技术,从技术形态到应用前景实现详细分析

机器视觉技术的不断升级,使得对二维图像的处理逐渐扩展到了更复杂的三维领域,形成了3D机器视觉。3D机器视觉是机器视觉的重要应用领域之一,通过计算机能够在短时间内处理视觉传感器采集的图像信号,从而获得目标对象的三维信息。 …

通过Cookie和Session来实现网站中登录账号的功能

文章目录 一、Cookie和Session二、基于Cookie和Session实现登录账号的功能2.1步骤一2.2步骤二2.3步骤三2.4总结通过Cookie和Session来实现登录功能2.5运行截图 一、Cookie和Session cookie是http请求header中的一个属性,是浏览器持久化存储数据的一种机制&#xff…

OCR文字识别生成双层PDF,一键解锁文件编辑新技能

在当今信息时代,OCR(Optical Character Recognition)技术已经成为数字化转型中不可或缺的一环。利用OCR技术,我们可以将纸质文档转化为可编辑的电子文档,便于存储、检索和共享。然而,有时候我们需要将识别后…

自考改革过渡期!广东小自考最优解只需要2门笔试

图片来源:广东省考试院* 近期广东教育考试院公布了自考专业调整的相关通知,新的专业考试计划从2026年1月起执行。 这次改革过渡期中有一个重大利好消息,小自考专业笔试统考科目最少只需考2门笔试! 这是为什么呢? 小…

黑洞路由的几种应用场景

第一种在内网中产生环路: 这种核心交换机上肯定写一条默认路由 0.0.0.0 0 10.0.0.1 出口路由要写一条192.168.0.0 16 10.0.0.2 如果出口路由访问一条不存在的内网网段,又或者访问的那台终端停机了,那就会产生三层环路,数据包在…

git命令行操作

git remote update origin --prune 更新本地的git分支保持和远程分支一致 git clone -b develop XXX 拉取某个分支的代码 1、创建一个空文件夹,在其中打开Git Bash Here,输入: git clone 刚刚复制的粘贴过来,回车 2、打开你拉下…

【扩散模型】5、Diffusion models beat GAN | 使用类别引导图像生成

论文:Diffusion models beat GAN on image Synthesis 代码:https://github.com/openai/guided-diffusion 出处:OPENAI | NIPS2021 时间:2021 贡献: 在本文章之前,扩散模型生成的图片已经非常逼真了&am…

SpringBoot 配置进阶

一、ConfigurationProperties 1、 在类定义上 ConfigurationProperties注解,此注解是用来为bean绑定属性。使用步骤如下: 在配置文件 application.yml 中,添加配置信息 servers:ip-address: 127.0.0.1port: 8123创建配置类,并在…