Stable Diffusion中放大图像的3种方法
前言
要执行 ControlNet tile upscale:
您想使用 Stable Diffusion 创建包含大量细节的大型图像吗?您将需要使用升频器。在本文中,您将学习 3 种放大图像的方法。
- 人工智能升级器
- 标清高档
- ControlNet瓷砖高档
您将看到比较并了解这些方法的优缺点。
如果您不熟悉该主题,则可能需要学习升频器的基础知识。
软件
我们将使用 AUTOMATIC1111 Stable Diffusion GUI 来执行放大。您可以在Windows、 Mac或 Google Colab上使用此 GUI 。
对于最后一种方法,我们需要Ultimate SD Upscale和ControlNet扩展。
Colab 用户
如果您使用本站提供的Colab Notebook,您只需在启动笔记本前选择ControlNet和Ultimate SD Upscale扩展。
Windows 或 Mac 用户
安装 Ultimate SD 高级扩展
Ultimate SD upscale是一个扩展,提供类似于内置SD Upscale脚本的功能,但具有一些高级选项。
在 AUTOMATIC1111 中安装 Ultimate SD upscale:
-
导航到**“扩展”**页面。
-
选择从 URL 安装选项卡。
-
将以下 URL 放入扩展存储库字段的 URL 中。
https://github.com/Coyote-A/ultimate-upscale-for-automatic1111
-
单击安装按钮。
-
等待扩展安装成功的确认消息。
-
重新启动 AUTOMATIC1111。
如果安装成功,您应该会在img2img页面底部的脚本下拉菜单中看到Ultimate SD upscale。
安装 ControlNet 扩展
ControlNet是一个扩展,可让您额外控制图像生成。请参阅ControlNet 教程以了解更多信息。
在 AUTOMATIC1111 中安装 Ultimate SD upscale:
-
导航到**“扩展”**页面。
-
选择从 URL 安装选项卡。
-
将以下 URL 放入扩展存储库字段的 URL 中。
https://github.com/Mikubill/sd-webui-controlnet
-
单击安装按钮。
-
等待说明扩展已安装的确认消息。
-
重新启动 AUTOMATIC1111。
-
访问ControlNet 模型页面。
-
下载所有模型文件(文件名以 结尾
.pth
)。如果您不想全部下载,您可以只下载_tile
本教程的瓦片模型(结尾为 )。 -
将模型文件放入 ControlNet 扩展的模型目录中。
稳定扩散-webui\extensions\sd-webui-controlnet\models
- 重新启动 AUTOMATIC1111。
您应该在 txt2img 页面上看到 ControlNet 部分。瓷砖模型应该可以在模型下拉菜单中进行选择。如果看不到菜单,请按菜单旁边的刷新按钮。
输入图像
我们将使用 Stable Diffusion 生成的以下图像。
型号:Lyriel v1.5
提示与否定提示:
“最后一舞”:在一个盛大的舞厅里,我们命运多舛的恋人共舞。当他们跳华尔兹时,时间似乎变慢了,迷失在彼此的眼中。他们不知道,这将是命运介入之前他们在一起的最后时刻。
(我从 GPT-4 得到了这个提示)
毁容的,变形的
原始尺寸非常小(768×512 像素)。让我们将其放大 4 倍至 3,072×2,048 像素。我们将使用三种放大方法进行测试。
- 人工智能升级器
- 标清高档
- ControlNet瓷砖高档
方法一:AI Upscaler
AI Upscaler是一种AI 模型,经过训练可以放大照片并填充细节,从而使图像保持清晰。这是在 AUTOMATIC1111 中放大图像的基本方法。
-
在 AUTOMATIC1111 中,导航到Extras页面。
-
将图像上传到图像画布。
-
将Resize设置为 4。(将图像放大 4 倍。)
4. 在Upscaler 1中选择一个 upscaler 。我使用了Universal Upscaler v2,但你可以使用任何一个。(请参阅此处下载和安装新的升级器的说明)
- 点击生成。
片刻之后,您将在右侧的输出窗口中看到放大后的图像。
让我们看看进展如何。我们先来看看裙子。
它在忠实地填充裙子的细节方面做得不错。
但是这位女士的脸需要一些超出这个升级器所能做的增强。
当然,你可以开启人脸修复,它使用另一个AI模型来修复人脸。但是因为模型没有用这种特殊的风格进行训练,它可能会引入伪像并使面部看起来不自然。
方法二:标清高档
有没有什么方法可以不使用面部修复来修复面部?
首先,这张脸有点像原始图像中的那张脸。这就是为什么我们在扩大规模时得到了我们所得到的。
但是,如果您接受更多更改,因为原始图像无论如何都是计算机生成的呢?您可以执行一轮额外的图像到图像以重新生成细节。
这正是 SD 高档脚本所做的。
这种方法的好处是
- 可以使用相同的模型和提示生成新的放大细节。
- 移除由 AI upscaler 引入的伪影。
您可以使用AUTOMATIC1111 中 img2img 页面上的SD Upscale脚本轻松地同时执行 AI upscaling 和 SD img2img。该脚本在小块中执行稳定扩散 img2img,因此它适用于低 VRAM GPU 卡。
分步指南
按照以下步骤执行 SD 升级。
- 在img2img页面,将图片上传到 Image Canvas。
2.输入原提示和否定提示。如果您没有原始提示,您可以使用“非常详细”。
备选方案 1:如果您刚刚在txt2img页面上生成图像,请单击发送到 img2img按钮。图像和提示将自动填充。
备选方案 2:如果您将生成的图像保存在本地存储中,则可以将其上传到PNG 信息页面。您应该会看到生成此图像的所有信息,包括提示和模型。单击发送到 img2img。图像和提示将自动填充。
-
在稳定扩散检查点下拉菜单中,选择生成此图像时最初使用的模型
-
将图像宽度和高度都设置为 512。这是用于 SD 放大的图块大小。
-
将去噪强度设置为 0.3。较高的值将导致更多的细节和恢复,但不应将其设置为高于 0.4。否则,您会看到伪影。
5. 在img2img页面的按钮附近找到脚本下拉菜单。选择标清高档。
-
将比例因子设置为 4 以放大 4 倍。
-
选择一个升频器。我选择了与之前方法相同的升频器。但如果没有,您可以选择 ESRGAN 或 R-ESRGAN。
- 单击生成。
结果
这就是我得到的。
得益于 Stable Diffusion img2img,硬木地板有很多细节。
现在让我们比较一下脸。
不错的改进!SD upscale 在不引入伪像的情况下修复面部。
让我们检查一下这件衣服,好吗?
他们也有更多的细节。
您可以尝试使用以下参数。
- 采样步长:设置为更高的值,例如 50 – 100,可以获得更多的细节。
- 抽样法。细节可能不同,尤其是祖先采样器。
- 去鼻强度。控制要添加多少细节。此方法的可行范围在 0.1 和 0.4 之间。
- 种子:改变细节。
细节级别由去噪强度参数控制。正如我之前所说,如果将其设置为高于 0.4,则此方法会失效,因为稳定扩散会使图像改变太多。您将开始看到人工制品。
有什么方法可以在不牺牲原始构图的情况下增加去噪强度?嗯……这听起来非常类似于从参考图像复制构图的扩展功能……
这是正确的。解决方案是使用ControlNet!
方法 3:ControlNet 平铺高档
ControlNet tile是一种用于重新生成图像细节的 ControlNet 模型。如果本地图片详情与提示不符,则忽略提示,填写本地详情。这种行为使其非常适合在图块中放大,因此它适用于低 VRAM 设置。
您需要安装Ultimate SD Upscale和ControlNet扩展才能使用此方法。如果您还没有这样做,请按照软件部分中的说明进行操作。
我不知道为什么这种方法不适用于内置的 SD Upscale 脚本。它应该,但它没有。
分步指南
要执行 ControlNet tile upscale:
-
导航到AUTOMATIC1111 中的img2img页面。
-
将您的图像上传到img2img 画布。
3.输入原提示和否定提示。如果您没有原始提示,您可以使用“非常详细”。
备选方案 1:如果您刚刚在 txt2img 页面上生成图像,则可以单击发送到 img2img按钮。图像和提示将自动填充在img2img页面上。
备选方案 2:如果您在本地图像中保存了生成的图像,请将其上传到PNG 信息页面。您应该会看到生成此图像的所有信息,包括提示和模型。单击发送到 img2img。图像和提示将自动填充。在img2img页面上。
-
将采样步数设置为 50。
-
将去噪强度设置为 0.5。
以下步骤适用于ControlNet部分。
-
将相同的原始图像上传到 ControlNet 的图像画布。
-
选择启用以启用 ControlNet 扩展。
8.在预处理器下拉菜单中选择tile_resample。
9.在模型下拉菜单中选择control_v…_sd15_tile。
以下步骤适用于Ultimate SD Upscale扩展。
-
在页面底部附近的脚本下拉菜单中,选择****Ultimate SD Upscale。
-
在Target size type下拉菜单中,选择Scale from image size。
-
将比例设置为 4。
-
选择一个升频器。我使用了 Universal Upscaler v2。但是您可以为通用升频器选择 ESRGAN 或 R-ESRGAN。
-
确认 Tile 宽度为 512,高度为 0。这将在放大期间使用 512×512 tile。
-
单击生成。
结果
这是放大后的图像。
让我们放大比较。
这是面孔。
惊人的!ControlNet 磁贴升级的质量无异于改变生活。面部和头发的渲染非常清晰,有很多细节。
现在让我们检查一下这件衣服。
看到添加了多少细节让我大吃一惊!
这种方法的缺点可能是添加了太多细节。它可能会以某种方式改变图像,使其不再是原始图像的忠实放大。但这取决于你的目标。
参数调整
您可以尝试使用以下参数。
- 降噪强度:降低它以减少添加的细节量。根据我的经验,最高合理值是 0.5。
- 下采样率(ControlNet):控制对控制块进行多少下采样。增加此值会使控制图像更加模糊。控制图像越隐蔽,模型在制作细节时就越自由。
使用下采样控制图像。
- 采样步数:增加步数往往会改善细节和清晰度。
- Sampling method : 和SD Upscale一样,sampler可以起到最后细节的作用。
- 种子:更改种子以更改详细信息。
- Seam fix (Ultimate SD Upscale):如果您觉得可以看到 512×512 的拼贴,请启用。此选项会沿着图块的边界运行额外的一轮放大。
你应该使用哪一个?
在三个升级选项中 — AI 升级、SD 升级和 ControlNet tile 升级,您应该使用哪一个?
在开始推荐之前,我认为 SD upscale 和 ControlNet tile upscale 的用例是相似的。ControlNet tile 高档是优越的。在任何情况下,您都不会想要使用 SD upscale 而不是 ControlNet tile upscale。
所以它归结为 2 个选择:(1) AI upscaler,和 (2) ControlNet tile upscale。
由于您通常会在 ControlNet tile 操作之前使用 AI upscale 对图像进行 upscale,因此本质上归结为是否使用 ControlNet tile conditioning 执行额外的图像到图像。
如果您使用的是真实照片或保真度对您很重要,您可能希望放弃 ControlNet tile 并仅使用 AI upscaler。有许多AI 升频器可用于不同类型的图像。
事实上,即使是这些 AI upscalers 也会弥补细节,因此请明智地使用它们。
如果您还可以甚至更喜欢添加细节,ControlNet tile upscale 是您的不二之选。这适用于使用 Stable Diffusion 或其他 AI 图像生成器生成的图像。
这是一位SD资深大神整理的,100款Stable Diffusion超实用插件,涵盖目前几乎所有的,主流插件需求。
全文超过4000字。
我把它们整理成更适合大家下载安装的【压缩包】,无需梯子,并根据具体的内容,拆解成一二级目录,以方便大家查阅使用。
单单排版就差不多花费1个小时。
希望能让大家在使用Stable Diffusion工具时,可以更好、更快的获得自己想要的答案,以上。
如果感觉有用,帮忙点个支持,谢谢了。
想要原版100款插件整合包的小伙伴,可以来点击下方插件直接免费获取
100款Stable Diffusion插件:
面部&手部修复插件:After Detailer
在我们出图的时候,最头疼的就是出的图哪有满意,就是手部经常崩坏。只要放到 ControlNet 里面再修复。
现在我们只需要在出图的时候启动 Adetailer 就可以很大程度上修复脸部和手部的崩坏问题
AI换脸插件:sd-webui-roop
换脸插件,只需要提供一张照片,就可以将一张脸替换到另一个人物上,这在娱乐和创作中非常受欢迎。
模型预设管理器:Model Preset Manager
这个插件可以轻松的创建、组织和共享模型预设。有了这个功能,就不再需要记住每个模型的最佳 cfg_scale、实现卡通或现实风格的特定触发词,或者为特定图像类型产生令人印象深刻的结果的设置!
现代主题:Lobe Theme
已经被赞爆的现代化 Web UI 主题。相比传统的 Web UI 体验性大大加强。
提示词自动补齐插件:Tag Complete
使用这个插件可以直接输入中文,调取对应的英文提示词。并且能够根据未写完的英文提示词提供补全选项,在键盘上按↓箭头选择,按 enter 键选中
提示词翻译插件:sd-webui-bilingual-localization
这个插件提供双语翻译功能,使得界面可以支持两种语言,对于双语用户来说是一个很有用的功能。
提示词库:sd-webui-oldsix-prompt
提供提示词功能,可能帮助用户更好地指导图像生成的方向。
上千个提示词,无需英文基础快速输入提示词,该词库还在不断更新。
以后再也不担心英文写出不卡住思路了!
由于篇幅原因,有需要完整版Stable Diffusion插件库的小伙伴,点击下方插件即可免费领取
相关文章:

