无码高清?Stable DIffusion教程 | 如何利用 Stable Diffusion webui 将图片变得更清晰?全方位对比4种放大方法!

news2024/11/16 5:42:59

大家好,我是大师兄

1、引言

“高分放大”(有时候也叫“超分放大”或“高清修复”)描述了在确保图像清晰度的前提下提升图片分辨率的过程。例如,将一张512 x 512的图片放大四倍,得到的就是2048 x 2048分辨率的图片,这个过程不仅放大了图片尺寸,也丰富了图像细节以保持图像清晰度。

在SD webui中,直接生成一张2048 x 2048分辨率的图片由于模型底层机制的限制而变得极其困难。这主要有以下3个原因:

1、显存限制: 与512 x 512相比,2048 x 2048的像素点数量增长16倍,生成图片所需的内存也随之增长16倍。基本上,运行SD webui会占用约3G的显存,处理512 x 512分辨率的图像,显存使用将增加约1G。因此,若要直接生成2048x2048的图片,需要约20G的显存,而当前主流显卡通常只配备8G甚至4G的内存,无法支撑生成高分辨率图片。

2、时间限制: 随着显存使用的增加,生成时间也会以指数级别增长,达到正常时间的16倍!

3、模型限制: 用于训练模型的图片分辨率最高为768 x 768,直接生成过高分辨率的图片可能会导致模型产生重复元素的图片,如重复的人物或头部等。

因此,若想获取一张高分辨率的图片,通常需要进行以下步骤:

1、生成一张低分辨率的图片,例如512 x 512、768 x 512、或512 x 768。

2、然后选择合适的方法放大图片。

下面正式开始介绍本期的内容。

2、插件下载和安装

想要使用高分放大功能,需要借助一些插件的帮助。如果你打算按照这个教程进行操作,那么我建议你安装以下插件。每种插件都提供了三种安装方法,请根据需要自行选择。

1、Ultimate SD Upscale 插件安装

Ultimate SD upscale(终极SD放大) 与 SD webui 内置的放大插件类似,只是 Ultimate SD Upscale 插件提供了更多高级选项。

安装该插件的方法有以下3种。

其中第1种和第2种需要魔法,第3种国内网络即可完成

1)通过SD webui 内部安装

① 打开SD webui,点击 extensions(插件),点击 install from URL(从网址安装)

② 在第一行框内输入:https://github.com/Coyote-A/ultimate-upscale-for-automatic1111 (注意需要科学上网)

③ 点击 install(安装)

④ 等待安装完成,然后重启SD webui

⑤ 如果安装成功,你可以在 img2img 标签页的 script(脚本)框的下拉菜单中找到该插件。

2)手动安装

① 下载 Ultimate SD upscale 原文件,下载地址有以下两个,选择其中一个下载:

从 github 下载:https://github.com/Coyote-A/ultimate-upscale-for-automatic1111/archive/refs/heads/master.zip
(如无法下载,请看文末扫描获取)

② 解压文件,并将 ultimate-upscale-for-automatic1111 文件夹转移到 stable-diffusion-webui\extensions 路径下

③ 重启 SD webui,如果安装成功,你可以在 img2img 标签页的 script(脚本)框的下拉菜单中找到该插件。

2、ControlNet 插件安装及模型下载

ControlNet 是 SD webui 中功能非常强大的插件,提供了许多控制图片生成效果的方法。在这个教程中我将利用 ControlNet 对图片进行高分放大。

sd webui 的插件安装基本都是异曲同工的,安装步骤完全相同,因此下面的安装方法将不再配图。

手动安装

① 下载 ControlNet 原文件,下载地址有以下两个,选择其中一个下载:

从 github 下载:https://github.com/Mikubill/sd-webui-controlnet/archive/refs/heads/main.zip (如无法下载,请看文末扫描获取)

② 解压文件,并将 sd-webui-controlnet 文件夹转移到 stable-diffusion-webui\extensions 路径下

③ 重启 SD webui,如果安装成功,你可以在 txt2img 标签页中找到该插件。

ControlNet 模型下载:

不同于其他插件,ControlNet 的运作还需要下载它独有的模型。

① 打开ControlNet 模型下载地址:https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main (如无法获取请看文末扫描获取)

② 此网址包含了所有可下载的 ControlNet模型,你可以下载所有 .pth 结尾的文件,但这个教程只会使用到其中的 tile 模型,该模型下载链接:https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11f1e_sd15_tile.pth,你也可以只下载这个模型,后续有需要再下载其它模型。

③ 将下载的模型放在 stable-diffusion-webui\extensions\sd-webui-controlnet\models 目录下

④ 重启 SD webui,如果安装成功,你应该可以在如下位置找到 tile 模型

