【深度学习】Stable Diffusion中的Hires. fix是什么?Hires. fix原理

news/2024/12/19 12:44:17/

文章目录

  • **Hires. fix**
  • **Extra noise**
  • Upscalers
  • Hires. fix原理

Hires. fix

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features#hires-fix

提供了一个方便的选项,可以部分地以较低分辨率呈现图像,然后将其放大,最后在高分辨率下添加细节。换句话说,这相当于在txt2img中生成图像,通过自己选择的方法将其放大,然后在img2img中对现在已经放大的图像进行第二次处理,以进一步完善放大效果并创建最终结果。

默认情况下,基于SD1/2的模型在非常高的分辨率下生成的图像质量很差,因为这些模型只是在512px或768px的分辨率下进行训练的。通过在denoising过程中利用小图像的构图,这种方法可以避免这个问题。通过在txt2img页面上选中“Hires. fix”复选框来启用此功能。

在这里插入图片描述

小图的分辨率由使用宽度/高度滑块设置。大图的尺寸由三个滑块控制:“按比例缩放”乘数(高分辨率放大),“调整宽度至”和/或“调整高度至”(高分辨率调整)。

如果“调整宽度至”和“调整高度至”都为0,则使用“按比例缩放”。
如果“调整宽度至”为0,则从宽度和高度计算“调整高度至”。
如果“调整高度至”为0,则从宽度和高度计算“调整宽度至”。
如果“调整宽度至”和“调整高度至”都不为零,则图像将放大至至少这些尺寸,并裁剪部分区域。

在旧版本的webui中,最终的宽度和高度需要手动输入(上述最后一个选项)。在新版本中,默认是使用“按比例缩放”因子,这是默认和首选的设置。

要可能进一步增强hires.fix中的细节,请参阅有关Extra noise的注释。

Extra noise

通过设置中的额外噪音乘数为img2img和hires fix,默认为0,从随机种子添加额外噪音。在版本1.6.0中通过#12564实现,可在设置中找到img2img -> Extra noise multiplier for img2img和hires fix。正如在用户界面中所指出的,该参数应始终低于用于获得最佳结果的去噪强度。

这种调整的一个目的是在hires fix中添加额外的细节。对于一个非常简化的理解,你可以将其视为GAN放大和潜在放大的交叉。

下面的示例是一个应用了hires fix的512x512图像,使用GAN放大器(4x-UltraSharp),去噪强度为0.45。右侧的图像使用了这个额外噪音调整。

在这里插入图片描述
请注意,许多月前实施的先前设置(img2img的噪声乘数)在技术上实现了相同的效果,但正如名称中所指出的,它仅适用于img2img(而不是hires.fix),并且由于实施它时非常敏感,实际上只在1到1.1的范围内有用。对于几乎所有操作,建议使用新的额外噪音参数。

对于开发人员,还存在一个回调函数(on_extra_noise)。以下是一个使用示例,使添加噪音的区域可屏蔽。https://gist.github.com/catboxanon/69ce64e0389fa803d26dc59bb444af53

Upscalers

一个下拉菜单允许您选择用于调整图像大小的放大器类型。除了在附加选项卡上提供的所有放大器外,还有一种选项可以对潜在空间图像进行放大,这是稳定扩散内部使用的方式 - 对于一个3x512x512的RGB图像,其潜在空间表示将是4x64x64。要查看每个潜在空间放大器的效果,您可以将去噪强度设置为0,将Hires步骤设置为1 - 您将得到一个非常好的近似,即稳定扩散在放大图像上的工作方式。

Hires. fix原理

进行Hires. fix之前,已经得到了一张图了。然后Hires. fix可以使得图更细节。

Hires. fix原理在这个部分:
在这里插入图片描述
Hires. fix的操作是在Latent空间完成的,比如512X512的图,Latent空间是1X4X64X64大小,当把Hires. fix给到2倍率,程序会把Latent空间是调为1X4X128X128。
在这里插入图片描述

怎么调?

Latent和普通超分对这个调的方式是不一样的。

在这里插入图片描述
当是Latent,直接将Latent空间的1X4X64X64插值到1X4X128X128:
在这里插入图片描述
当是普通超分:
需要将512的图超分到1024,然后用VAE的encoder,将超分后的图给到1X4X128X128。
在这里插入图片描述


http://www.ppmy.cn/news/1265922.html

相关文章

强度理论介绍和惯性矩推导

强度理论介绍 材料力学给出4个强度理论,分别为第一强度理论(最大拉应力理论)、第二强度理论(最大拉应变理论)、第三强度理论(最大切应力理论)、第四强度理论(形状改变比能理论&…

python logging模块的使用总结

文章目录 1 简单使用logging记录日志2 实现自定义logger3 根据日志文件大小分割日志4.根据日期对日志文件进行分割5 使用logging模块进行日志记录时,需要注意以下几点: Python的logging模块是一个用于记录日志信息的标准模块。它提供了一种灵活的方式来记…

JavaEE之多线程编程:1. 基础篇

文章目录 一、关于操作系统一、认识进程 process二、认识线程三、进程和线程的区别(重点!)四、Java的线程和操作系统线程的关系五、第一个多线程编程 一、关于操作系统 【操作系统】 驱动程序: 如:我们知道JDBC的驱动程…

Linux16 ftp文件服务区、vsftpd文件系统服务安装、lftp客户端安装、NFS远程共享存储

目录 一、FTP基础ftp主动模式ftp被动模式 二、vsftpd配置共享目录编辑配置文件使用windows 访问 三、客户端安装 (lftp)匿名用户的一些操作(lftp {ip})ftp配置本地用户登录配置本地用户ftp配置文件 lftp操作 NFS远程共享存储安装n…

智能优化算法应用:基于蝗虫算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于蝗虫算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于蝗虫算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蝗虫算法4.实验参数设定5.算法结果6.参考文献7.MA…

进程的同步和异步、进程互斥

一、进程同步和异步 同步(Synchronous): 同步指的是程序按照顺序执行,一个操作完成后才能进行下一个操作。在多进程或多线程的环境中,同步意味着一个进程(或线程)在执行某个任务时,…

日志门面slf4j和各日志框架

简介 简单日志门面(Simple Logging Facade For Java) SLF4J主要是为了给Java日志访问提供一套标准、规范的API框架, 其主要意义在于提供接口,具体的实现可以交由其他日志框架,如log4j、logback、log4j2。 对于一般的Java项目而言&#xff…

LLM微调(二)| 微调LLAMA-2和其他开源LLM的两种简单方法

本文将介绍两种开源工具来微调LLAMA-2。 一、使用autotrain-advanced微调LLAMA-2 AutoTrain是一种无代码工具,用于为自然语言处理(NLP)任务、计算机视觉(CV)任务、语音任务甚至表格任务训练最先进的模型。 1&#xf…