這篇簡單介紹IPAdapter的應用。
IPAdapter的官方全稱是Text Compatible Image Prompt Adapter for Text-to-Image Diffusion Models,意思是在文生圖的過程中加入一個圖像提示詞的擴散模型去影響生成結果。
IPAdapter的節點使用跟LORA類似,只要加在模型-KSampler中間就可以使用,如下圖。
在ComfyUI中的節點只要從節點處拉出路徑, 就會自動跳出建議串接的節點,非常方便。
只要接好相關的節點並下載模型放到對應的資料夾,就可以順利使用。
在使用IPAdapter後可以省去大部分的文字提示詞,生成的圖像很大程度地採用來源圖像的構圖、元素跟風格。
下圖左邊是來源圖片,右邊是生成圖片,權重(weight)採用0.5,文字提示詞在圖片下方。
如果將權重設定為1,使用空白文字提示詞,生成的圖片比較如下。
此時圖片只受選用的大模型跟來源圖片影響。
以下簡單測試兩個IPAdapter的應用工作流。
下圖是IPA+ControlNet(Canny)的工作流截圖,圖中將IPA跟ControlNet拆成兩個群組方便理解跟調整參數。
下圖是在工作流中串接了ControlNet後的效果,輸入圖片分別是左上:ControlNet來源圖片;左下:IPA來源圖片;右上:經ControlNet Canny預處理結果;右下:混合生成結果。
可以看出生成的圖片受到左上圖片的構圖影響,風格受IPA來源圖片影響。
由於ControlNet的輸入是模型跟文字提示詞,輸出是Condition,所以可以採用並聯串接方式處理,不會與IPA產生衝突。
下圖的工作流是在AnimateDiff生成影片的工作流中加入了IPA,使用空白文字提示詞且沒有經過放大、修復等處理。
來源圖片:
生成動畫:
可以看出來來源圖片的構圖、元素等有出現在生成的動畫之中,因為使用空白提示詞的關係,生成的動畫只受到來源圖片及選用的模型影響。
IPAdapter對生成圖像的影響包含構圖、元素、人臉、風格...等,所以網路上可以找到很多工作流使用到IPAdapter的相關節點,甚至IPAdapter的作者也獨立出FaceID的節點專門用來進行換臉作業。
雖然IPAdapter非常方便好用,甚至連文字提示詞都不用寫就可以生成類似風格或人物的圖片,但是在控制強度上又過於強烈,所以在使用時需要特別注意權重(weight)的數值,如果想讓文字提示詞也發揮作用,勢必要降低權重。
實際上這跟初期使用LORA來影響生成圖像的內容一樣,只是LORA需要額外訓練,而且權重過高容易出現過度擬合而畫面崩壞的現象,多數LORA又只訓練了特定對象,如特定人物、服裝或風格,使用IPAdapter的好處是不需要額外訓練且生成的圖像沒有過擬合的現象。
光是不用訓練這點,IPAdapter的應用層面就比LORA廣泛許多。
而且新的基礎模型還在不斷地訓練跟推出中,每次都要重新訓練LORA所花的成本跟時間絕對是比使用IPAdapter或類似的功能要高的許多。