点赞 + 关注 + 收藏 = 学会了
本文简介
在使用 SD 文生图功能时,我们能选得大模型大致有两类,一类是普通模型,另一类是更加新的 SDXL 模型。
普通模型就是 SD 的一些旧版模型,是将 SD 1.5 或 SD 2.0 作为底模开发出来的模型。这类模型也是我们现阶段用得最多的模型。它的基础分辨率是 512 x 512
像素。
如果我们需要将增加图片分辨率,直接修改文生图的 width
和 height
出来的效果并不会很好。有时候会还会出现多头的情况,例如下图这种情况。
出现这种情况的原因是画面变大了,人家原本擅长绘画的尺寸是 512 x 512
,而你现在一下子就将画布变大了很多,AI 自由绘画的像素点就变多了,这就有可能出现不合理叠加等问题。
高清修复功能 Hires. fix
介绍
那如果需要生成一张高分辨率的照片,又不想出现这种诡异的情况要怎么办呢?
我们可以使用 SD 提供的 Hires. fix
功能去放大图片。
也就是我们先生成图片,基于这个图片的内容选择一个放大算法去提升图片的分辨率,然后基于这个基础上再整体重绘图片。
看看这个实例:
768 x 512 | 1536 x 1024 |
左图的分辨率是 768 x 512
,右图使用了 Hires. fix
功能放大了 2 倍。
在使用 Hires. fix
出来的效果是不错的,细节也更加丰富,但随之而来的缺点也很明显,启用了 Hires. fix
对图片进行放大,出图的时间会大幅增长,配置不高的设备甚至会爆显存。如果配置不高的电脑尽量不要将图片放大得太多,建议不超2倍。
实操
接下来是实操环境。
咒语:
yaml
(best quality, masterpiece, perfect face, beautiful and aesthetic:1.2, colorful, dynamic angle), handsome beautiful woman humanoid woman robot part metal wires with wavy short dark hair, elegant, red lighting, realistic, concept art, smooth, detailed, high quality, alphonse mucha and waterhouse,, <lora:add_detail:0.5>, (high contrast, official art, extreme detailed, highest detailed)
Negative prompt: portrait, doll, (leaning against wall:1.3), (asian, chinese:1.3), (worst quality, low quality), FastNegativeV2
Steps: 20, Sampler: DPM++ 2M SDE, Schedule type: Exponential, CFG scale: 6, Seed: 2055601004, Face restoration: CodeFormer, Size: 768x512, Model hash: 07341fcad2, Model: aniverse_v30Pruned, Downcast alphas_cumprod: True, Version: v1.9.3
本例用到的模型下载地址:civitai.com/models/1078...
首先我们导入咒语,你也可以设置自己的提示词和参数。然后设置图片的宽高。这里我选择的是 768 x 512
,也就是一张横屏的图片。
然后选择上图中红框上方的 Hires. fix
。选中后展开它,在 Upscale by
这一项中设置 2
,也就是等比放大2倍。
接着我还将 Denoising strength
设置成 0.6
,这个参数的意思是重绘幅度。在高清修复后还会对图片进行整体重绘,这个数值越高,重绘出来的图片就会和原图相差很大。
最后点击生成按钮。
Hires. fix 参数讲解
在 Hires. fix
面板中还有很多参数可以配置。
放大算法 Upscaler
Upscaler
选项中可以选择不同的高清算法对图片进行放大。
Latent
:Latent开头的算法是一种简单直接的放大算法,对电脑配置要求不高,速度很快 ,但出图效果不是很好,可能会出现模糊不清晰等情况。Lanczos
:当放大图像时,它通过计算权重,在原图的每个像素周围插入新的像素;当缩小图像时,它会从原图每个像素周围的像素中选择一个值来替换这个像素。这个算法的运算速度也算快 ,出图效果也还行,能用。Nearest
:是一种插值算法,通过缩放系数计算目标图像在原图中的坐标位置,然后找到原图中距离该位置最近的像素值,将其作为目标图像当前像素的数值。运算速度很快 ,但可能会产生锯齿或者块状瑕疵,效果不太好。ESRGAN_4x
:通过学习低分辨率图像与其对应高分辨率图像之间的映射关系,实现从低分辨率图像到高分辨率图像的映射过程,进而实现图像的超分辨率。分辨率最高可增强4倍,但可能会出现锐化效果。适合油画风。LDSR
:通过训练的潜在扩散模型来提升图像的分辨率,出图效果很好 ,出图的细节全给你拉满,但很吃电脑资源,运算速度也很慢,可以用龟速来形容了。R-ESRGAN 4x+
:通过引入残差连接和递归结构,并使用生成对抗网络进行训练,在提高图像分辨率的同时也完善了图像细节,生成图像的质量比传统方法更高,推荐。R-ESRGAN 4x+ Anime6B
:是 R-ESRGAN 4x+ 的一个衍生版本,修复二次元漫画的效果很好。ScuNet GAN
:可以去除图像噪声,同时保留原始细节,但速度慢。可以去除照片和绘画的早点。不太适合二次元漫画,但也勉强能用。ScuNET PSNR
:降噪效果很好,适用于需要保持更多图像细节、纹理、颜色等信息的处理场景,速度也很慢。不适合二次元漫画。SwinIR 4x
:可将低分辨率图像发达为原来的4倍,生成高分辨率图像。可增强图像的真实感和清晰度。适用于图像重建、图像增强和图像超分辨率等方面,但出图速度很慢,适合修复绘画,不适合二次元漫画。
在使用 Hires. fix
放大算法之前可以看看你正在使用的模型的作者有没有推荐使用什么放大算法,如果有的话就按照作者推荐的去选择就好了。
在写本文时,为了快速生成图片所以才选了 Latent
。
放大倍数和手动调整宽高
放大倍数:通过调整 Upscale by
可以等比放大原图,这个参数是比较常用的。但电脑配置不太高的工友建议不要把该值设置得大于2。
手动调整宽高:Resize width to
和 Resize height to
可以分别调整图形的宽和高,会修改原图的比例。不建议使用。
设置了 Resize width to
和 Resize height to
后,Upscale by
就不生效了。
高分迭代步数 Hires steps
Hires steps
是高分迭代步数,默认值是0,0的意思是使用文生图设置的迭代步数。
如果你重新设置这个值,它生成的画质就会有所不同,数值越高出来的图片精细度就越高。但数值也不是设置得越高越好,比如某些图片设置了60,出来的效果和你设置30是差别不大的。但数值越高出图速度也就越慢。是有边际效应的。
重绘幅度 Denoising strength
Denoising strength
重绘幅度,这个值会影响出图效果。数值远大,出来的图片和原图的差距就越大。
如果不想改变原图的效果这个数值可以设置在0.5以下。但 Denoising strength
的值最终设置多少合适,还是要看你使用了什么底模,有时候设置得太小出来的效果也会很奇怪,画面四周的像素可能会出现很模糊的情况。例如下图是将该值设置成0.3的效果。
可以看到这个图片的质量并不是很好,脸部细节确实更清晰了,但衣服和背景都糊了。
具体还是要看你生成的图片风格再做参数的微调。
高分模型 Checkpoint
最后还可以通过选择不同的模型、不同的模型采样算法、正反向提示词对原图进行修改。这意味着你可以基于原图的基础上进行调整。
但默认是没有上图这些选项的,需要在 设置里手动开启 Hires fix: show hires checkpoint and sampler selection
和 Hires fix: show hires prompt and negative prompt
,然后保存并重启UI。
比如我想将上图人物的头发改成粉色,那么我在正向提示词里输入 pink hair
,生成的人物头发就出现一丝粉色。
注意,是在 Hires. fix
的正向提示词输入框里输入提示词,而不是在原来底模下方的输入框输入!!!
点赞 + 关注 + 收藏 = 学会了