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页那个生效)。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高防CDN与高防服务器:谁更胜一筹?

在当今数字化世界中,网络安全对于保护网站和应用程序至关重要。在这一背景下,高防CDN和高防服务器是两种流行的解决方案,用于应对不同类型的网络攻击。本文将分析高防CDN是否能够替代高防服务器,以及它们各自的优势和限制。 高防C…

2023-11-Rust

学习方案:Rust程序设计指南 1、变量和可变性 声明变量:let 变量、const 常量 rust 默认变量一旦声明,就不可变(immutable)。当想改变 加 mut(mutable) 。 const 不允许用mut ,只能声明常量,…

使用Python从零实现多分类SVM

本文将首先简要概述支持向量机及其训练和推理方程,然后将其转换为代码以开发支持向量机模型。之后然后将其扩展成多分类的场景,并通过使用Sci-kit Learn测试我们的模型来结束。 SVM概述 支持向量机的目标是拟合获得最大边缘的超平面(两个类中最近点的距…

SpringBoot整合Canal+RabbitMQ监听数据变更(对rabbit进行模块封装)

SpringBootCanal(监听MySQL的binlog)RabbitMQ(处理保存变更记录) 在SpringBoot中采用一种与业务代码解耦合的方式,来实现数据的变更记录,记录的内容是新数据,如果是更新操作还得有旧数据内容。 使用Canal来监听MySQL的…

Go进阶之rpc和grpc

文章目录 Go环境安装1)windows2)linux go语言编码规范1.1 包名:package1.2 ⽂件名1.3 结构体命名1.4 接⼝命名1.5 变量命名1.6 常量命名2.1 包注释2.2 结构(接⼝)注释2.3 函数(⽅法)注释2.4 代码…

四川芸鹰蓬飞:抖音短视频运营是做什么的?

抖音短视频作为一种新兴的社交媒体平台,它的运营团队肩负着将用户需求与平台资源相结合,促使平台发展壮大的重要任务。抖音短视频运营旨在通过精准的用户分析和有针对性的内容推送,提高用户留存和活跃度,增加广告收入,…

vue3怎么获取el-form的元素节点

在元素中使用ref设置名称 在ts中通过从element-plus引入formInstance,设置formRef同名名称字段来获取el-form节点

网页制作-引入icon

1.如何引入icon 1.1 进入https://www.iconfont.cn/ 1.2 登录或者注册一下 1.3 在搜索框输入你想搜索的内容 1.4 加入购物车 1.5 在购物车中点击下载代码 1.6 若是普通的html项目,则至需要将如下两个拷贝到你的项目中 1.7 在你需要的网页中引入iconfont.css就可以使…

【Proteus仿真】【Arduino单片机】数码管显示

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使用TM1637、共阳数码管等。 主要功能: 系统运行后,数码管显示数字、字符。 二、软件设计 /* 作者:嗨小易&am…

利用QT画图像的直方图

1.什么是直方图 直方图是一种图形化展示数据频率分布的方式。它将样本数据分成一系列相邻的区间,统计每个区间内数据所占比例或数量,并用矩形条形图表现出来。直方图可以反映样本数据的分布情况,例如它们的集中趋势、对称性和离散程度等。 …

【JAVA学习笔记】66 - 本章作业(IO流)

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter19/src/com/yinhai/homework 1.使用File类和FileWriter类 (1)在判断e盘下是否有文件夹mytemp,如果没有就创建mytemp public class Homework01 {public static void main(String…

小程序 打开方式 页面效果 表单页面 点击跳到详情页 图标 获取后台数据 进行页面渲染

请求地址:geecg-uniapp 同源策略 数据请求 获取后台数据 ui库安装 冲突解决(3)-CSDN博客 一.uniapp转小程序 (1) 运行微信开发工具 (2) 配置id 然后运行 打开小程序 路径 E:\通\uniapp-jeecg\unpackage\dist\d…