天天看點

Stable diffusion AI畫圖輔助腳本 Script 的使用(一)

作者:技術宅老張

一、Script 腳本簡單介紹

如果你在使用 Stable diffusion 進行畫圖時想要使用一些額外功能,但該功能目前又沒有對應的擴充可以實作,這時腳本(Script)就派上用場了。

如果你正好熟悉 Python,就可以使用 Python 編寫腳本來調用 Stable diffusion 提供的 API 以實作一些額外的擴充功能,當然如果你不會 Python 也沒關系,可以直接使用别人做好的腳本。

Script 腳本選項在文生圖或圖生圖的左下角可以找到,點開下拉清單可以看到目前已安裝的腳本。

Stable diffusion AI畫圖輔助腳本 Script 的使用(一)

腳本檔案一般存放在 Stable diffusion 主目錄下的 Scripts 檔案夾裡,如果是通過擴充安裝的腳本,腳本檔案則存放在主程式目錄下 extensions 檔案夾下對應的檔案夾裡,比如用于臉部修複的 Face editor 腳本。

Stable diffusion AI畫圖輔助腳本 Script 的使用(一)

二、Script 腳本安裝

腳本檔案是 py 格式的 Python 檔案,一般來說一個腳本對應一個檔案,如果想要安裝腳本,隻需要把對應的 Python 檔案放到 Scripts 檔案夾裡即可,安裝非常簡單,就下載下傳、複制、粘貼 3 個步驟。

目前大部分的 Script 腳本都可以在 AUTOMATIC1111 首頁的 Wiki 裡找到。

Stable diffusion AI畫圖輔助腳本 Script 的使用(一)

點開右側 Custom Scripts 自定義腳本選項,在頁面上找到需要的腳本點開連結,把 py 格式的 Python 檔案下載下傳下來放到 Scripts 檔案夾裡就可以使用,如果 Webui 正處于運作狀态,要重新開機 UI 界面才能看到新增加的腳本。

三、幾個實用 Script 腳本的介紹

現成的腳本有很多個,這裡介紹幾個比較實用的腳本,至于其他的腳本感興趣的話可以到官網進行檢視。

1、X/Y/Z plot

這應該是目前用得最多的一個腳本了,該腳本目前已經內建到 Stable diffusion Webui 裡面,不需要手動下載下傳安裝就可以直接使用。

這個腳本的主要功能是使用控制變量法來控制出圖的結果,直覺對比不同參數下出圖的效果,以獲得最佳的參數設定。嗯……文字解釋可能不太清楚,下面看一個直覺的例子。

Stable diffusion AI畫圖輔助腳本 Script 的使用(一)

這 3 張圖檔除了采樣方法不同之外,其他的參數都是一樣的。正向提示詞隻有一個 1girl,反向提示詞也隻有一個 nsfw,模型用的是 cityedgemix,其他參數全都預設。

正常情況下我們需要手動改變采樣方法分 3 次來生成 3 張不同的圖檔進行對比,這樣的操作非常繁瑣,是以就有大神制作出 X/Y/Z plot 腳本來解決這個問題。

在 Script 下拉清單裡選擇 X/Y/Z plot,下方就會出現很多個輸入框,大緻可以分成兩部分,上面一部分是用來控制出圖的參數,下面一部分是用來設定圖表的參數。

Stable diffusion AI畫圖輔助腳本 Script 的使用(一)

X/Y/Z type 可以了解成三維坐标系,每一個坐标都可以設定不同的參數類型,比如前面的示例就是使用下面設定來控制出圖的。

Stable diffusion AI畫圖輔助腳本 Script 的使用(一)

設定好參數直接點選 Generate 生成按鈕,腳本就會按照設定的參數來控制 Stable diffusion 的出圖,并将生成的圖檔組合成一個圖表的形式,友善對比觀察。