生成输入图片

图片的生成参数如下:

模型:ChilloutMix

模型下载链接:

https://huggingface.co/swl-models/chilloutmix/resolve/main/Chilloutmix-non-ema-fp16.safetensors
(如无法下载请看文末扫描获取)

下载的模型移动到 stable-diffusion-webui\models\Stable-diffusion 路径下。

图片生成参数:

    Prompt(正向提示词):raw photo, high quality, 1 girl, young, (detailed clear eyes:1.2), radiant skin, white dress, pink short hair, swept bangs, (collorbone:1.1), slim, perfect nose, (pink lip:1.1), highly detailed, flowering land as background, expansive view, upper body, sunlight, side light, (cinematic lighting:1.1), bright color, dramatic, fantasy, stunningly beautiful,8k, uhd,

    Negative prompt(反向提示词):nsfw, naked, asymmetric eyes,out of frame, abnormal face, ugly, deformed, distorted, (easynegative:1.2), low contrast, (Pale skin:1.2),open mouth

其它参数:

Sampling method(采样方法):DMP++ 2M Karras

Sampling steps(采样步数):20

Size(尺寸):768 x 512

CFG scale(CFG值):7

Seed(种子):4263532296

Clip skip:2

获得如下图片:

下面的示例都将以此图作为输入进行测试。

高分放大方法

1、Hires. Fix

这个高清修复的方法我简单概述一下这个方法的优缺点:

缺点: 这种方法对显存的占用较高,处理时间较长,且会放大生成的每一张图片。然而,有些图片可能并无需放大,因此这种方法的效率偏低,不是特别推荐使用。(以我的4G显存为例,是无法运行的,高显存请随意)

优点: 有独有的放大算法

接下来,我们将深入探讨另外三种高清修复的方法。

2、AI Upscaler(AI放大法)

AI放大法是 SD webui 中非常基础的一种高分放大方法,操作最简单。这种方法需要使用到AI 放大模型,在 SD webui 中已经内置了几种AI放大模型,如 4xESRGAN、R-ESRGAN 4x+ 和 Lanczos 等等。

更多AI放大模型可以从这个网址下载:https://upscale.wiki/wiki/Model_Database

将下载的模型放在 stable-diffusion-webui/models/ESRGAN 路径下即可。

下面介绍操作步骤。

① 进入 SD webui,点击 Extra(后期处理)标签页

② 拖拽或者上传一张照片到图片框内

③ 改变 Scale by 下的 Resize(调整大小)可以调整放大倍率,默认4倍即可。Scale to 可以放大图片到指定大小

④ 在 Upscaler 1(放大算法1)的下拉菜单中选择 4xESRGAN 4x+,Upscaler 2(放大算法2)选择 4x_CountryRoads_377000_G(这个模型需要自行安装),Upscaler 2 visibility(放大算法2能见度)设置为0.5。由于这张图片的人脸正常,其它设置保持默认

⑤ 点击 Generate(生成),生成图片如下

先来对比一下脸部细节

完全保留了原图的该有的样子,而且清晰度提升非常显著,保留了人脸皮肤的质感。但是会产生一些不太自然的现象,比如眼睛部分,瞳孔模糊,眼角异常。

再来看看其他衣服细节:

可以看出,使用AI放大法对图片进行高分放大后的效果是相当不错的,能够完全保留原图信息,而不做更改。

总结一下AI放大的优缺点

优点: 处理时间非常短,占用内存少,不改变原图的内容

缺点: 有较为明显的人工痕迹,且无法处理瑕疵

使用技巧:

1、多试几个放大算法,选择最合适的

2、如果内置的放大算法不能满足你的要求,那么可以下载新的放大算法。

3、Ultimate SD Upscale(终极SD放大法)

在使用AI放大法的时候,可以观察到,放大后的结果是完全忠于输入的图像的,也就是说当你觉得生成的图片已经足够完美了,你不想有任何一点点改动,那么AI放大法是一个很好的高分放大法。

但是如果生成的图片不是那么完美,你希望在放大的时候对其稍微改善,那么终极SD放大法会是一种很不错的方法。

操作步骤:

① 在 txt2img 标签页,点击send to img2img。如果是存在本地的图片,那么先上传到 PNG info 界面,然后再点击 send to img2img。

② 设置 Denoising strength(重绘幅度)为0.25。此值需要根据实际情况选择数值。如果不想让图片有过多的变化,可以使用0.1-0.2的重绘幅度。重绘幅度越大,图片的变化越大,但不能超过0.5。其它保持默认设置,设置好后的界面如下

③ 在 script(脚本)框内选择 Ultimate SD Upscale,其它设置按照下图方式设置

