AI绘画Stable Diffusion 高清放大,多种方法详解,建议收藏!

👣 本章概述

在Stable Diffusion我们想要得到一张高分辨率且具有细节特征的图片时,我们就需要使用一些图片放大算法来帮助我们实现。
本文主要概述在sd中常常使用的高清修复方法以及不同方法的区别和应用场景。同时也给出一些推荐的工作流,你可以根据自己的情况来选择适合你的。
通过本节的学习对于高清修复的使用相信你会更加得心应手。

🧻 几种不同高清修复方法

下面几种方法的测试统一是在墨幽v1040,512*512基础分辨率,20步迭代步数,Restart采样方法下进行。
提示词如下(适用于真人图片的起手式):

正面:
best quality, masterpiece, (photorealistic:1),ultra high res,highres, illustration. media, delicate,8k wallpaper,soft light,official art, (realistic:1.2),1girl,

负面:
EasyNegative, paintings, sketches, ugly, 3d, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, age spot, manboobs, backlight,(ugly:1.3), (duplicate:1.3), (morbid:1.2), (mutilated:1.2), (tranny:1.3), mutated hands, (poorly drawn hands:1.3), blurry, (bad anatomy:1.2), (bad proportions:1.3), extra limbs, (disfigured:1.3), (more than 2 nipples:1.3), (more than 1 navel:1.3), (missing arms:1.3), (extra legs:1.3), (fused fingers:1.6), (too many fingers:1.6), (unclear eyes:1.3), bad hands, missing fingers, extra digit, (futa:1.1), bad body, double navel, mutad arms, hused arms, (puffy nipples, dark areolae, dark nipples, rei no himo, inverted nipples, long nipples), NG_DeepNegative_V1_75t, pubic hair, fat rolls, obese, bad-picture-chill-75v,(without clothes)


一、文生图高清修复

在文生图的界面里,我们可以在一开始就指定将图片进行放大。
在打开高清修复后,我们会看到以下这些参数。

关于这里的放大算法,我比较推荐使用以下一种,(其中Anime6B一般用于二次元风格)
4x-ultrasharp需要额外下载,下载地址为:https://civitai.com/models/116225/4x-ultrasharp
下载下来后放到:sd目录\models\ESRGAN
后期下载的其他放大算法模型基本上都是放在这个目录下。

以下是这几种放大算法跑出来的效果图,可以看出来其实差距都很小,对于不同风格的结果会有所区别,对于细节把握比较强的童鞋可以试试使用xyz脚本(还不知道这个脚本使用的见我之前编写的文章)跑出最合适你的参数。


二、后期处理缩放倍数

这个说实话我很少用,经过测试对于图片细节的处理不是太理想。不过你可以通过其他方法先将图片修复到一定程度后再使用该功能,因为后期处理速度很快,然后扩大无上限- -
比如下图,未经过处理和经过处理后的结果:
处理前:

处理后:

那后期处理这块是不是没有用了呢?也不尽然,
这里一般可以用来处理照片的裁剪或老照片修复。


三、图生图放大倍数和几个Upscale脚本

方法一:放大倍数
来到图生图界面,缩放模式选择仅调整大小,这里我们可以修改重绘尺寸或者直接指定重绘尺寸倍数。
需要注意的是,因为是基于原图进行处理,所以这里我们固定好seed值以及降低重绘幅度。

刚刚那张照片的处理结果如下:


方法二:使用Sd upscale
打开脚本我们选择 upscale:

打开以后看到以下几个参数选项,
upscale是将一张图片分为多个区块然后进行分别放大,最后再组合起来。

这里的分块重叠像素宽度是用来避免最终成像会有明显的接缝,因为是分块绘制嘛,最后还需要拼接的。一般维持默认即可。 不要忘了选择放大算法,否则不会生效。

这个方法我用的其实也比较少,现在基本也被淘汰了,因为可能出现一些未知的情况- -, 比如下图。
为什么会出现这种情况呢,因为它是分区块进行放大的,每个区块就可能按照AI自己的想法加入一些奇奇怪怪的玩意~。结果就不可控了,虽然我们减少区块的大小,但最终的结果可能还是难以预料的。


