這個(gè)問(wèn)題困擾了我很久,搜遍全網(wǎng)無(wú)果,詢問(wèn)大佬無(wú)果,我自己摸索的解決方法在本文的最后,如果你沒興趣看問(wèn)題解決的過(guò)程,可以直接看文章最后面的解決辦法即可,如果你有興趣看看,請(qǐng)聽我娓娓道來(lái)。
AI繪畫目前主要分為webui版本和naifu版本,webui版本功能強(qiáng)大,naifu版本使用簡(jiǎn)單,雖然他們使用相同的模型,但是同樣的關(guān)鍵詞和設(shè)置,產(chǎn)出的圖像差別不小,我個(gè)人更喜歡naifu版本的出圖,尤其是在某些特定詞匯下,我發(fā)現(xiàn)naifu版本的出圖完爆webui。網(wǎng)上搜索了一下,說(shuō)是webui設(shè)置問(wèn)題,但是即便按照教程設(shè)置,webui在特定詞匯下的表現(xiàn)仍然不盡人意,想來(lái)想去我還是決定使用naifu版本進(jìn)行批量出圖。
但是naifu版本存在一個(gè)不足就是,默認(rèn)最多一次出圖100張,而且不好修改。
先來(lái)看一下naifu的界面:
?
默認(rèn)naifu界面一次性最多出圖100張,這個(gè)問(wèn)題在最初的版本就存在,當(dāng)時(shí)我為了多出圖,于是修改index.html源碼(英文版),找到“Number of Images:”下方的“input type="range" min="1" max="100" step="1"”中的max值為999,控制滑塊最大值,成功解決問(wèn)題,然而目前新版本的naifu,使用這個(gè)方法失效了。
中文版的修改辦法,修改_naifu_speed\static\_next\static\chunks\pages\index-9063cb5cbe951293.js中的如下圖所示的位置,可以搜索“數(shù)量”這兩個(gè)字。
?實(shí)測(cè),即時(shí)更改了滑塊的最大值,并且滑到最右側(cè),如下圖所示,一次仍然只能產(chǎn)出100張圖。
嘗試很久沒有結(jié)果,于是我決定在naifu整個(gè)網(wǎng)頁(yè)搜索,因?yàn)榭梢猿醪脚袛噙@個(gè)指令是naifu發(fā)出的,跟其他模型什么的應(yīng)該沒關(guān)系,結(jié)合啟動(dòng)bat的內(nèi)容,更加堅(jiān)定了我的這一個(gè)想法。
于是我在整個(gè)naifu目錄搜索100這個(gè)數(shù)值,得到的結(jié)果如下:
于是,略過(guò)明顯不是的結(jié)果,然后逐個(gè)查看,檢查,測(cè)試,可惜的是結(jié)果仍然一無(wú)所獲!
尤其是發(fā)現(xiàn)\_naifu_speed\hydra_node\sanitize.py中下圖這個(gè)值的時(shí)候,當(dāng)時(shí)真的很高興,以為終于找到答案了。
?
?然而,經(jīng)過(guò)修改實(shí)測(cè),這并不是想要的值,無(wú)效!
這下子這個(gè)問(wèn)題陷入了無(wú)解的境地,但是我不愿意放棄呀!
于是我決定親自調(diào)試,由于是python代碼,于是我用了pycharm,打開_naifu_speed目錄,定位到main.py文件。
因?yàn)榄h(huán)境配置問(wèn)題,只能結(jié)合函數(shù)以及變量名稱,逐步加入print()語(yǔ)句,找到執(zhí)行順序,這也是一個(gè)比較耗時(shí)的過(guò)程,于是代碼定位到這里,這里是保存影像的位置,其中images變量的大小最大只能為100,那么我只需要改變這個(gè)變量的大小不就完事兒了嗎?!
?于是跳轉(zhuǎn)+分析+測(cè)試,來(lái)到了這里:
接著,終于找到了images的產(chǎn)地:
我心想著,我多append幾次,說(shuō)不定可以呢?
結(jié)果,數(shù)量是上去了,但是生成了4張一樣的圖!
這肯定不是我想要的,分析了一下,因?yàn)橹貜?fù)append的參數(shù)是相同的,而我們需要不同的隨機(jī)初始化參數(shù),不然生成重復(fù)的圖就沒意義了!
于是,又繼續(xù)分析+測(cè)試+跳轉(zhuǎn),來(lái)到這里,經(jīng)過(guò)反復(fù)測(cè)試這里添加代碼可以解決問(wèn)題:
?簡(jiǎn)單總結(jié)就是,在\_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))
當(dāng)然,這段代碼是方便我自己使用的,你可以按照自己的想法修改,這段代碼的意思是,當(dāng)輸入數(shù)量大于90的時(shí)候,輸入數(shù)量會(huì)增加900,實(shí)測(cè)可以正常工作,突破了100的限制,并且沒有生成重復(fù)的圖像!文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-482818.html
以上肯定不是最完美的解決辦法,但是目前對(duì)我來(lái)說(shuō),終于解決了問(wèn)題!如果你有更好的方法,歡迎交流討論!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-482818.html
到了這里,關(guān)于解決AI繪畫naifu版突破批量100限制的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!