这个问题困扰了我很久,搜遍全网无果,询问大佬无果,我自己摸索的解决方法在本文的最后,如果你没兴趣看问题解决的过程,可以直接看文章最后面的解决办法即可,如果你有兴趣看看,请听我娓娓道来。
AI绘画目前主要分为webui版本和naifu版本,webui版本功能强大,naifu版本使用简单,虽然他们使用相同的模型,但是同样的关键词和设置,产出的图像差别不小,我个人更喜欢naifu版本的出图,尤其是在某些特定词汇下,我发现naifu版本的出图完爆webui。网上搜索了一下,说是webui设置问题,但是即便按照教程设置,webui在特定词汇下的表现仍然不尽人意,想来想去我还是决定使用naifu版本进行批量出图。
但是naifu版本存在一个不足就是,默认最多一次出图100张,而且不好修改。
先来看一下naifu的界面:
默认naifu界面一次性最多出图100张,这个问题在最初的版本就存在,当时我为了多出图,于是修改index.html源码(英文版),找到“Number of Images:”下方的“input type="range" min="1" max="100" step="1"”中的max值为999,控制滑块最大值,成功解决问题,然而目前新版本的naifu,使用这个方法失效了。
中文版的修改办法,修改_naifu_speed\static\_next\static\chunks\pages\index-9063cb5cbe951293.js中的如下图所示的位置,可以搜索“数量”这两个字。
实测,即时更改了滑块的最大值,并且滑到最右侧,如下图所示,一次仍然只能产出100张图。
尝试很久没有结果,于是我决定在naifu整个网页搜索,因为可以初步判断这个指令是naifu发出的,跟其他模型什么的应该没关系,结合启动bat的内容,更加坚定了我的这一个想法。
于是我在整个naifu目录搜索100这个数值,得到的结果如下:
于是,略过明显不是的结果,然后逐个查看,检查,测试,可惜的是结果仍然一无所获!
尤其是发现\_naifu_speed\hydra_node\sanitize.py中下图这个值的时候,当时真的很高兴,以为终于找到答案了。
然而,经过修改实测,这并不是想要的值,无效!
这下子这个问题陷入了无解的境地,但是我不愿意放弃呀!
于是我决定亲自调试,由于是python代码,于是我用了pycharm,打开_naifu_speed目录,定位到main.py文件。
因为环境配置问题,只能结合函数以及变量名称,逐步加入print()语句,找到执行顺序,这也是一个比较耗时的过程,于是代码定位到这里,这里是保存影像的位置,其中images变量的大小最大只能为100,那么我只需要改变这个变量的大小不就完事儿了吗?!
于是跳转+分析+测试,来到了这里:
接着,终于找到了images的产地:
我心想着,我多append几次,说不定可以呢?
结果,数量是上去了,但是生成了4张一样的图!
这肯定不是我想要的,分析了一下,因为重复append的参数是相同的,而我们需要不同的随机初始化参数,不然生成重复的图就没意义了!
于是,又继续分析+测试+跳转,来到这里,经过反复测试这里添加代码可以解决问题:
简单总结就是,在\_naifu_speed\hydra_node\models.py中,上图的位置,添加如下代码:
if request.n_samples > 90:
request.n_samples += 900
print('{0} pictures will be generated!'.format(request.n_samples))
当然,这段代码是方便我自己使用的,你可以按照自己的想法修改,这段代码的意思是,当输入数量大于90的时候,输入数量会增加900,实测可以正常工作,突破了100的限制,并且没有生成重复的图像!文章来源:https://www.toymoban.com/news/detail-482818.html
以上肯定不是最完美的解决办法,但是目前对我来说,终于解决了问题!如果你有更好的方法,欢迎交流讨论!文章来源地址https://www.toymoban.com/news/detail-482818.html
到了这里,关于解决AI绘画naifu版突破批量100限制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!