④ 保持 tile width 为512,tile height 为0,此设置会使图片按512x512的大小分别处理

⑤ 点击 Generate(生成),生成图片如下

先来看看脸部细节

效果还是相当不错的,会去除一些瑕疵,比如人脸上的痣,瞳孔也更正常。不过磨皮效果有点过强了,同时眼角还是有点泛白。

再来看一下衣服细节:

总的来说 Ultimate SD Upscale 插件的效果非常不错。在处理复杂图片信息时,终极SD放大法的效果会更为突出

总结一下优缺点

优点: 能够简单处理瑕疵,与SD放大法相比能够添加更多的细节。

缺点: 处理时间相比AI放大法更长,对瑕疵的处理程度还不够强

4、ControlNet tile upscale(瓦片放大法)

这种高分放大方法为进阶方法,需要 ControlNet 和 Ultimate SD Upscale 两种插件的共同参与。

瓦片放大法具有两个比较突出的优点:1、能给原始图片添加更多的细节;2、显存占用低,因此可以绘制分辨率更高的图。

具体的操作步骤如下:

① 在 txt2img 标签页,点击send to img2img。如果是存在本地的图片,那么先上传到 PNG info 界面,然后再点击 send to img2img。

设置 Sampling steps(迭代步数)为20,如果要添加更多细节,可以适当增加迭代步数

设置 Denoising strength(重绘幅度)为0.4,值越大图片的变化越大,反之亦然

打开 ControlNet 界面,将待处理图片上传上去

② 勾选上 Enable(启用),显存小的显卡勾选 Low VRAM(低显存模式),勾选Pixel perfect(完美像素模式)

③ Preprocessor(预处理器)选择 tile_resample(分块重采样)

④ Model(模型)选择 control_v11f1e_sd15_tile,设置好后的界面如下:

⑤ Script(脚本)选择 Ultimate SD upscale,其它设置如下

⑥ 点击 Generate(生成)

先来看看脸部细节对比

只能说效果相当炸裂!注意下眼皮的纹理,瞳孔的纹理,嘴唇的褶皱,细节完全拉满!

再看一下衣服细节

总结一下优缺点

优点: 给图片添加更多细节,是三种方法中效果最好的

缺点: 处理时间更长,是三种方法中最长的

5、总结

下面综合对比以上三种方法生成的效果

人脸部分:

衣服部分:

以下是我对三种方法的个人打分,相对直观的反应了3种高分放大方法的使用体验。

总的来说,无论是使用 Ultimate SD upscale 还是 ControlNet + Ultimate SD upscale 进行放大,其处理时间都会远远大于AI放大法,相应的效果也会更好。而普通的SD放大能真实的还原图片原本信息,不做修改,而且处理时间很短,但也意味着会放大图片本身存在的下次。

具体应该选择哪种方法,就需要根据个人情况自行选择了。

好啦,本期的内容到这里就结束了!

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

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

相关文章

现代社区管理中的电瓶车违停检测技术

随着城市化进程的加快,电瓶车作为一种环保、便捷的出行工具在社区内的使用越来越普及。然而,电瓶车的随意停放问题也日益严重,影响了社区的整体环境和居民的生活质量。为了解决这一问题,社区管理者迫切需要一种高效、准确的电瓶车…

Qt:QDialogButtonBox的使用

QDialogButtonBox是Qt自带的按钮箱,通过枚举QDialogButtonBox::ButtonRole可以添加Qt定义按钮,或者通过方法QDialogButtonBox::addButton添加自定义的按钮。 // 自定义按钮。 button_box_ new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonB…

【Python报错】已解决SyntaxError: invalid character in identifier

成功解决“SyntaxError: invalid character in identifier”错误的全面指南 一、引言 在Python编程中,SyntaxError是一种常见的编程错误,它表明Python解释器在解析代码时遇到了不符合语法规则的情况。其中,“SyntaxError: invalid character…

vue3_组件间通信方式

目录 一、父子通信 1.父传子( defineProps) 2.父传子(useAttrs) 3.子传父(ref,defineExpose ) 4.子传父(defineEmits) 5.子传父(v-model) …

OSI协议集

国际标准化组织除了定义osi参考模型之外,还开发了实现7个功能层次的各种协议和服务标准,这些协议和服务统称为osi协议。osi协议是一些已有的协议和iso新开发的协议的混合体,例如,大部分物理层和数据链路层协议是采用现有的协议&am…

数组中的第K个最大元素 ---- 分治-快排

题目链接 题目: 分析: 这道题很明显是一个top-K问题, 我们很容易想到用堆排序来解决, 堆排序的时间复杂度是O(N*logN), 不符合题意, 所以我们可以用另一种方法:快速选择算法, 他的时间复杂度为O(N)快速选择算法, 其实是基于快排, 进行修改而成, 我们还是使用将"将数组分…