Stable Diffusion中放大图像的3种方法
前言 要执行 ControlNet tile upscale: 您想使用 Stable Diffusion 创建包含大量细节的大型图像吗?您将需要使用升频器。在本文中,您将学习 3 种放大图像的方法。 人工智能升级器标清高档ControlNet瓷砖高档 您将看到比较并了解这些方法的优…...

生产者消费模式
前言👀~ 上一章我们介绍设计模式中的单例模式,今天我们来讲讲生产者消费模式 阻塞队列(重要) 生产者消费模式(重要) 阻塞队列在生产者消费模型中的作用 标准库的阻塞队列 手动实现阻塞队列 如果各位对…...
PyMuPDF 操作手册 - 06 PDF的转换等
文章目录 七、转换 PDF 文档7.1 将pdf文本提取为 Markdown7.2 将pdf转换为word(使用`pdf2docx`库)7.2.1 安装pdf2docx7.2.2 转换所有页面7.2.3 转换指定页面7.2.4 多CPU核心处理7.2.5 转换加密的 pdf7.2.6 提取表格7.2.7 pdf2docx 和 python_docx 的关系7.3 PDF与图像的转换七…...

VUE3解决跨域问题
本文基于vue3 vite element-plus pnpm 报错:**** has been blocked by CORS policy: No Access-Control-Allow-Origin header is present on the requested resource. 原因:前端不能直接访问其他IP,需要用vite.config.ts ࿰…...