方法三:使用Ultimate SD upsale

该方法是 Sd upscale 的升级版,也需要额外下载,在扩展中搜索Ultimate就可以看到了,安装后记得重启UI界面。
来到图生图界面,使用的还是之前的照片参数,降低重绘幅度和固定种子。然后在脚本中找到 Ultimate SD upsale。

放大前:

放大后:

可以看到效果还不错,在这个脚本里涉及一些参数,我们有时候需要根据图片的最终成像来进行调整,根据官方的界面,具体说明如下:

  1. 「Target size type」: 定义最终图像的大小来源。
  • 「From img2img settings」: 使用默认的**「img2img」**宽和高设置。

  • 「Custom size」: 自定义宽高设置,最大值是8192。

  • 「Scale from image size」: 以初始图像大小为基础进行缩放。(大多情况下直接使用这个)

  1. 「Redraw」: 图像重新绘制的设置。
  • 「Linear」: 所有小块逐个、逐行逐列地处理。

  • 「Chess」: 所有小块按棋盘模式处理,这样可以减少接缝产生的几率。(常用选项)

  • 「None」: 禁用重新绘制。如果你看到明显的重叠或接缝上的瑕疵,就使用这个模式。

  • 「Upscaler」: 在重新绘制之前放大图像。推荐使用ESRGAN来增强现实感的图像,对于其他的图像推荐使用R-ESRGAN 4x+。我们也可以使用4x-ultrasharp

  • 「Type」:

  • 「Tile width/height」: 要处理的小块的宽和高。对于2k图像,512px通常就够了。

  • 「Padding」: 在处理一个小块时,会考虑多少像素的邻近小块。

  • 「Mask blur」: 用于小块蒙版的模糊程度。如果你看到接缝,可以适当调整这个值。

  1. 「Seams fix」: 对于结果图像中可见的网格,通常不需要使用它,因为它只是另一种重新绘制方法。
  • 「Bands pass」: 主要处理接缝(行和列),需要的时间比较短。

  • 「Half tile offset pass」: 与重新绘制相似,但有一半的小块偏移。

  • 「Half tile offset + intersections pass」: 先运行Half tile offset pass,然后对交叉点进行额外的处理。

  • 「None」: 禁用接缝修复。

  • 「Type」:

  1. 「Save options」: 保存图像的选项。
  • 「Upscaled」: 默认启用。从Redraw保存图像。

  • 「Seams fix」: 默认禁用。在Seams fix之后保存图像。

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


四、Tiled Diffusion脚本

该脚本需要另外下载,一般搭配Tiled Vae一起使用,秋叶启动包自带了。如果没有下载的童鞋可直接在扩展中搜索下载(或看文末扫描获取脚本文件)。 下载后可在文生图和图生图中查看到。

放大的话一般先在文生图中生成一张满意的图片,然后发送到图生图中。不要忘记降低重绘幅度和固定种子。

我们打开脚本,然后点击启用,关于这里的参数设置先保持默认。不要忘记选择放大算法。
对于显存较大的同学可以将 分块单批数量(「Tiled Diffusion Latent tile」)改为8,这样处理的速度会快很多。

这里我们放大两倍,点击生成。效果如下:

其实为了细节的更好处理,我们可以在这里再加入controlnet tile,效果会更好.
因为cn tile往往会产生更多的细节,MultiDiffusion会更多的修饰原图而缺少足够的细节。两者的适当结合会产生非常好的效果。

可以看出来,人物的真实感更加强烈,且增添了一些细节

上面的图像我们是在默认的参数下生成的,其实官方有给一些推荐的参数设置,具体如下:
Denoising Strength >= 0.75
Method = Mixture of Diffusers, Overlap = 8
Noise Inversion Steps >= 30
CN Tile preprocessor = tile_resample, downsampling rate = 2。

具体修改后的参数如下图(需要注意的是batch size这个参数,如果你的显存比较小,还是默认1吧):


设置为推荐参数后,我们再生成结果:

由于篇幅原因,这里不再过多阐述,如果你对还想了解这些参数和其他参数的具体含义。可以查阅官方文档


五、Diffusion+StableSR