至于 X/Y/Z type 都有哪些選項可以選擇,大家可以自行點開檢視,這裡主要介紹一下 values 值的填寫。

values 可填寫的值大緻可以分成三種類型:枚舉類型(比如采樣名稱)、數值類型(比如采樣步數)、文本類型(比如提示詞)。

在舊版本裡面,采樣名稱、模型名稱也是屬于文本類型的,需要手動填寫,但版本更新了之後,這些可枚舉的類型都改成了标簽的形式,具體可以看上一篇新版本介紹的文章,這裡就不再重複。

a、數值類型

在上面的基礎上,增加 Y type,參數設定為 Steps 采樣步數,values 填寫想要的采樣步數,如: 20,40,60,采樣步數隻能填寫數字,不能填寫其他類型,不然會出錯。跟提示詞一樣,每個數字之間也用英文半形逗號隔開,如下圖。

Stable diffusion AI畫圖輔助腳本 Script 的使用(一)

設定好後直接點選 Generate 按鈕出圖,就可以得到如下具有橫坐标以及縱坐标的二維對比圖表,橫坐标是采樣方法,縱坐标是采樣步數。

Stable diffusion AI畫圖輔助腳本 Script 的使用(一)

以上采樣步數的 values,除了可以填寫指定的步數,還可以以區間的形式填寫,如:20-25、20-40(+5)、20-40[5],第一個的意思是在這個區間内,每一步都會執行一次。後面加小括号意思是在這個區間内每隔 5 步執行一次,加中括号的意思是把這個區間内的步數平均分成 5 份來執行。

Stable diffusion AI畫圖輔助腳本 Script 的使用(一)

還可以直接填寫多種組合,隻要使用英文半形逗號隔開就行,具體的效果這裡就不再展示出來了,大家可以自己動手試一下,隻有實際操作過才會印象深刻。

b、文本類型

文本類型就以提示詞為例,給正向提示詞加一個 black hair ,其他參數同樣保持不變。

Stable diffusion AI畫圖輔助腳本 Script 的使用(一)

Script 腳本同樣使用上面的參數,在前面的基礎上加上 Z type,參數設定為 Prompt S/R,這個參數可以用來替換提示詞,以觀察不同提示詞下的出圖效果,values 值則填寫 black hair,yellow hair。

注意這裡填寫的提示詞,第一個提示詞在正向提示詞裡面必須存在,不然會比對不到。第一個是用來比對的,後面再跟其他提示詞就可以,這裡以黑色頭發跟黃色頭發為例。

Stable diffusion AI畫圖輔助腳本 Script 的使用(一)

參數填寫完成後,直接點選 Generate 按鈕出圖,就可以得到如下具有 3 個坐标軸的圖表,看起來很直覺,就不再解釋了。

Stable diffusion AI畫圖輔助腳本 Script 的使用(一)

再往下的選項就是關于圖表的一些設定,Draw legend 可以設定最終的圖表是否顯示參數名稱;Include Sub Images 是控制最終生成圖表的時候是否把圖表裡面的圖像單獨生成;Grid margins(px) 是用來控制圖表裡面每張圖檔的邊距;Keep -1 for seeds 意思是對于圖表裡的每一張圖檔是否都采用随機種子;Include Sub Grids 與 Include Sub Images 一樣,是用來控制最終生成的圖表時是否把圖表裡的圖表單獨生成,主要用在三維圖表裡面。

下圖是部分設定以及效果。

Stable diffusion AI畫圖輔助腳本 Script 的使用(一)

最後面的三個按鈕是用來交換坐标軸的,Swap X/Y axes 意思就是将圖表的 XY 軸進行交換,很簡單。

寫到這裡,發現因為圖檔太多的原因篇幅又太長了,是以還是分兩部分吧,下一篇介紹 Prompt matrix 提示詞矩陣以及 Ultimate SD Upscale 終極放大這兩個腳本,同時再簡單介紹一下如何編寫自己的腳本。