2024-03-01|閱讀時間 ‧ 約 24 分鐘

ComfyUI 研究 - VideoLinearCFGGuidance

前言

這一篇要測試一下Video Linear CFG Guidance這個節點,在網路上很多的教學影片跟網友分享的工作流中會看到這個節點,據說這個節點不只可以用在生成影片的工作流中,也可以使用在一般的生成圖片工作流中。

raw-image


如同大多數的節點一樣,我們不知道這個節點的實際運作原理是什麼,只知道在工作流中加入這個節點後生成的圖片會比較好看,但是實際使用時卻會發現一個沒搞好生成的圖片反而崩壞。


圖片生成測試

1.CFG值=7

下圖是為了測試而搭建的工作流,在這張圖中尚未接上VideoLinearCFGGuidance。


這張圖中採用的大模型是SDVN7-NijiStyleXL,可以在CIVITAI網站搜尋並下載,使用的文字提示詞是模型提供者的範例圖片調整而來,為了方便修改將不同的提示詞分行顯示。

其中KSampler中的CFG參數透過右鍵改成輸入節點,另外串接了Primitive Float節點,方便跟VideoLinearCFGGuidance這個節點的min_cfg做對比。


2.CFG 1~7

下圖另外複製了一份KSampler跟VAE decode,跟原本的KSampler串接方式一樣,只是在model輸入時先串接了VideoLinearCFGGuidance。


在這個工作流中串接了Batch Image是為了將兩張圖片併排比較,執行後生成的圖片如下圖。


上圖左邊是串接VideoLinearCFGGuidance前,右邊是串接後,可以明顯看出兩張圖根本是不一樣的圖片,而且串接後畫面品質變差很多。


接下來測試將min_cfg值改成5,縮小差距後生成的圖片如下圖。

結果雖然比前一個好,但是構圖還是產生了不一樣的結果。

再來將min_cfg值改成6,生成的圖片如下圖。

仔細看人物的臉型有些許不同,但是構圖已經非常相近,就看喜歡那一張。


3.CFG 2~3

下面再來測試低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時會有一個不自然的變化。

在之後測試生成影片的工作流時,會再測試使用這個節點與否的效果。

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.