高清放大算法的后起之秀,由南阳理工大学的王建一同学等人开源。
需要额外下载,可在扩展中选择从地址下载:https://github.com/pkuliyi2015/sd-webui-stablesr.git
如无法下载,请看文末扫描获取文件

这个脚本的使用还需要几个额外的模型:
1、在 https://huggingface.co/stabilityai/stable-diffusion-2-1/tree/main 中下载模型文件,下载完成后放入sd的Stable-diffusion 目录下。sd目录\models\Stable-diffusion

2、下载StableSR 模块的模型文件,下载地址为:https://huggingface.co/Iceclear/StableSR/blob/main/webui_768v_139.ckpt
如无法下载请看文末获取文件

下载后的文件保存在 sd目录/extensions/sd-webui-stablesr/models下(models 默认没有,要自己新建)
3、下载配置vae文件,请看文末扫描获取文件。
下载下来后放在 sd目录/models/VAE 目录下。

4、官方推荐该脚本和Tiled Diffusion一起使用,这样速度更快,不容易OOM(内存溢出)。所以我们需要安装Tiled Diffusion插件,这个在上面已经介绍了。

到这里我们就安装好了,我们来使用一下它。来到图生图界面,设置好基础参数信息。需要注意的是这个基础参数的设置和我们前面的方法有所区别,这也是官方推荐的。
选择我们刚刚下载的checkpoints模型和配套vae。

输入正面词(不输也行)和负面词。
正面:
(masterpiece:2), (best quality:2), (realistic:2),(very clear:2)

负面:
3d,cartoon,anime,sketches,(worst quality:2),(low quality:2),

配置脚本参数:
官方推荐的参数配置如下:

  • 如果生成图像尺寸 > 512,我们推荐使用 Tiled Diffusion & VAE,否则,图像质量可能不理想,VRAM 使用量也会很大。

  • 这里是官方推荐的 Tiled Diffusion 设置。

  • 方法 = Mixture of Diffusers

  • 隐空间Tile大小 = 64,隐空间Tile重叠 = 32

  • Tile批大小尽可能大,直到差一点点就炸显存为止。

  • Upscaler 「必须」 选择None。

  • 下图是24GB显存的推荐设置。

  • 对于4GB的设备,「只需将Tiled Diffusion Latent tile批处理大小改为1,Tiled VAE编码器Tile大小改为1024,解码器Tile大小改为128。」

  • SDP注意力优化可能会导致OOM(内存不足),因此推荐使用xformers。

  • 除非你有深入的理解,否则你**「不要」改变Tiled Diffusion & Tiled VAE中的其他设置。「这些参数对于StableSR基本上是最优解」**

最终成像如下,可以看到细节感真的不错哈,一些细节可以再做调整,如果需要更丰富就把放大倍数再调大些:

六、几种方式的优缺点对比:
「方法名」「优点」「缺点」
文生图高清修复图片生成细节良好、操作简便生成速度一般,占用较大显存
后期处理生成速度很快,操作简便几乎0重绘,对于细节的完善不足
图生图放大倍数生成速度很快,操作简单,细节良好生成图片细节有限
图生图Upscale脚本生成速度中等,操作简便容易生成过多不需要的画面,目前已基本废弃
图生图Ultimate脚本生成速度中等,细节良好,可搭配cn tile生成的结果具有一定的随机性,需要对参数有一定了解,进行细微调整
Diffusion+StableSR几乎完全忠实于原图,细节最佳,最大支持放大8K操作起来很麻烦,需要下载一些额外的模型,然后速度也并不快
Diffusion+VAE+cn细节绝佳,最大支持放大8K生成速度慢,可能会出现一些不需要的细节(可做调整)

🍉 推荐方案和工作流:

对比了这些高清放大算法后,一般我们可以选择下面几个。其他方法其实经过一些参数的调整也可以生成不错的效果,不过为了稳定和节省时间,我们可以直接选择下述列出的方法。
1、直接在文生图中开启高清修复(显存大的直接开启也无所谓啦) -> 图生图继续利用2、3方法放大(可选) -> 后期处理继续放大(可选)
2、在文生图中抽到好卡 -> 发送到图生图 -> 固定种子和降低重绘幅度 -> 打开Tiled Diffision、Tiled Vae -> 打开controlnet,选择tile -> 生成结果 -> 后期处理继续放大(可选)
3、在文生图中抽到好卡 -> 发送到图生图 -> 修改模型和vae -> 重新填写正反面提示词 -> 配置Tiled Diffision、Tiled Vae、StableSR -> 生成结果 -> 后期处理继续放大(可选)