QT treeWidget如何添加虚线

1、添加以下代码即可: ui.treeWidget->setStyle(QStyleFactory::create("windows"));2、效果如下:

Docker的网络管理

文章目录 一、Docker容器之间的通信1、直接互联(默认Bridge网络)1.1、Docker安装后默认的网络配置1.2、创建容器后的网络配置1.2.1、首先创建一个容器1.2.2、ip a 列出网卡变化信息1.2.3、查看新建容器后的桥接状态 1.3、容器内安装常见的工具1.4、容器间…

天才简史——Tamim Asfour与他的H²T实验室

一、Tamim Asfour介绍 Tamim Asfour为KIT人类学和机器人学研究所(Institute for Anthropomatics and Robotics)的全职教授,并担任高性能人形技术实验室 (High Performance Humanoid Technologies Lab,HT) 负责人。他目前的研究兴…

注册自定义材质实现qgis里不同比例尺下材质不被拉升的效果

前景提要: 在QGIS里的显示效果,用的是示例的/img/textures/line-interval.png材质图片。 下载示例 git clone https://gitee.com/marsgis/mars3d-vue-example.git 相关效果 比如材质是5像素,在1:100000万比例尺下,线显示的长…

一个月速刷leetcodeHOT100 day15 彻底搞懂回溯算法 以及相关题目

回溯算法采用试错的思想,它尝试分步的去解决一个问题。在分步解决问题的过程中,当它通过尝试发现现有的分步答案不能得到有效的正确的解答的时候,它将取消上一步甚至是上几步的计算,再通过其它的可能的分步解答再次尝试寻找问题的…

如何在MySQL中实现upsert:如果不存在则插入?

目录 1 使用 REPLACE 2 使用 INSERT ... ON DUPLICATE KEY UPDATE 使用 INSERT IGNORE 有效会导致 MySQL 在尝试执行语句时忽略执行错误 INSERT 。这意味着 包含 索引或 字段 INSERT IGNORE 中重复值的语句 不会 产生错误,而只是完全忽略该特定 命令。其明显目的是…

vue2使用antv/g6-editor实现可拖拽流程图

依赖下载 照着这个引入就好&#xff0c;然后npm install 源码 <template><div id"vue-g6-editor"><el-row><el-col :span"24"></el-col></el-row><!-- 工具栏 --><el-row><el-col :span"24&qu…

移动端 UI 风格,打造极致体验

移动端 UI 风格&#xff0c;打造极致体验

Three.js和Babylon.js,webGL中的对比效果分析!

hello&#xff0c;今天分享一些three.js和babylon.js常识&#xff0c;为大家选择three.js还是babylon.js做个分析&#xff0c;欢迎点赞评论转发。 一、Babylon.js是什么 Babylon.js是一个基于WebGL技术的开源3D游戏引擎和渲染引擎。它提供了一套简单易用的API&#xff0c;使开发…

在Windows上用Llama Factory微调Llama 3的基本操作

这篇博客参考了一些文章&#xff0c;例如&#xff1a;教程&#xff1a;利用LLaMA_Factory微调llama3:8b大模型_llama3模型微调保存-CSDN博客 也可以参考Llama Factory的Readme&#xff1a;GitHub - hiyouga/LLaMA-Factory: Unify Efficient Fine-Tuning of 100 LLMsUnify Effi…

【数据结构】平衡二叉树左旋右旋与红黑树

平衡二叉树左旋右旋与红黑树 平衡二叉树 定义 平衡二叉树是二叉搜索树的一种特殊形式。二叉搜索树&#xff08;Binary Search Tree&#xff0c;BST&#xff09;是一种具有以下性质的二叉树&#xff1a; 对于树中的每个节点&#xff0c;其左子树中的所有节点都小于该节点的值…

创意KMS知识图谱ui设计合集来了

创意KMS知识图谱ui设计合集来了

解决nvidia驱动和CUDA升级问题

解决nvidia驱动和CUDA升级问题 注释&#xff1a;升级高版本的nvidia驱动和cuda是不影响现有的docker镜像和容器的。因为是向下兼容的。仅仅升级后重启服务器即可。 ERROR: An NVIDIA kernel module ‘nvidia-drm’ appears to already be loaded in your kernel. This may be…

微信公众号二维码登录

微信扫码登录&#xff1a; 方式1、微信开放平台&#xff1a;第三方应用接入&#xff0c;依赖公司在【微信开放平台】用【公司营业执照】注册的账号&#xff0c;才能实现扫码登录 微信开放平台 方式2、微信公众平台&#xff1a;扫码通过微信公众号授权登录的&#xff0c;借助个人…