2024阿里云大模型自定义插件(如何调用自定义接口)
1,自定义插件入口 2,插件定义:描述插件的参数 2.1,注意事项: 2.1.1,只支持json格式的参数;只支持application/JSON;如下图: 2.1.2,需要把接口描述进行修改&a…...

生成式人工智能将如何改变网络可访问性
作者:Matthew Adams 受 Be My Eyes 和 OpenAI 启发的一项实验,尝试使用 ChatGPT 4o 实现网页无障碍 在 Elastic,我们肩负着一项使命,不仅要构建最佳的搜索驱动型 AI 平台,还要确保尽可能多的人喜欢使用该平台。我们相…...

科普文:一文搞懂jvm实战(二)Cleaner回收jvm资源
概叙 在JDK9中新增了Cleaner类,该类的作用是用于替代finalize方法,更有效地释放资源并避免内存泄漏。 在JEP260提案中,封装了大部分Sun包内部的API之余,还引入了一些新的API,其中就包含着Cleaner这个工具类。Cleaner承…...
使用PyTorch高效读取二进制数据集进行训练
使用pickle制作类cifar10二进制格式的数据集 使用pytorc框架来训练(以猫狗大战数据集为例) 此方法是为了实现阿里云PAI studio上可视化训练模型时使用的数据格式。 一、制作类cifar10二进制格式数据 import os, cv2 from pickled import * from load_da…...

