Stable Diffusion 常用放大算法详解

常用放大算法

图像放大算法大致有两种:

  • 传统图像放大算法(Lantent、Lanczos、Nearest)
  • AI图像放大算法(4x-UltraSharp、BSRGAN、ESRGAN等)

传统图像放大算法是基于插值算法,计算出图像放大后新位置的像素值。AI图像放大算法,比一般的传统图像放大算法效果更好。

  • 推荐放大算法 ESRGAN系列 和 4X-UltraSharp
  • R-ESRGAN 4x+ 适用于写实图片
  • R-ESRGAN 4x+ Anime6B 适用于二次元类图片或二三次元混合图片

Latent 系列(不常用)

Latent 系列放大算法是在潜空间对图像进行放大,然后重新采样来增加图像的细节。

此外由于不是对图像像素级别的直接放大操作,当高分迭代步数不够或者重绘幅度过低时,生成的图像会模糊或失真。

重绘幅度在0~0.5的时候放大生成的图像是模糊的,因此在使用 Latent 系列算法时,需要一定的重绘幅度,并且随着放大倍数的提高,放大的图像会变得扭曲。

不同 Latent 算法之间的区别。

  • Latent (antialiased):结合抗锯齿 (antialiased) 技术来消除图像中的锯齿状边缘。
  • Latent (bicubic):使用双立法插值 (bicubic) 算法来放大图像,其在每个像素的位置使用一个三次多项式来拟合周围16个邻近像素(4x4的像素网格)的值。该算法考虑了每个像素点与其周围像素点之间的非线性关系,从而能够更准确地模拟图像中复杂的灰度变化,使得图像更加细致。
  • Latent (bicubic antialiased):结合双立法插值 (bicubic) 算法和抗锯齿 (antialiased) 技术,放大图像的同时消除锯齿状边缘,提高图像的分辨率和质量。
  • Latent (nearest):使用最近邻插值 (Nearest Neighbor Interpolation) 算法来放大图像,其在放大图像后,对于新位置的像素直接采用最近的原图像像素作为其值。这导致新像素之间缺乏过渡,容易导致图像边缘出现明显的锯齿状或阶梯状效果,放大后的图像质量不高。适用于像素艺术、图标、文字等强调清晰像素边界的图像,或者在对速度要求较高、对放大后图像质量要求相对较低的情况。
  • Latent (nearest-exact):结合了最近邻插值算法和双线性插值算法,以达到更精确的放大效果。

Lanczos(不常用)

Lanczos放大算法基于Lanczos核函数,对于放大后新位置像素进行插值计算时,该算法会根据源图像中以该像素为中心的一定邻域内的像素值计算加权平均来确定新像素。在保留边缘清晰度和减少锯齿现象方面表现出色。

Nearest(不常用)

使用最近邻插值 (Nearest Neighbor Interpolation) 算法来计算放大图像后新像素,和 Latent (nearest) 不同,是直接放大真实图像。适用于某些简单图像的放大,在复杂图像的放大中,无法获得很好的结果。

4x-UltraSharp(常用)

基于 ESRGAN 做了优化模型。将图像分辨率提升4倍,在提高分辨率的同时保持或增强图像的细节、清晰度和逼真度。一般在纠结哪种算法放大图片时,可以选这个算法,照片级别的,真人模型上的效果可能会更好。

BSRGAN(不常用)

BSRGAN(Bilinear Super-Resolution Generative Adversarial Network)是一种专门针对盲图像超分辨率问题的生成式对抗网络模型。通常包含一个退化模型和一个超分辨率模型(即生成器),两者联合训练。退化模型模拟各种可能的图像退化过程,为超分辨率模型提供多样化的训练样本;超分辨率模型则学习如何从这些退化图像中恢复出高分辨率、高质量的原始图像。

ESRGAN系列(常用)

ESRGAN(Enhanced Super-Resolution Generative Adversarial Network)是一种先进的深度学习模型。ESRGAN沿用了GAN(Generative Adversarial Networks)的基本框架,包含一个生成器和一个判别器。生成器负责从低分辨率图像中生成高分辨率图像,而判别器则用于判断生成的高分辨率图像与真实高分辨率图像之间的差异,二者通过对抗训练共同优化。

  • ESRGAN_4x:一般适用于写实类图片。
  • R-ESRGAN 4x+:特别适合于处理保留细节和纹理的图像,在放大人像照片时,提供更自然的放大效果,尤其在面部、头像细节方面。一般适用于写实类图片。
  • R-ESRGAN 4x+ Anime6B:该算法针对动漫和二次元图像进行了优化。能够更好的处理二次元图像中的色彩、线条和细节。一般适用于二次元类图片。

ScuNET系类(不常用)

  • ScuNET:通过ScuNET可以生成更加清晰,细节更加丰富的图像,是一种真实感图像放大方法。
  • ScuNET PSNR:PSNR(Peak Signal-to-Noise Ratio)指峰值信噪比,是评价图像质量的一种指标,PSNR越高,说明图像质量越好。