几种方法针对不同图片的表现会有所区别,可以都尝试一下,没有最好的方式,只有最适合的方式。
我自己的话一般第二种方式用的多些

🌻 总结

今天的介绍就到这里啦,本篇文章主要概述了在sd中常用的高清放大方式和常用工作流,如果看完以后对你有所帮助,不妨点个关注吧~

写在最后

感兴趣的小伙伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。
在这里插入图片描述

AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。

在这里插入图片描述

一、AIGC所有方向的学习路线

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

在这里插入图片描述

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!
在这里插入图片描述

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述
在这里插入图片描述

四、AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

理解MySQL核心技术:外键的概念作用和应用实例

引言 在数据库管理系统(DBMS)中,外键(Foreign Key)是维持数据一致性和实现数据完整性的重要工具。本文将详细介绍MySQL外键的基本概念、作用,以及相关的操作指南和应用实例,帮助读者掌握并灵活…

YOLOv8的5种不同部署方式推理速度对比:Pytorch、ONNX、OpenVINO-FP32、OpenVINO-int8、TensorRT

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

FatFs(文件系统)

1官网 FatFs - 通用 FAT 文件系统模块 (elm-chan.org) FatFs 是用于小型嵌入式系统的通用 FAT/exFAT 文件系统模块。FatFs 模块是按照 ANSI C (C89) 编写的,并且与磁盘 I/O 层完全分离。因此,它独立于平台。它可以集成到资源有限…

华为智能驾驶方案剖析

华为ADS智驾方案始终坚持激光雷达毫米波雷达摄像头的多传感器融合路线,行业降本压力下硬件配置从超配逐步转向贴合实际需求,带动整体硬件成本下降。 1)单车传感器数量呈现下降趋势,包括激光雷达从3个减配至1个、毫米波雷达从6R减配至3R、摄像…

【硬件开发】安规电容X电容和Y电容

为什么有安规电容 国家为了保护人民的安全要求,电容器失效后,不会导致电击,不危及人身安全的安全电容器 安规电容的作用 滤除雷电冲击波,以及插拔插座的高频噪声 X电容 聚酯电容 位置 X电容位于火线和零线之间 作用 滤除…

Swift 中更现代化的调试日志系统趣谈(二)

概述 在上篇 Swift 中更现代化的调试日志系统趣谈(一) 博文中,我们初步讨论了如何利用 Swift OSLog 框架中的 Logger 日志记录器替代“简陋”的 print 方法来记录我们的调试消息。 而接下来我们会再接再厉,继续调试日志系统的进一步介绍。 在本篇博文中,您将学到如下内容…

timm中模型更换huggingface模型链接

