歡迎回來 ComfyUI 高級教學系列第一期的第二章節,我們繼續來看看 IP-Adapter
,圖像提示適配器。
今天會講 IP-Adapter 的工作流程(workflow)架設,如果你還不知道這是什麼?或者你是還沒有安裝成功的朋友,可以先參考一下第一章節的影片,基本上涵蓋了這個擴展所有的安裝方式。裝好之後再回來。
如果你喜歡我的內容可以在 YT 幫我點讚訂閱開啟小鈴鐺,或是加入我的文章沙龍!
你的支持就是我的更新動力。🫶
我們先來假設一下,假設 AI
是一個有近視眼的接案畫家,而你是它的甲方,平常我們使用的大模型,是它曾經學習過的記憶,也可以說是它具備的技法和基本功。
而 Prompt 就是你口頭給它提出的要求。
當你只使用 prompt
的時候,如果它沒有學過你要求的內容,那它當然就聽不懂你在說甚麼,只能硬著頭皮畫完,大概也不會是你要的東西; 如果它學過,那麼它就會按照,它對這個內容的理解來畫完。
這就是t2i。
而 i2i
就像是它把眼鏡摘掉之後,看著你給它的參考圖片來打個底色,拿掉圖片之後,再戴上眼鏡,根據你的需求繼續畫到完。
有近視的朋友應該能理解我的意思,起碼我自己是用穿脫眼鏡來理解 i2i 的 denoise。
使用 controlnet
就……像是你給它的,已經是完成了構圖的底稿,要它根據你的口頭需求,把這個底稿墊在下面繼續畫到完。
根據這個底稿的框架限制,就會比較強硬一點。
而 lora
可以算是參考畫冊,交給這個畫家,讓它現場翻閱之後,一邊參考一邊畫,這可以提供它更具體的風格要求,或是一個具體的角色,一個具體的物品。
如果它不曾學過,那麼它就可以透過這本參考書現學現賣,如果它曾經學過,那麼這本參考書,除了可以讓它更好地確定你的要求是甚麼,也可以讓它更好地回憶起某個它曾經學過,但並沒有那麼熟悉的內容。
最後,IP-Adapter
就是當你只給它一張圖片,要求它看著這張圖片,盡可能去模仿,去畫得像。你的口頭要求,和這張圖片上的內容,都一樣重要。 就像肖像畫,畫家會看著臉或是照片,來畫得像這個人,同時也保持著一部分他自己的風格。
這就是我們這一期在介紹的神奇工具,IP-Adapter。
🎉 GoingBus 串流媒體合租平台 🎉
省錢看片!和世界各地的用戶一起分攤訂閱費,用最低價格享受 Netflix、Disney+ 等熱門串流服務,還有 GPT-4!立即訂閱 GoingBus,輕鬆合租,一起省錢吧!
✨首購輸入優惠碼:windbro,再享九折優惠!✨
GoingBus首頁:https://goingbus.com?s=Huk4FaoU
那麼我們就來看一下 workflow 要怎麼排。
首先,老樣子使用 load default
叫出一個基礎工作流程。
接下來你可以透過兩種方式,來添加 IP-Adapter 的方塊:
一個是使用搜尋框輸入 ipadapter;
另一個方式是空白處右鍵,add node 然後往下找到 ipadapter 分類。
想搭建最簡易的 IPAdapter workflow,我們要添加進這個畫面的,總共只有3
個方塊。
IPAdapter
或是 IPAdapter Advanced
。IPAdapter Unified Loader
,如果你今天是要讓 AI 特別針對長相來處理的話,就選 IPAdapter Unified Loader FaceID
,這個我們後面也會來跑一下,給各位看看。Load image
方塊。加完之後,把線連一連就搞定了。
現在的 ipadapter plus 已經把參數設置做得比以前更簡單了,我們把最重要的幾個看一下吧。
權重weight
是指作為圖像提示的 ipadapter,將會介入生成的權重,它跟 Ksampler 的 CFG 之間有著關鍵的互相影響問題。
ipadapter 的權重越重,圖像提示對生成的干涉就越強,這時候如果你把 CFG 也設很高,就比較容易產生過擬合。
簡單來說,就是文字和圖像的提示,兩邊同時在搶奪生成控制權的感覺。
當然這還是要取決於,你想要的畫面,以及模型和 prompt 和輸入圖像之間的適配程度,也許測試後,你會覺得兩邊都設高的結果才是你喜歡的,也說不定。
那這個權重官方推薦的數值是0.8
。
如果設置為 1 的情況,CFG 就不建議超過7
。
如果你使用的大模型是 XL 系的,那麼 CFG 不建議超過5
。
下面的開始跟結束 start_at/end_at
,之前也有看過對吧,它就是讓你設定 ipadapter,在整個生成的降噪過程中,是否要全程參與干涉,所以這兩個數值能設定的參數,都是在 0-1
之間。
最後一個,是影響它的分離交叉注意力,是要更注重於圖像提示的內容,還是文字提示的內容。
接下來我們看 unified loader
,這裡是讓你選擇,要使用前面下載的哪一個 ipadapter 提取模型,分別提供了從輕到重,六種不同的圖像特徵提取強度,越強力的提取模型,能夠體現出的風格就越明顯。
但是越明顯不一定就越好,所以還是要根據你期望得到的結果來作調整。
要注意一下,其中 light
跟 full face
這兩個選項,只能應用在 SD 1.5 系的模型上。
最後就要來上傳圖片,作為圖像提示。
首先你需要知道一個重要的觀念,ipadapter 處理圖像提示的方式是正方形,無論你輸入的圖片是甚麼尺寸,它都會自動從最上方來抓取 1:1 的正方形
內容,尺寸最準確的話應該要裁切到 224x224
,這是 clip vision 所能處理的大小。
所以,比較建議你要麼先在繪圖軟體,或影像編輯軟體中,裁切好你要使用的圖片,要麼就添加一個用來裁切的預處理方塊。
當然你也可以擺爛讓它自己隨便切。🤣
裁切圖片的方塊有兩種。
在搜尋框打上 crop,選擇 ImageCrop
,這個方塊是 comfy 自帶的,可以設定長寬和精準的裁切起始點座標,把裁切完後的圖片輸入到 ipadapter 裡面,然後多拉一個預覽方塊出來,你就可以開始調整裁切後要保留的內容了。
不過這個東西它是不能調整大小(圖片尺寸)的,有時候你的圖片可能本身就很大,直接切成可能包含的有效內容太少。
這時候你可以選擇在外部先縮放好圖片大小,或是添加一個 resize 方塊,來重新調整圖片尺寸。
懶得手動計算的朋友,可以把模式調整成 crop and resize
。
另一個方塊叫做 Prep Image For ClipVision
,這是 ipadapter plus 內包含的功能,能直接用選單來指定裁切的起始位置,它會自動等比例把圖片縮放並裁切到 224x224,可以調整銳利化程度,讓圖像中的特徵能更好地被 ipadapter 抓取。
或者,你也可以使用 windows 自帶的圖片預覽工具來做預先處理。
只要能讓你最後輸入進去的東西,上面確實有你想要被提取的內容,就好了,方法都無所謂。
上傳好圖片之後,我們就可以來調整基礎工作流程裡面的其他內容,在測試的階段,我會先固定 seed,採樣調度也會選擇最基本的。把文字提示的部分先清空,我們跑幾張圖來看看。
這樣就完成了基礎的 IPAdapter workflow。
著重於提取臉部特徵的 FaceID 工作流程,其實跟剛剛那個基礎的差不多。
懶惰一點的朋友可以直接在 Unified Loader 選擇 plus face
or full face
。
那勤快一點的朋友,你可以選擇把 Unified Loader 換成 Unified Loader FaceID
。 然後把這個 IPAdapter 方塊也一起換掉,換成 IPAdapter FaceID
。
如果你想嘗試看看後者,我們一樣從 default 工作流程開始,叫出 IPAdapter FaceID 方塊,然後 ipadapter 小點這邊往外拉,新增 Unified Loader FaceID。
其他部分的接法跟前面都一樣。
圖像的反向提示 (image_negative) 這裡,不一定需要輸入,根據你的需求來選擇要不要添加就好。
一個不太一樣的地方是,這個 clip_vision,可以拉一個 Load CLIP Vision
方塊,手動來選擇 CLIP 版本,基本上維持 ViT-H 就好,效果不好的時候再切換到 ViT-G 試試看。
當然,它也是屬於一個可添加可不添加的方塊。
臉部提取的預設總共有四種,但我們只會用到三種。
分別是第一個 faceID 基礎版本、第三個 plus V2、和最後一個 portrait (style transfer),那個 SD 1.5 only 的版本其實不太有使用的必要,如果你真的想試試看,那就需要回到 ipadapter plus 的 github,去把寫著棄用 (Deprecated) 的模型和 lora 載下來,才可以使用這個模式。
我忘記我到底有沒有把這個,放在上次提供的模型包裡面了,所以也許,如果你是抓我打包的模型,可能不需要再另外下載,嗎?🙂
那它一樣在輸入圖片的部分,只能處理正方形的圖片,記得先做好裁切。
FaceID 吃的是臉型跟五官,上至髮際線,下至下頷線,不吃髮型,但偶爾會因為髮際線吃到一點頭髮顏色。
建議使用正面、平光、沒有臉部裝飾品、沒有瀏海遮蓋的圖片來做為參考。整個圖片最好就只有臉,或者頭部,不要包含身體,因為並沒有什麼屁用。🙏
說完了基礎工作流程,和臉部參考工作流程,我們來多講一個簡單的應用方式——讓人物穿上你指定的服裝。
我這邊提供的方法,基於一個前提:
不額外安裝其他的擴展,也不需要你做外部處理。
像是用繪圖軟體畫遮罩,或是提取色碼來生成遮罩。
以基礎工作流程加上 IPAdapter,就能搭建出來。
那架構簡單,相對的控制精準程度就會比較低,如果你想要非常漂亮、非常精準地呈現換裝結果——🤣歡迎訂閱我的頻道或沙龍,之後我們會來研究一下。
在開始之前你需要先準備幾張圖片:
衣服的圖片
,一件或兩件。一個人物的全身圖
。那我們一樣從 default 開始。
叫出兩組 unified loader 和 ipadapter,這邊我們選擇進階版的 ipadapter advanced
,因為等一下需要它的控制項。
然後從 image 小點拉出 load image 方塊,從這個 attn_mask 小點也拉個 load image 方塊。
現在總共會有四個輸入圖片的地方,這四個要放的東西都不太一樣。
全部叫好之後,把 ipadapter 之間接一下,一路接去 Ksampler。
接下來,你可以先上傳圖片。
一組方塊代表上衣區塊,所以在這裡輸入上衣的圖片;另一組代表的就是下半身。
下面兩個 attn_mask 上傳同一張全身圖,然後我們來畫一下遮罩。
在圖片上按滑鼠右鍵,找到 Open in MaskEditor
點開,這是 comfy 自己的超陽春遮罩繪製工具。
Thickness 是筆刷大小,Opacity 是透明度,調整的話你可以比較清楚看到自己到底遮住哪裡了,啊這個 Color 吼,它只有三個不同的模式,你選一個看得順眼的就好,遮罩的顏色並不重要,重要的只有區域。
比較需要注意的是,它沒有橡皮擦,也不能 ctrl+z,畫歪了你就 clear 敲下去重畫一遍吧。
我們現在使用的是 t2i 的遮罩,不是 i2i 的 inpaint,畫這個的目的是告訴 AI,告訴你的模型,說我提供的這個服裝參考圖,只要作用在這個範圍以內。
它也同時會讓 AI 理解上下半身的位置,所以前面才說,這個全身圖只是墊在底下,用來參考相對位置的。
你在畫的時候,更需要著重的是你的服裝參考圖本身,是甚麼樣的服裝,這些服裝是甚麼形狀。
畫完之後,點 save to node
。
然後,去把下半身那張也畫了。
你可以看一下我這邊的畫面,全身圖上面的長褲,完全不用管它,我就是把裙子的形狀,糊在它應該大概要出現的位置上。這樣就好,不需要畫得很細緻。
接下來我們來調整參數。
兩個 unified loader 我們都選 PLUS (high strength)
這個 preset。當然你可以試試看調成別的,就,取決於你想要什麼效果,但我建議就用這個。
然後呢,在 ipadapter advanced 裡面,你的權重,注意,權重都最好,超過 1.5
。你的參考服裝細節越複雜,建議權重就設越高一點點,如果是很簡單很常見的服裝,可以設低一點,AI 應該也能夠理解。
像我這邊準備的這個裙子,樣子比較特別,它不是一個四方形的皮裙,所以你會看到我遮罩畫的也是大概這樣的形狀,然後在權重的部分設得稍微高一點。
weight_type 選擇 ease in
,然後這個參考作用結束的地方 end_at,設在 0.8
左右,根據結果你可以做微調。
那剩下的其他參數,你可以調整來試試看.但也可以不用去動。
最後我們看一下熟悉的部分,Ksampler 的 seed 為了控制變量,我們一樣使用 fix seed,數字隨便給,你開心打甚麼都行。
步數可以設低,因為還在調整的階段嘛,不需要說每次都等它 run 個 2-30 步來浪費時間。
cfg 請設置在 2
左右,給 ipadapter 更多控制畫面的發揮空間。
然後把你的 checkpoint 啊,調度採樣器啊,都選好了之後,稍微寫一下你的提示詞,可以不用寫得很詳細喔,我這邊只寫了全身、金髮、襯衫、皮裙。
搞定,可以來跑看看了。
你可以在後面,像我們之前講過的那樣,去接 upscale,或是接 controlnet,來得到更好的結果。
也可以在遮罩處理的部分去作一些更進階的處理。
最後,如果你還不太會構思自己的工作流程,IP-Adapter 的作者在這個擴展裡面,也附上了一些不同的應用範例,你可以從 comfy 的 custom_nodes 資料夾裡,找到 ipadapter plus 的資料夾,然後有一個 examples 資料夾,裡面就是開發者提供的範例工作流程。
(根據你comfy安裝的位置哈....)
C:\ComfyUI\custom_nodes\ComfyUI_IPAdapter_plus\examples
我自己用起來,是感覺它在臉部提取上,比以前那些換臉的 roop 或 picsi,還要好用非常多,對臉部特徵提取的能力很強,生成出來的結果也沒有之前看起來那麼僵硬。
不過還是那個老問題,就是西方人比亞洲人的效果會更好一些。這是因為他最底層的那個模型 insightface 在訓練的時候,白人的臉部樣本數量更多,這個真的是沒辦法。
它對藝術風格的提取成果也很不錯,就是平面的二次元內容,不像之前的 roop 是不適合應用在寫實風格以外的地方。
終於可以靠它來實現人物創作時的特徵統一,在你想要構思原創角色的時候,應該可以幫上很多忙。
好的,那麼今天沒有小技巧時間。🤣
希望這個教學有幫助到你,有任何問題都可以在影片或文章下方留言,也歡迎跟我討論你對 IP-Adapter 的使用心得,把文章分享給你對 AI 算圖感興趣的朋友!
感謝各位收看,掰掰。