SwinIR_4x(不常用)

SwinIR(Swin Transformer Image Restoration)是一种基于Transformer架构的图像恢复模型,专门设计用于解决各种图像恢复任务,如图像去噪、超分辨率、去模糊等。

DAT系列

Stable Diffusion WebUI 1.8.0 版本中支持了3个放大模型:DAT x2,DAT x3,DAT x4。

  • 放大图像质量:DAT x2 > DAT x3 > DAT x4
  • 放大生成速度:DAT x4 > DAT x3 > DAT x2

图像放大方式

一、高清修复(Hires-Fix)

高清修复本质就是“图生图”,先绘制一份低分辨率的图像,再根据它画第二幅高分辨率的图像。

缺点:没办法突破显存的限制,电脑能画到多大尺寸,最后还是多大。

常规用法:先在低分辨率下反复画图,确定一个比较满意的图像时,再借助固定随机种子,来进行高清修复,得到分辨率更高的图像。

高清修复有时候会修改图像,增加不必要的元素,可以通过调整重绘幅度进行抑制。如果只是想放大图片,可以设置为(0.3-0.5),如果想要AI自由发挥,可以设置更高的重绘幅度。

二、SD放大(SD Upscale)

图生图中,可以选择 SD Upscale 脚本进行放大。

和高清修复不同,这个是通过把图片均匀切成4块去画图的,画完之后拼合在一起。

优点:这种方式可以突破显存限制获得更大的分辨率(最高4倍),画面精细度高,对细节的丰富效果出色。

注意:如果人脸、身体等关键部位处于分界线,会出现图像错位的问题,可以通过减小重绘幅度保持一致性、增大缓冲区尺寸进行调整

如果只是机械的拆分成4块,图块之间的接缝处会出现生硬的过渡边缘,设置Tile overlap(图块重叠的像素)为64,可以起到缓冲带的作用。

三、附加功能放大算法

一般用在图片生成后的图片处理上,就像是一个重绘幅度为0的高清修复,完全不改变图片内容,放大速度极快。

是在拉伸放大的基础上,适当润滑了线条和色块边缘的模糊区域。

四、使用Ultimate SD upsale

该方法是 Sd upscale 的升级版,也需要额外下载。

下载地址:

https://github.com/Coyote-A/ultimate-upscale-for-automatic1111

安装后记得重启UI界面。

来到图生图界面,使用的还是之前的照片参数,降低重绘幅度和固定种子。然后在脚本中找到 Ultimate SD upsale。

这个脚本也可以搭配controlnet的tiled进行使用。细节会更丰富些。

1、进入Img2Img界面,选择与图片风格相近的大模型。

2、设定正向提示词和反向提示词。

3、导入图片,设定参数

  • 采样方法(Sampling method)选择DPM++ 2M Karras
  • 放大尺寸不需要调整
  • 重绘幅度(Denoising strength)设为0.2

4、设置ControlNet

  • 控制类型选择Tile
  • 预处理器选择tile_resample
  • 模型选择control_v11f1e_sd15_tile

5、设置脚本

  • 脚本选择Ultimate SD upscale
  • Target size type选择Scale from image size,后面的尺度即为放大倍数
  • Upscaler选择R-ESRGAN 4x+,如果是动漫,则选择R-ESRGAN 4x+ Anime6B
  • 类型选Chess,接缝问题会小很多
  • 分块宽度为512,表示每一个放大Tile(小块)都是512x512

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

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

相关文章

不同技术实现鼠标滚动图片的放大缩小

摘要: 最近弄PC端的需求时,要求在layui技术下实现鼠标滚动图片的放大缩小的功能!下面来总结一下不同框架剩下这功能! layui: 看了一下layui文档,其实这有自带的组件的!但是又版本要求的!并且layui的官方文档…

STM32学习和实践笔记(22):PWM的介绍以及在STM32中的实现原理

PWM是 Pulse Width Modulation 的缩写,中文意思就是脉冲宽度调制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,其控制简单、灵活和动态响应好等优点而成为电力电子技术最广泛应用的控制方式&#xff…

Ubuntu16.04搭建webrtc服务器

本人查阅无数资料,历时3周搭建成功 一、服务器组成 AppRTC 房间+Web服务器 https://github.com/webrtc/apprtcCollider 信令服务器,在AppRTC源码里CoTurn coturn打洞+中继服务器 Nginx 服务器,用于Web访问代理和Websocket代理。AppRTC 房间+Web服务器使用python+js语言 App…

RFID技术引领3C手机镜头模组产线智能化转型

RFID技术引领3C手机镜头模组产线智能化转型 应用背景 随着智能手机市场的快速发展与技术创新,手机镜头模组作为影像功能的核心组件,其生产精度、效率及供应链管理的重要性日益凸显。面对复杂多变的市场需求、严格的品质要求以及激烈的市场竞争&#xf…

