当前位置:首页|资讯|AI绘画|Stable Diffusion|提示词

SD挽救渣图的神器—Loopback Scaler

作者:觉悟之坡发布时间:2023-04-28


这是觉悟之坡AI绘画系列第34篇,

本文作者:蚂蚁(欢迎投稿)

一. 前言

今天这篇文章就是围绕着开局的这两张原图开始的。

在Stable diffusion甚至当前所有的AI画图工具里面,AI生成内容随机性都是一个很大的问题。

我们经常遇到一张图构图不错但是脸崩了,又或者人物形象不错但是背景画得崩了这样的问题。

前者我们往往把图扔到图生图里面在脸部画个蒙版继续扔色子。而后者一般调整prompt重绘或者像前面一样到图生图里面打蒙版,重绘背景。

今天分享一个新工具——loopback scaler,这个新工具将给你带来不一样的解决办法,而且还有更多的可玩性,先说结论。

经过简单试用,总结一下这个工具能做的事情:

  • 渣图挽救者:在图生图中对原图迭代重绘,修复渣图。脚本在多个循环中处理输入图像,每个循环提高分辨率并优化图像质量。然后,一个循环的图像结果作为下一个循环的输入图像插入,该循环不断基于已创建的内容构建;

  • 降噪变化:可以针对每个循环调整去噪强度,使用户能够在保留细节和减少伪影之间取得平衡;

  • 图像滤镜:支持对补绘的图片设定锐度、亮度、对比度、饱和度,也支持对画面细节、模糊、平滑度进行设置;

  • 一种新的分辨率提升方式,可以在重绘中对分辨率扩增,而且这是一种自适应更改——脚本根据输入图像的平均强度调整每个循环的分辨率增加量。这有助于产生更自然的效果;

  • 深化细节,补绘原图,支持重设prompt增加原图没有的细节;

  • 支持输出深化后的线稿;

二.安装

1.自动安装

在stable diffusion扩展选项卡下,选择[从网址安装 install from url],粘贴https://github.com/Elldreth/loopback_scaler网址到"git仓库地址 URL for extension's git repository",“本地目录名”留空即可,点击安装,安装完毕后重启web-ui。

loopback scaler仅仅是一个python脚本无需下载额外的模型,所以安装应该很快,但是如果遇到GitHub暂时无法直接访问的情况,需要开启上网工具,你懂的。

或者将上面的网址修改成http://ghproxy.com/https://github.com/Elldreth/loopback_scaler就可以快速安装了。

安装好后在图生图选项卡最下面的“脚本”下拉选项中就可以找到“Loopback Scaler”了。在使用前我非常建议大家通过上面这个网址浏览一下这个项目的说明文档。

2.手动安装

脚本也支持手动安装,具体做法如下:

从GitHub或者从本文下载loopback_scaler.py文件;

将脚本移动到文件夹:\stable-diffusion-webui\scripts;

关闭web UI;

运行webui-user.bat(win)或者webui-user.sh(linux和mac),重新启动web UI;

三.实操体验

1.先画出原图

完成上面的工作,我们开始实际体验,例子就用文章开始的这个图片,生成的正反prompt如下(一会儿会用到):

pos prompt正词:

((masterpiece)),(high quality),(line art watercolor wash),Cyan and orange primary colors,2d Illustrations,A majestic Dunhuang Nüwa with a shimmering gold halo, soaring through the sky,delicate eyes,black clothes,floating hair,dress tangstyle hanfu,very long hair,ethereal background, abstract beauty, approaching perfection, pure form, golden ratio, minimalistic, full body,wide view, by Brian Froud and Carne Griffiths and Wadim Kashin and John William Waterhouse, intricate details, 8k post production, high resolution, hyperdetailed, trending on artstation, sharp focus, studio photo, intricate details, highly detailed, by greg rutkowski

neg prompt反词:

(((2 heads))), (((duplicate))), ((malformed hand)), ((deformed arm)), ((freckle)), naked, man, men, blurry, abstract, deformed, thick eyebrows, cartoon, animated, toy, figure, framed, 3d, cartoon, bad art, deformed, poorly drawn, extra limbs, close up, weird colors, blurry, watermark, blur haze, long neck, watermark, elongated body, cropped image, out of frame, draft, (((deformed hands))), ((twisted fingers)), double image, ((malformed hands)), multiple heads, extra limb, ugly, ((poorly drawn hands)), missing limb, cut-off, grain, bad anatomy, poorly drawn face, mutation, mutated, floating limbs, disconnected limbs, out of focus, long body, disgusting, extra fingers, (weird figure), missing arms, mutated hands, cloned face, missing legs, long neck,modern buildings,((watermark:2))

跳过文生图的步骤,这一步大家应该都已经掌握。就不详细说了。

在这里多说一点的是,因为我这张图为了拟合某种青绿色调、扁平化的国风插画,所以描述词中用了很多篇幅来形容画风和色调,这就导致一些二次元的模型比如Counterfeit、anything跑图时会出现问题,所以选择了泛用性好的大模型比如SD 1.5这种。

