AI图像放大工具,如ESRGAN,对于提高由Stable Diffusion生成的AI图像质量至关重要。它们被广泛使用,以至于许多Stable Diffusion的图形用户界面(GUI)都内置了支持。

在这里,我们将学习什么是图像放大器,它们如何工作,以及如何使用它们。

为什么我们需要图像放大器?

Stable Diffusion v1的默认图像大小是512×512像素按照今天的标准来看,这相当低。以iPhone 12为例。它的相机可以产生1200万像素的图像——即4032×3024像素。它的屏幕显示2532×1170像素,所以一个没有被放大的Stable Diffusion的质量是比较差的,不适合在现代的应用中使用。

另外,如果图片的分辨率太低的话,图片就缺少很多细节,使用起来也有诸多不便。

为什么我们不能使用传统的放大器?

传统放大器当然可以使用,但结果不会那么好。

用于调整图像大小的传统算法,如最近邻插值和Lanczos插值,因为仅使用图像的像素值而受到批评。它们通过仅使用图像的像素值执行数学运算来扩大画布并填充新的像素。然而,如果图像本身有损坏或扭曲,这些算法就无法准确填充缺失的信息。

AI放大器是如何工作的?

AI放大器是使用大量数据训练的神经网络模型。它们可以在放大图像的同时填充细节。

在训练过程中,图像被人为地损坏以模拟现实世界的退化。然后训练AI放大器模型以恢复原始图像。

大量的先验知识被嵌入到模型中。它可以填充缺失的信息。这就像人类不需要详细研究一个人的面孔就能记住它一样。我们主要关注几个关键特征。

如何使用AI放大器?

让我们来了解如何在AUTOMATIC1111 WebUI for Stable Diffusion中使用AI放大器。

转到Extras页面,并选择Single Image

上传你想要放大的图像到source

设置Resize因子。许多AI放大器可以原生地将图像放大4倍。所以4是一个很好的选择。如果你不希望图像那么大,可以将其设置为较低的值,比如2。

如果你的图像是512×512像素,2倍放大是1024×1024像素,4倍放大是2048×2048像素。

选择R-ESRGAN 4x+,这是一个适用于大多数图像的AI放大器。

Generate开始放大。

完成后,放大后的图像将出现在右侧的输出窗口中。右键单击图像以保存。

可以看到页面上还有一个upscaler 2的选项,这意味着你可以把两个放大器混合使用。

后面的Upscaler 2 visibility是用来控制使用upscaler 2模型进行放大的比例。

0表示完全不是用,1表示只使用upscaler 2。

AI放大器选项

让我们来了解一些值得注意的AI放大器选项。

LDSR

Latent Diffusion Super Resolution (LDSR)放大器最初与Stable Diffusion 1.4一起发布。它是一个训练用于执行放大任务的潜在扩散模型。尽管它提供了卓越的质量,但它非常慢。我不建议使用它。

ESRGAN 4x

Enhanced Super-Resolution Generative Adversarial Networks (ESRGAN)是一个放大网络,赢得了2018年感知图像恢复和操作挑战赛。它是之前SRGAN模型的增强版。它倾向于保留细节并产生清晰锐利的图像。ESRGAN是许多其他放大器的基础模型。

R-ESRGAN 4x

Real-ESRGAN (R-ESRGAN)是对ESRGAN的增强,可以恢复各种现实世界的图像。它模拟了从相机镜头和数字压缩的各种扭曲程度。

与ESRGAN相比,它倾向于产生更平滑的图像。

R-ESRGAN在处理现实照片图像时表现最佳。

安装新的放大器

要在AUTOMATIC1111 GUI中安装新的放大器,只需要从放大模型数据库下载一个模型并将其放入文件夹中。

stable-diffusion-webui/models/ESRGAN

重新启动GUI。你的放大器现在应该可以在放大器下拉菜单中选择。

放大图像的例子

使用AUTOMATIC1111中的Extras只是一个非常简单的图片放大的例子。

如果你想是用放大的同时来进行一些细节增强,那么我们可以考虑使用SD Upscale来进行这种复杂案例的修改。

SD Upscale是AUTOMATIC1111附带的一个脚本,它使用放大器进行放大,然后使用图像到图像来增强细节。

下面具体的使用步骤:

第1步。 导航到Img2img页面。

第2步。 将图像上传到img2img画布上。(或者,使用Send to Img2img按钮将图像发送到img2img画布)

第3步。 在底部的Script下拉菜单中,选择SD Upscale

第4步。Scale factor设置为4以放大到原始大小的4倍。

第5步。 将去噪强度设置在0.1和0.3之间。越高,图像变化越大。

第6步。sampling steps的数量设置为100。更高的步骤可以改善细节。

第7步。 你可以使用原始提示和负面提示。如果没有,使用“highly detailed”作为提示。

第8步。Generate

再来看下对比效果:

效果不错,还增加了一些细节效果。

SD Upscale脚本有助于改善细节并减少放大伪影。

txt2img页面上的Hires Fix

还有一种图像放大的方式就是在txt2img中的Hires Fix。

你可以在txt2img页面上选择放大每个生成的图像。为此,你只需要勾选Hires fix

勾选框下将出现额外的选项。这些选项类似于使用SD Upscale脚本。

整个Hires. fix过程你可以理解为我们在图像进行放大后,再基于该图像进行了二次生成。

这个Hires steps就是我们二次生成时的步数,如果数值保持为0,就代表和原有图像生成时的步数相同。

Hires fix会在你生成图片的同时放大所有生成的图片。

所以它会减慢图像的生成速度。

建议的做法先生成图片,然后把挑选好的图片发到img2img进行SD放大。

ControlNet Tile Upscale