面试集中营—ElasticSearch架构篇

一、为什么用ElasticSearch? 1、支持多种数据类型。它可以处理非结构化、数值和地理信息等多种类型的数据; 2、简单的RESTful API。ES提供了一个简单易用的RESTful API,使得它可以从任何编程语言中调用,降低了学习的曲线。 3、近实…

12G-SDI视频分配器JR104D-4K-SDI

JR104D-4K-SDI 12G-SDI分配器1分4,12G-SDI分配器1分2,12G-SDI分配器1分8,机架式12G-SDI分配器1分4,12G-SDI分配器4组1分4,12G-SDI分配器16组1分4, 广播级指标生产厂家。 一、产品介绍: JR104D-4K-SDI视频分配器,是按…

Pytest用例自定义 - 重复、并行、串行

简介:面对快速迭代和持续交付的需求,提高测试效率变得至关重要。并行测试因其显著的时间节省优势而备受青睐。然而,并非所有测试都适合并行执行。在某些情况下,串行执行是必要的,以确保测试的正确性和稳定性。本文将探…

HarmonyOS 鸿蒙下载三方依赖 ohpm环境搭建

前言 ohpm(One Hundred Percent Mermaid )是一个集成了Mermaid的命令工具,可以用于生成关系图、序列图、等各种图表。我们可以使用ohpm来生成漂亮且可读性强的图表。 本期教大家如何搭建ophm环境: 一、在DevEco Studio中&#…

c++图论基础(2)

目录 图的存储方式: 邻接矩阵: 代码实现: 邻接表: 代码实现: 邻接矩阵邻接表对比: 带权图: 邻接矩阵存储: 邻接表存储(代码实现): 图的存储方式: 邻…

【数据结构】合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 Definition for singly-linked list.struct ListNode {int val;struct ListNode *next;};typedef struct ListNode ListNode; struct ListNode* mergeTwoLists(struct Lis…

【网络安全】对称加密、非对称加密以及密钥分配

目录 1、对称加密 2、非对称加密 3、如何分配对称密钥? 4、如何分配非对称密钥? 1、对称加密 所谓对称加密,就是指加密密钥与解密密钥都使用相同的密钥。如下图所示,通信双方使用的就是对称加密密钥。//代表:DES和…

《DiffusionNER: Boundary Diffusion for Named Entity Recognition》

Submitted 22 May, 2023; originally announced May 2023. Comments: Accepted to ACL 2023, submission version https://github.com/tricktreat/DiffusionNER 在这里插入图片描述 问题: 命名实体识别任务中存在的噪声跨度(边界不清晰&#xff09…

人工智能如何提高公司效率的 5 种方法

人工智能是当今最热门的话题之一,但并不是每个人都了解其对商业的价值规模。由此可见,现有的AI技术可以将企业的生产力提升40%。 在机器学习的帮助下,Netflix 利用自动化个性化推荐每年赚取 10 亿美元。当公司使用人工智能时,34%…

【QA】Git的底层原理

前言 本文通过一个简单的示例,来理解Git的底层原理。 示例 1、新建本地仓库并上传第一个文件 相关步骤: 新建仓库及创建文件查看文件状态将文件添加到暂存区将文件提交到本地仓库 HMTeenLAPTOP-46U4TV6K MINGW64 /d/GSF_Data/Github/Java/Git/git-…

【C语言】每日一题,快速提升(6)!

🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 题目: 矩阵转置 有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵) 示例: 输…

深入了解Semaphore、CountDownLatch等实用工具的用法

哈喽,各位小伙伴们,你们好呀,我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后…

JRT质控打印

最近客户端打磨完了,又来推进质控了。之前演示的打印都是Demo示例,这次真正的写质控图的打印,数据就是质控数据录入界面录入的数据。其中质控图打印应该算最复杂的类型了。涉及JS的绘图,打印表格等,表格比较简单、还没…

端点安全管理系统干什么用的 有哪些好用?

你听说过: 端点安全管理系统吗? 我们一起来了解一下啊 一、什么是端点安全管理系统? 端点安全管理系统(Endpoint Security Management System)是一种专门用于保护企业内部网络终端设备的综合性安全解决方案。 这些终…

全国省级金融发展水平数据集(2000-2022年)

01、数据简介 金融发展水平是一个国家或地区经济实力和国际竞争力的重要体现。它反映了金融体系的成熟程度和发展水平,是衡量一个国家或地区经济发展质量的重要指标。金融发展水平的提高,意味着金融体系能够更好地服务实体经济,推动经济增长…

Servlet(写一个Hello Worldt)【一】

文章目录 一、Servlet 目的 ----- 实现动态页面二、编写一个 Servlet 的Hello World2.1 创建项目2.2 处理文件夹2.3 引入依赖2.4 手动创建一些必要的目录/文件2.5 编写代码2.6 打包程序2.7 部署2.8 验证程序是否能正常工作 一、Servlet 目的 ----- 实现动态页面 静态页面 VS 动…