实际上这张图是在dreamstudio上的SD XL预览模型跑的,在没有controlnet和lora的加持下,人脸毫无意外的垮了,接下来我们开始挽救这张图。

2.开始魔法救场

(1)把图拖入图生图工作界面

填好上面的正词、反词,这里有个技巧如果你需要修改画面风格、背景或者替换某些元素,在这一步可以修改你的正词。

原图和后面loopback scaler深化的正反词无需一致,其实loopback scaler的作者也已经指出:“您可以在 img2img 中放置与您创建源图像时使用的提示不同的提示。这种方法得出了非常有趣的结果”。

(2)选择合适的创作模型

因为前面为了适配画风选择了基础大模型,而得到的结果并不好,这时候比如我们想深化为二次元图片,那么我们这时候可以选择Counterfeit、anything这种模型了,如果要画真人风也可以选择chilloutmix、deliberate等等。

因为loopback scaler会帮我们迭代深化,所以模型我们可以放心使用了,这里我选择了Counterfeit这个二次元模型,需要注意这个模型需要加载vae,不要忘记。

(3)开始设置图生图参数

根据github上作者文档,可以看到有几个地方需要特别注意:

a)缩放模式选择剪裁;

b)采样方法选择DDIM,采样步数设置为30;

c)宽度、高度这里保持原图的大小,而且建议原图不要出图太大,loopback scaler迭代中原图大小是影响性能的最重要因素,而迭代次数并不是主要压力来源,所以性能不好的机器原图请出512*512的,而且图生图这里不要修改!

d)提示词相关性(CFG值)按照惯例保持6~8之间即可;

e)重绘幅度(降噪)设置在0.2~0.4之间,设置的越低每次迭代间变化就越少,反之结果与原图的差距就会越大,我们的原图因为比较垮,所以设置在比较高的值。

f)随机种子建议保持在-1,锁种子对于迭代应该没有意义。

g)如果需要lora,可以设置,实测是可以使用的。

(4)开始设置loopback scaler参数

到页面的最下方(默认布局)的脚本下拉选框中选中Loopback Scaler,开始设置迭代参数:

a) loops(循环次数):作者建议4~10之间,最高可以设置到32,但是设置过高会导致图片出现伪影,呈现负优化,作为演示我这里就设置为4,多说一句这里设置高低其实不受计算机性能限制,但是会导致出图时间变长,所以大家可以自己测试;

b) denoise change(降噪变化)和adaptive change(自适应变化)前者决定每次迭代中的降噪变化,设置为1则保持img2img 设置中设置的去噪强度(前一节第5步的设置值)。后者则是更改每个迭代中降噪变化的增加量,实现迭代的更改不呈线性,该值越高,在循环结束时分辨率变化越显著。在这里我们暂时都不修改,保持为1。

c)最大宽度和最大高度这是设置最终深化得到的图片大小,所以可以看到loopback scaler是可以放大图片的。这也是一开始建议大家原图只出512*512即可的原因。但是需要注意的是因为loopback scaler与ultimate SD upscale原理不同,不会分片绘制放大来节省显存占用,所以这里不建议大家用loopback scaler放大过高尺寸。根据经验设置在1024即可,如需大尺寸图片,后期可配合别的重绘放大工具,如ultimate SD upscale。

d)上图蓝色标出区域为图片滤镜设置,深化过程中如果需要添加细节,可以将detail调高,如需模糊则调整blur,如果需要平滑则调整smoothing。再下方则是锐度、亮度、色彩、对比度设置,按需调整即可。我们需要得到色彩浓郁、明亮、清晰的图片,所以我做了以上调整。

e)contour不要勾选,如果需要输出深化后图片的线稿则需要勾选这里。

f)点击生成,等待魔法完成。

生成过程中,千万不要修改图生图界面的正反引导词!这将导致生成结果混乱,这一点脚本的作者也是在GitHub上特别指出的!

ALWAYS have a prompt in your img2img tab when doing this process, unless you are interested in creating chaos

所以点击生成后就耐心等待吧。

有一个非常有意思的特点,你可以到\stable-diffusion-webui\output\img2img-images文件夹下看到每次迭代的图片,可以看到图片从渣逐渐优化的过程,每一次迭代产生的图片都是保存在那里,当然通常这没有什么意义,因为输出的最后一张往往是最好的。

但是如果你迭代次数设置过高(超过了10步),你可能得到负优化的图片了,那么这个方式可以帮助你回退到比较理想的结果。

四.总结

这个文章到这里基本就可以结束了,关于loopback scaler的魔法大家自己去挖掘吧,因为这个脚本是通过循环迭代的原理将上一个循环扔个下一个循环继续生成,可以理解为给AI叠buff。

所以将来遇到画崩了图的时候,可以尝试用这个脚本挽救一下,往往会有意想不到的效果。

最后po一些更换其他模型的图:

好了,大家都学会了吗?学会了记得三连哦~

如果不会,有问题也可以私。

<End>

历史AI绘画文集,请查看AI绘画文章合集

关注我们,更多有用又有趣的AI绘图技能知识持续更新中~


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1