上面的SD Upscale还可以跟ControlNet Tile一起使用,从而达到在放大的过程中得到更好的细节。

具体而言,就是在img2img中开启controlNet:

Control type选择Tile。

preprocessor选择tile_resample。

Model选择control_***tile。

同时开启SD Upscale,点击生成即可。

可能会耗时比较久,但是效果应该是最好的。

点我查看更多精彩内容:www.flydean.com

AI图像放大工具,图片放大无所不能的更多相关文章

  1. 认识图片放大工具PhotoZoom的菜单栏

    使用PhotoZoom能够对数码图片无损放大,备受设计师和业内人员的青睐,它的出现时一场技术的革新,新颖的技术,简单的界面,优化的算法,使得它可以对图片进行放大而没有锯齿,不会失真.本文为您一起来认识 ...

  2. PhotoZoom放大的图片效果怎么样?清不清晰?

    PhotoZoom是一款使用了革命性技术.效果最好的图像无损放大工具.它可以对图片进行放大而没有锯齿,不会失真,让您无与伦比完美放大图像质量. PhotoZoom Pro使用了S-Spline Max ...

  3. 图片放大不失真软件PhotoZoom的工具栏

    PhotoZoom是一款极其简单的图片无损放大工具,简单几即可渲染出完美的放大照片,呈现无与伦比的画质效果.虽然简单,菜单和面板的功能很少,但却是设计师的必备神器,因为其简单易用性,它的软件菜单命令和 ...

  4. js图片放大效果

    实现购物网站里的图片放大效果,jqzoom很好用.今天才接触它,很快就上手了.看了一个示例,在放大图像上方貌似有水印,后经排查,原来是图片的标题,然后设置title为false,搞定.

  5. 用HTML5和原生js实现放大局部图片

    drawImage方法 context.drawImage(image,sx,sy,sh,dx,dy,dw,dh) sx\sy起始图像的横纵坐标,sh\sd起始图像的大小,dx\dy复制图像的横纵坐标 ...

  6. 浅谈CSS和JQuery实现鼠标悬浮图片放大效果

    对于刚刚学习网页前台设计的同学一定对图片的处理非常苦恼,那么这里简单的讲解一下几个图片处理的实例. 以.net为平台,微软的Visual Studio 2013为开发工具,当然前台技术还是采用CSS3 ...

  7. JavaScript 实现用户点击图片放大

    JavaScript 实现用户点击图片放大 一.契机 情况是这样的,之前推荐朋友去建站.后面他专门写了一篇文章说如何实现 "用户点击图片实现放大效果",俺就好好 "拜读& ...

  8. imageView图片放大缩小及旋转

    imageView图片放大缩小及旋转 一.简介 二.方法 1)设置图片放大缩小效果 第一步:将<ImageView>标签中的android:scaleType设置为"fitCen ...

  9. PhotoZoom的工具栏 图片放大不失真

    使用PhotoZoom能够对数码图片无损放大,备受设计师和业内人员的青睐,它的出现时一场技术的革新,新颖的技术,简单的界面,优化的算法,使得它可以对图片进行放大而没有锯齿,不会失真.本文为您一起来认识 ...

  10. 【荐】JavaScript图片放大技术(放大镜)示例代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. 全网最适合入门的面向对象编程教程:05 类和对象的Python实现-PyCharm代码标签(一个帮你提升coding效率的小技巧)

    摘要: 本文介绍了PyCharm IDE中代码标签的定义.类型和使用方法. 往期推荐: 学嵌入式的你,还不会面向对象??! 全网最适合入门的面向对象编程教程:00 面向对象设计方法导论 全网最适合入门 ...

  2. SQL去重distinct方法解析

    来源:https://www.cnblogs.com/lixuefang69/p/10420186.html SQL去重distinct方法解析 一 distinct 含义:distinct用来查询不 ...

  3. 2行JS代码实现Vue全选和反选

    实现效果: 第一行:子选项的选中状态 等于 全选框的状态 this.letters.forEach(item => item.check = this.checkAll) 第二行: 使用数组 e ...

  4. [oeasy]python0135_python_语义分析_ast_抽象语法树_abstract_syntax_tree

    语义分析_抽象语法树_反汇编 回忆 上次回顾了一下历史 python 是如何从无到有的 看到 Guido 长期的坚持和努力   ​   添加图片注释,不超过 140 字(可选)   python究竟是 ...

  5. 前端太卷了,不玩了,写写node.js全栈涨工资,赶紧学起来吧!!!!!

    首先聊下node.js的优缺点和应用场景 Node.js的优点和应用场景 Node.js作为后端开发的选择具有许多优点,以下是其中一些: 高性能: Node.js采用了事件驱动.非阻塞I/O模型,使得 ...

  6. httpclient,轻量级idea集成测试工具

    优点:不用新开一个网页,具有测试数据保存功能,不需要配置即用(对比swagger)     不会特别占内存(对比postman) 使用方法:idea中安装插件 controller方法中点击 选择对应 ...

  7. mysql报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

    mysql报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql ...

  8. 【Java】Input,Output,Stream I/O流 04 对象流&序列化

    对象流,序列化机制 ObjectInputStream ObjectOutputStream 序列化 对象 写入转 数据 持久化 反序列化 数据 读取转 对象 活化 - 任何实现了Serializab ...

  9. Jax框架的Traced object特性与TensorFlow的placeholder的一致性

    前文: Jax框架的static与Traced Operations -- Static vs Traced Operations 前文讨论分析了Jax的static特性和Traced特性,这些谈下个 ...

  10. Jax的加速层的伪代码/中间层代码的生成和查看

    地址: https://jax.readthedocs.io/en/latest/notebooks/thinking_in_jax.html#jit-mechanics-tracing-and-st ...