现在timm默认使用huggingface的链接了,错误链接如下: (MaxRetryError("HTTPSConnectionPool(hosthuggingface.co, port443): Max retries exceeded with url: /timm/swinv2_tiny_window8_256.ms_in1k/resolve/main/model.safetensors (Caused by C…

MySQL:表的内连接和外连接、索引

文章目录 1.内连接2.外连接2.1 左外连接2.2 右外连接 3.综合练习4.索引4.1见一见索引4.2 硬件理解4.3 MySQL 与磁盘交互基本单位(软件理解)4.4 (MySQL选择的数据结构)索引的理解4.5 聚簇索引 VS 非聚簇索引 5.索引操作5.1 创建索引5.2 查询索引5.3 删除索引 1.内连接 内连接实…

Keepalive技术

文章目录 一、Keepalive基础vrrp技术Keepalived介绍Keepalived架构 二、 Keepalived 相关文件配置文件组成全局配置虚拟路由器配置 三、配置lvs和keepalive联动服务器架构抢占模式配置配置单播、组播配置通知模块日志功能脑裂现象 四、keepalived和nginx联动keepalive和其他应用…

嵌入式Linux系统编程 — 5.5 sleep、usleep和nanosleep系统休眠函数

目录 1 为什么需要休眠 2 sleep、usleep和nanosleep函数 2.1 sleep函数 2.2 usleep函数 2.3 nanosleep函数 3 示例程序 1 为什么需要休眠 有时需要将进程暂停或休眠一段时间, 进入休眠状态之后,程序将暂停运行,直到休眠结束。 以下是一…

Is ChatGPT a Good Personality Recognizer? A Preliminary Study?

ChatGPT是一个很好的人格识别者吗?初步调研 摘要1 介绍2 背景和相关工作3 实验3.1 数据集3.2 提示策略3.3 基线3.4 评估指标3.5 实现细节3.6 Overall Performance (RQ1)3.7 ChatGPT在人格识别上的公平性 (RQ2)3.8 ChatGPT对下游任务的人格识别能力(RQ3&a…

javaEE——Servlet

1.web开发概述 所谓web开发,指的是从网页中向后端程序发送请求,与后端程序进行交互 2.java后端开发环境搭建 web后端(javaEE)程序需要运行在服务器中的,这样前端才可以访问得到 3.服务器是什么? ①服务器就是一款软件,可以向其发送请求&#…

深入解析HDFS:定义、架构、原理、应用场景及常用命令

引言 Hadoop分布式文件系统(HDFS,Hadoop Distributed File System)是Hadoop框架的核心组件之一,它提供了高可靠性、高可用性和高吞吐量的大规模数据存储和管理能力。本文将从HDFS的定义、架构、工作原理、应用场景以及常用…

【UML用户指南】-24-对高级行为建模-进程和线程

目录 1、概念 2、主动类 3、通信 4、同步 5、常用建模技术 5.1、对多控制流建模 5.2、对进程间通信建模 在UML中,可以将每一个独立的控制流建模为一个主动对象,它代表一个能够启动控制活动的进程或线程。 进程是一个能与其他进程并发执行的重量级…

2024新版大屏互动微信上墙源码大屏互动神器年会婚庆微现场3D签到

2024年大屏幕互动源码动态背景图和配乐素材搭建教程 php宝塔搭建部署活动现场大屏幕互动系统php源码,可以用来构建具有互动功能的大屏幕系统,为活动现场提供各种互动体验。 修复版的系统源码在原有功能的基础上,增加了更加完善的用户体验和稳…

002-关于Geogebra软件的介绍及与MatLab的区别

为什么要学Geogebra? 因为和MatLab的科学计算相比,GeoGebra重点突出教学展示,对于教师、学生人群来讲再合适不过了,尤其是可以融入到PPT里边呈现交互式动画,想想听众的表情!这不就弥补了看到PPT播放数学公…

GIT 基于master分支创建hotfix分支的操作

基于master分支创建hotfix分支的操作通常遵循以下步骤: 切换到master分支: 首先,确保你的工作区是最新的,并且你在master分支上。如果不在master分支,你需要先切换过去。 Bash git checkout master 拉取最新的master…

STM32第十二课:ADC检测烟雾浓度(MQ2)

文章目录 需求一、MQ-2 气体传感器特点应用电路及引脚 二、实现流程1.开时钟,分频,配IO2.配置ADC的工作模式3.配置通道4.复位,AD校准5.数值的获取 需求实现总结 需求 使用ADC将MQ2模块检测到的烟雾浓度模拟量转化为数字量。 最后&#xff0c…

2.00004 优化器执行计划生成的流程是怎么样的?

文章目录 整体架构关键结构体PlannerInfo (pathnodes.h:195)PlannerGlobal (pathnodes.h:95)函数栈关键函数pg_plan_query (postgres.c:885)planner (planner.c:274)standard_planner (planner.c:287)subquery_planner (planner.c:628)整体架构 关键结构体 PlannerInfo (pathn…

Servlet_Web小结

1.web开发概述 什么是服务器? 解释一:服务器就是一款软件,可以向其发送请求,服务器会做出一个响应. 可以在服务器中部署文件,让他人访问 解释二:也可以把运行服务器软件的计算机也可以称为服务器。 web开发: 指的是从网页中向后…