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,一经查实,立即删除!

相关文章

【基础篇】第3章 Elasticsearch 索引与文档操作

在Elasticsearch的世界里,索引是存储数据的地方,文档则是索引中的基本单位,包含具体的数据信息。本章将深入探讨索引和文档操作的基础,从创建到管理,为高效数据处理奠定基础。 3.1 索引概念与创建 3.1.1 索引、类型与…

理解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 层完全分离。因此,它独立于平台。它可以集成到资源有限…

安全与加密常识(5)自签名证书

文章目录 什么是自签名证书?自签名证书有什么优势?自签名证书有什么缺陷?企业可以使用自签名证书吗?如何创建自签名证书?前面我们介绍了什么是证书签名请求:证书签名请求(Certificate Signing Request,CSR)是一种数据文件,通常由申请者生成,并用于向证书颁发机构(C…

webpack打包配置

基于webpack5.x 一、缓存设置 // 内存缓存: 速度快,配置简单,但占用内存且重启后失效 cache: {type: memory, }// 磁盘缓存 (filesystem):持久性好,适合大型项目,但速度较慢,配置相对复杂。 cache: {type:…

华为智能驾驶方案剖析

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

【深度学习】GPU版本

我发现nvidia-smi的cuda版本不是我期望镜像中的版本,咨询一下还要选择对应的驱动,比如cuda12.2对应的 {"12.3": "525.60","12.2": "525.60","12.1": "525.60","12.0": "52…

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

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

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

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

No module named ‘pytesseract‘

报错解释: 这个错误表示Python无法找到名为pytesseract的模块。pytesseract是一个用于OCR(光学字符识别)的库,它依赖于Google的Tesseract-OCR引擎。这个错误通常发生在尝试使用pytesseract之前未正确安装该模块的情况下。 解决方…

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和其他应用…

OSINT技术情报精选·2024年6月第4周

OSINT技术情报精选2024年6月第4周 2024.6.30版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 1、大数据技术标准推进委员会:《面向人工智能的数据治理(DG4AI)实践指南1.0》 2024年6月19-20日,“来这里,…

嵌入式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.服务器是什么? ①服务器就是一款软件,可以向其发送请求&#…

如何根据两个关键字查询报错日志的位置

要根据两个关键字查询报错日志的位置,在Linux中,你可以使用grep命令结合正则表达式(regex)来实现。grep命令允许你在文件中搜索匹配特定模式的行。 假设你有两个关键字“keyword1”和“keyword2”,并且你想找到同时包…

教学常用内容

容器 #include<bits/stdc.h> #define fi first #define se second #define pb push_back #define PII pair<int,int > #define int long long #define IOS std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);using namespace std;const int N 1e610;vec…