应急响应:应急响应流程,常见应急事件及处置思路
「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。 这一章节我们需…...

Kotlin/Android中执行HTTP请求
如何在Kotlin/Android中执行简单的HTTP请求 okhttp官网 okhttp3 github地址 打开build.gradle.kts文件加入依赖 dependencies {implementation("com.squareup.okhttp3:okhttp:4.9.0") }在IDEA的Gradle面板点击reload按钮便会自动下载jar...

哈希表(C++实现)
文章目录 写在前面1. 哈希概念2. 哈希冲突3. 哈希函数4.哈希冲突解决4.1 闭散列4.1.1 线性探测4.1.2 采用线性探测的方式解决哈希冲突实现哈希表4.1.3 二次探测 4.2 开散列4.2.2 采用链地址法的方式解决哈希冲突实现哈希表 写在前面 在我们之前实现的所有数据结构中(比如&…...
深入理解代理模式(Proxy Pattern)及其实际应用
引言 在软件开发中,有时候我们需要在不改变现有代码的情况下添加一些功能,比如延迟初始化、访问控制、日志记录等。代理模式(Proxy Pattern)通过代理对象控制对原对象的访问,为现有代码添加了额外的功能。本篇文章将详…...

Elasticsearch (1):ES基本概念和原理简单介绍
Elasticsearch(简称 ES)是一款基于 Apache Lucene 的分布式搜索和分析引擎。随着业务的发展,系统中的数据量不断增长,传统的关系型数据库在处理大量模糊查询时效率低下。因此,ES 作为一种高效、灵活和可扩展的全文检索…...

【Python爬虫】Python爬取喜马拉雅,爬虫教程!
一、思路设计 (1)分析网页 在喜马拉雅主页找到自己想要的音频,得到目标URL:https://www.ximalaya.com/qinggan/321787/ 通过分析页面的网络抓包,最终的到一个比较有用的json数据包 通过分析,得到了发送json…...

基于Jmeter的分布式压测环境搭建及简单压测实践
写在前面 平时在使用Jmeter做压力测试的过程中,由于单机的并发能力有限,所以常常无法满足压力测试的需求。因此,Jmeter还提供了分布式的解决方案。本文是一次利用Jmeter分布式对业务系统登录接口做的压力测试的实践记录。按照惯例࿰…...
IDEA常用代码模板
在 IntelliJ IDEA 中,常用代码模板可以帮助你快速生成常用的代码结构和模式。以下是一些常用的代码模板及其使用方法: 动态模板(Live Templates) psvm:生成 public static void main(String[] args) 方法。sout:生成 System.out.println(); 语句。soutv:生成 System.ou…...

基于大语言模型的多意图增强搜索
随着人工智能技术的蓬勃发展,大语言模型(LLM)如Claude等在多个领域展现出了卓越的能力。如何利用这些模型的语义分析能力,优化传统业务系统中的搜索性能是个很好的研究方向。 在传统业务系统中,数据匹配和检索常常面临…...

【ai】ubuntu18.04 找不到 nvcc --version问题
nvcc --version显示command not found问题 这个是cuda 库: windows安装了12.5 : 参考大神:解决nvcc --version显示command not found问题 原文链接:https://blog.csdn.net/Flying_sfeng/article/details/103343813 /usr/local/cuda/lib64 与 /usr/local/cuda-11.3/lib64 完…...

深入了解DDoS攻击及其防护措施
深入了解DDoS攻击及其防护措施 分布式拒绝服务(Distributed Denial of Service,DDoS)攻击是当今互联网环境中最具破坏性和普遍性的网络威胁之一。DDoS攻击不仅危及企业的运营,还可能损害其声誉,造成客户信任度的下降。…...

【面试系列】产品经理高频面试题及详细解答
欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、…...
前端特殊字符数据,后端接收产生错乱,前后端都需要处理
前端: const data {createTime: "2024-06-11 09:58:59",id: "1800346960914579456",merchantId: "1793930010750218240",mode: "DEPOSIT",channelCode: "if(amount > 50){iugu2pay;} else if(amount < 10){iu…...

力扣热100 哈希
哈希 1. 两数之和49.字母异位词分组128.最长连续序列 1. 两数之和 题目:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。…...

[图解]SysML和EA建模住宅安全系统-05-参数图
1 00:00:01,140 --> 00:00:03,060 这是实数没错,这是分钟 2 00:00:03,750 --> 00:00:07,490 但是你在这里选,选不了的 3 00:00:07,500 --> 00:00:09,930 因为它这里不能够有那个 4 00:00:11,990 --> 00:00:13,850 但是我们前面这里 5 00…...

JavaScript——对象的创建
目录 任务描述 相关知识 对象的定义 对象字面量 通过关键字new创建对象 通过工厂方法创建对象 使用构造函数创建对象 使用原型(prototype)创建对象 编程要求 任务描述 本关任务:创建你的第一个 JavaScript 对象。 相关知识 JavaScript 是一种基于对象&a…...
大二暑假 + 大三上
希望,暑假能早睡早起,胸围达到 95,腰围保持 72,大臂 36,小臂 32,小腿 38🍭🍭 目录 🍈暑假计划 🌹每周进度 🤣寒假每日进度😂 &…...

C语言使用先序遍历创建二叉树
#include<stdio.h> #include<stdlib.h>typedef struct node {int data;struct node * left;struct node * right; } Node;Node * createNode(int val); Node * createTree(); void freeTree(Node * node);void preOrder(Node * node);// 先序创建二叉树 int main()…...
如何在服务器中安装anaconda
文章目录 Step1: 下载 Anaconda方法1:下载好sh文件上传到服务器安装方法2:在线下载 Step2: 安装AnacondaStep3: 配置环境变量Step 4: 激活AnacondaStep4: 检验安装是否成功 Step1: 下载 Anaconda 方法1:下载好sh文件上传到服务器安装 在浏览…...

夸克网盘拉新暑期大涨价!官方授权渠道流程揭秘
夸克网盘拉新暑期活动来袭,价格大涨!从7月1日开始持续两个月,在这两个月里夸克网盘拉新的移动端用户,一个从原来的5元涨到了10元。这对做夸克网盘拉新的朋友来说,真的是福利的。趁着暑期时间多,如果有想做夸…...

机器学习(三)
机器学习 4.回归和聚类算法4.1 线性回归4.1.1 线性回归的原理4.1.2 线性回归的损失和优化原理 4.2 欠拟合与过拟合4.2.1 定义4.2.2 原因以及解决方法4.2.3 正则化 4.3 线性回归改进-岭回归4.3.1 带L2正则化的线性回归-岭回归4.3.2 API 4.4 分类算法-逻辑回归与二分类4.4.1 定义…...
PostgreSQL 基本SQL语法(二)
1. SELECT 语句 1.1 基本 SELECT 语法 SELECT 语句用于从数据库中检索数据。基本语法如下: SELECT column1, column2, ... FROM table_name; 例如,从 users 表中检索所有列的数据: SELECT * FROM users; 1.2 使用 WHERE 条件 WHERE 子…...