這一篇要測試一下Video Linear CFG Guidance這個節點,在網路上很多的教學影片跟網友分享的工作流中會看到這個節點,據說這個節點不只可以用在生成影片的工作流中,也可以使用在一般的生成圖片工作流中。
如同大多數的節點一樣,我們不知道這個節點的實際運作原理是什麼,只知道在工作流中加入這個節點後生成的圖片會比較好看,但是實際使用時卻會發現一個沒搞好生成的圖片反而崩壞。
下圖是為了測試而搭建的工作流,在這張圖中尚未接上VideoLinearCFGGuidance。
這張圖中採用的大模型是SDVN7-NijiStyleXL,可以在CIVITAI網站搜尋並下載,使用的文字提示詞是模型提供者的範例圖片調整而來,為了方便修改將不同的提示詞分行顯示。
其中KSampler中的CFG參數透過右鍵改成輸入節點,另外串接了Primitive Float節點,方便跟VideoLinearCFGGuidance這個節點的min_cfg做對比。
下圖另外複製了一份KSampler跟VAE decode,跟原本的KSampler串接方式一樣,只是在model輸入時先串接了VideoLinearCFGGuidance。
在這個工作流中串接了Batch Image是為了將兩張圖片併排比較,執行後生成的圖片如下圖。
上圖左邊是串接VideoLinearCFGGuidance前,右邊是串接後,可以明顯看出兩張圖根本是不一樣的圖片,而且串接後畫面品質變差很多。
接下來測試將min_cfg值改成5,縮小差距後生成的圖片如下圖。
結果雖然比前一個好,但是構圖還是產生了不一樣的結果。
再來將min_cfg值改成6,生成的圖片如下圖。
仔細看人物的臉型有些許不同,但是構圖已經非常相近,就看喜歡那一張。
下面再來測試低CFG值的效果。
下圖分別是CFG值3跟使用VideoLinearCFGGuidance設定min_cfg值為2的生成圖片比對。
因為CFG值改變時構圖會完全不同,所以這是重新抽卡後得到想要的構圖後再做的測試。
在測試的過程中發現圖片的構圖受CFG值影響蠻大,而套用VideoLinearCFGGuidance後生成的圖像感覺是混合了不同CFG值的圖片的構圖、色調、線條...等。
為了更好的理解這個節點的效果,我將工作流修改如下圖。
可以看到我用了3組KSampler,由左至右分別是CFG=3,CFG=2~3,CFG=2,生成的圖片如下圖。
可以觀察到中間CFG=2~3生成的圖片其實非常接近CFG=2的圖片。
之後更改了數值將CFG的最大值改成7,發現是一樣的結果,所以在生成單張圖片的時候套用這個節點是沒有用處的。
所以VideoLinearCFGGuidance的正確用法為何?
我修正了原本的工作流為下圖。
這個工作流中只用了一組KSampler,但是Empty Latent Image的batch_size改成4,表示執行一次會生成四張圖片。
而執行後得到的圖片如下圖。
可以看出這個工作流會生成4張不同的圖片,這結果顯示了VideoLinearCFGGuidance的作用是在一次生成多個圖片時改變CFG值,因此可以確定只能使用在生成影片或是測試不同CFG值生成圖片的工作流中。
VideoLinearCFGGuidance這個節點在生成單張圖片時是會直接使用min_cfg值生成圖片,因此不需要在一般的圖片生成工作流中使用這個節點。
另外我用SVD的官方工作流測試生成動畫時使用與不使用的效果,結果發現使用了VideoLinearCFGGuidance後生成的影片只是消除了初始幀數跟後續幀數間的不自然過度關係。
因為SVD的官方工作流一開始輸入的圖片是一張高畫質的風景照片,所以在經過SVD模型處理時初始幀仍然是高畫質的圖片,但後續圖片因為加入了動態而模糊,所以不使用VideoLinearCFGGuidance時會有一個不自然的變化。
在之後測試生成影片的工作流時,會再測試使用這個節點與否的效果。