最近 AI 界開始流行一個新的代名詞:AIGC(Artificial Intelligence Generated Content),中文譯為「生成式 AI」,用來和以前一般概念的 AI 作區分。 AI 發展的速度可說是「一日千里」,AIGC 應用與議題也呈現爆炸式成長。去年二月時寫了一篇文章簡單介紹 Stable Deffusion 的 AI 繪圖功能,當時 WebUI 的某些項目仍不夠穩定,且時不時又跑出一堆新的插件和技術,覺得這發展的速度實在是快到難以跟上,所以就乾脆棄坑不追了,打算等著過一段時間、哪些功能成為主流了之後再來接觸學習。如今一年過去了,這一年的 AIGC 服務比起一年前更加百花齊放,使用上也更加方便、使用門檻也更低,是時候重新接觸這個議題了。
前幾天清明連假的時候,和家人到台南安定的花旗木步道景點走春,旁邊有一塊向日葵花田,花田的主人很貼心的整理出一小塊地,放上紅椅,旁邊一張手繪看板寫著「歡迎拍照打卡」。或許是花況過了高峰,景點的遊客已經不多,向日葵田好像也沒人來拍照打卡。經過的時候,簡單拍了一下花田的「妹子走光圖」:花田沒有人來打卡的樣子。
以前常跑外拍場子的時代,常常遇到類似的情況,例如看到覺得很不錯的景點,腦袋裡就會不自覺開始盤點起口袋名單,哪個漂亮妹紙可以做怎樣的打扮,放在眼前的畫面中襬起什麼姿勢,怎麼呈現之類的想法。雖然想法單純,但真要實現的話可就麻煩許多,從頭到尾要考慮的東西實在是太多太多了,例如時間、天氣、交通、攝影器材、服裝打扮、題材等,以及衍生出來的行程規劃、經費、社交培養等等,畢竟人是複雜的動物,帶妹紙來拍照,除了計畫,其他方方面面的人情世故也要考慮,任何一項出現變數,就會導致無法實現,難以出圖的心理壓力。如今藉助 AIGC 的方式,或許就有機會繞過這一大堆麻煩瑣碎的過程。
於是我又花了些時間學習這一年來新發表的 AI 繪圖工具,希望能找出新的流程方法,來實現當時腦袋中浮現的畫面跟想法,將「妹子走光」改編成「妹子打卡拍照」的畫面。
準備工作:
- 搭載 RTX 3060 12G 、Windows 10/11 64 位元的黑蘋果三號電腦
- 具備圖層編修功能的繪圖軟體(例如 PhotoShop)。
- 可上網 Internet 的環境
- AIGC 生圖工具:這次選擇使用 Fooocus ,
Fooocus 作者是張呂敏,也是大名鼎鼎的 ControlNet 發明者,據說在蘇州大學期間從大一開始就發表過 10 篇 AI 論文,目前在美國史丹佛大學攻博士,堪稱中國牛人。Fooocus 與 AUTOMATIC1111 版 WebUI 相比的明顯優勢如下:
- 安裝容易,操作介面簡單,上手低難度。
- 僅對應 SDXL 模型,搭配基於 GPT2 基礎的 Fooocus V2 風格參數,僅需少量 Prompt 題詞就能產出高品質圖片。
- Inpaint / Outpaint 功能強大又容易使用,是目前免費開源中最強大的工具,沒有之一。
- 硬體需求門檻比 AUTO1111 版 WebUI 低,出圖速度更快。
Fooocus 簡介
(1) 安裝 Fooocus
安裝方法極為簡單。官方建議硬碟空間最好要保留 40GB 以上的空間(至少要 15GB )。下載 Fooocus_win64_2-1-831.7z 後解壓縮,執行解壓目錄下的 run.bat 即可。第一次執行 run.bat 會自動下載所需要的 Python 和相關模型,視網路速度決定安裝所需時間。 運作時會開啟 Console 視窗,不要關閉。一切自動完成就緒之後,主介面會自動開啟
起始介面就一個 Prompt 提詞框,一個 Generate 生成按鈕,一個出圖結果區,兩個勾選項目。其實出圖的最基本需求,就只需 Prompt、按鈕、結果區,這三個而已,比起 WebUI 介面那玲瑯滿目的參數,Fooocus 對新手相當友善。然而這不代表 Fooocus 功能陽春,它把 WebUI 的重要參數功能,藉由介面設計做了更合理的安排。
勾選兩個欄位,則會顯示更多的功能項目。以下只會介紹本文提到「美女走光」改為「美女拍照打卡」可能會用到的相關功能,其他功能就不一一列舉。
作圖構思
原始底圖「美女走光圖」圖檔尺寸為 4032x3024,預計只在中央部分加入美女妹紙,考量到使用 SDXL 最佳化模型為 1024x1024,所以將原始底圖縮小為 2048x1536。
椅子的方向略朝右方,下方有置腳的白鐵橫桿,預想人物是坐姿。
一開始我想到的是,使用支援 SD WebUI 最近發表的新外掛 LayerDiffuse,它號稱可以用一張背景圖來產生對應的前景物,我依照官網範例,AI 的確成功生成一個老人坐在官網提供的長椅底圖上,看起來毫無違和。不過換成自己的花田紅椅之後效果非常不理想,插件的模型不認識中央的椅子,生成的妹紙對沿著紅椅子做出現各種奇形怪狀的詭異姿勢、肢體扭曲變形,比例也不對,所以就放棄了。
後來重新思考了一下做法,決定改用 Fooocus 來生成,人物姿勢的部分則是上 posemaniacs.com 挑選了 Pose 0000852 這張,調整好角度之後,直接螢幕截圖,再用繪圖軟體(PhotoShop)順時針稍微轉個角度,讓人物的右腳尖再往下一點,並改成 1024x1024 大小。
接著是 Fooocus 瘋狂抽卡的環節了。
模型的部分採用知名的 SDXL Lighting 模型 dreamshaperXL_lightningDPMSDE,好處是 4 步就可以產生品質極佳的 1024 x 1024 圖,以 RTX 3060 來說只要 8 秒就可出圖。下載的模型可放在 Fooocus 目錄下的 models\checkpoints,Lora 放在 Fooocus 目錄下的 models\loras 。不過 SDXL Lihjting 模型有專屬的最佳化設定,如何設定 CFG / Step / Sampler 等項目,後面會提到。
提詞的部分如下:
Soft light, a Japanese girl with long straight hair, smiling, looking at the viewer, big breasts, white spaghetti strap casual clothes, blue denim shorts, white cloth shoes, all white background
大致上為長直髮的日本女孩,微笑,看著鏡頭,白色細肩帶,藍色牛仔短褲,白色布鞋,全白色的背景。
先用提詞產生妹子的概略風格,可發現 SDXL 對 Prompt 提詞的理解比 SD1.5 好很多。跑十幾張沒有甚麼大問題,最多就手指崩壞,成功率很高,從中選一張自己喜歡的。
接著是重點了。勾選 Input Image ,在第二個 Image Prompt 頁籤中,勾選最下方的 Advanced 就會再開啟設定項目。
姿勢圖設定為 PyraCanny (邊緣檢測),女孩圖設定為 ImagePrompt(圖像提示),意思是參考 PyraCanny 圖像的姿勢,並參考 ImagePrompt 圖片中的元素(妹子跟服裝)。參數的部分,Stop At 的數字為 0~1 之間,意思是產圖過程跑到多少進度時停止參考(0 開始,1 完成),Weight 是參考所佔的權重。這些數字要用多少並沒有絕對一定,得嘗試過才知道,例如 PyraCanny 姿勢圖中包含肌肉紋理,如果權重設定太高(大大於 1.5),那麼生成出來的人像就可能包含肌肉紋理的特徵。
右上方四個頁籤中,Setting 選擇生成圖片大小、生成效能模式等。Style 頁籤就是 Fooocus 的獨門密技了,有 Fooocus 開頭的 Style 項目,背後代表一系列的隱藏 Prompt 提詞。勾選 Fooocus V2 則會根據用戶的原始 Prompt 以及其他勾選 Style 的項目內容,自動生成更多更細膩的隱藏提詞。Fooocus 的 Style 功能比 SD WebUI 好用很多,可省去自己編寫一大串英文 Prompt。
Model 頁籤則是選擇 SDXL 模型與 LORA。Fooocus 的模型僅支援 SDXL 格式,而官方說明 LORA 也支援 SD.15,不過我個人實測 SD1.5 版 LORA 效果並不明顯。預設可同時啟用 5 個 LORA,要同時啟用更多的話,需改 Fooocus 的設定。以 RTX 3060 12GB 來說,同時用到 4 個以上 LORA 時。12G 的記憶體就差不多滿了。
右上角第四個 Advanced 頁籤,則是收錄 CFG Scale (題詞相關度)和清晰度。再勾選 Developer Debug Mode 則會開啟更多選項,發現 SD WebUI 常用的參數大多藏在這裡。
不同的模型有不同的 CFG Scale、Sampler、Scheduler、Step 最佳建議值,可參考該模型的說明。Step = -1 則是根據 Settings 頁籤而定, Speed(快速)是30 步,Quality(品質)是 60 步。
通常來說,一般的 SDXL 模型,CFG Scale 設定在 5~8。Scheduler 設定 karras,Sampler 設定 dpmpp_2m_sde 或 dpmpp_3m_sde,Step 步數 20~30 步。SDXL Lighting 模型則是 CFG Scale 為 2,Scheduler 設定 karras,Sampler 設定 dpmpp_sde,Step 只需 4~8 ,兩種有很大的不同。一旦搞錯各模型的最佳建議值,那麼產出的圖片也會跟著崩壞。
然而在這個階段刷圖時不可能一次到位,由於 Image Prompt 功能強制介入生成過程,常常會刷出臉崩、手腳崩(多指多腿、斷指斷腿、手腳骨折等情況)、衣服崩、甚至莫名其妙跑出 NSFW 的圖。所以重點只須放在手腳不要崩壞即可,因為手腳崩壞在後續的處理是最麻煩的,修手腳的時間還遠不如大量刷圖之後再來挑,其他崩壞的部分可以放到後續處理。如果還是很難刷出想要的,可以調整參考圖的 Stop At / weight 權重值。
大約刷了大概十幾二十張,得到這張最接近理想。
這張的臉還是崩的,手指的部分除了有點怪異之外,其他看起來還算正常。
接下來是使用修圖軟體(PhotoShop)的環節。將人物圖去背之後,疊在原始底圖上,並調整好相對應的位置。可以的話,調整好人物位置之後,也針對去背後的人物部分製作一張自製蒙版圖(也可稱作遮罩 Mask)。
蒙版圖的製作方法以 PhotoShop 來說,新增全黑與全白兩個圖層,再對去背後的人物圖層,執行「選取」-「載入選取範圍」,精準選出人物的輪廓範圍之後,在黑色蒙版上刪除選取的範圍之後,再與下方白色圖層合併。
最後個自輸出人像與背景疊合圖與蒙版圖。疊合的圖片中人像看起來很明顯是貼上去的,看起來一定是假假的。如果 PhotoShop 修圖的功力足夠厲害,可以用修圖的方法解決貼合感,這張圖就大致完成了。不過若是修圖功力沒那麼厲害時,便可嘗試 Fooocus 的 Inpaint 功能做最後的收尾。
Fooocus 強大的 Inpaint / Outpaint 功能
Fooocus 的 Inpaint / Outpaint 功能相當強大又方便好用,也提供手繪蒙版,所以不一定要使用自製蒙版。以下介紹自製蒙版的使用方法。
回到 Fooocus 依照下圖的順序開啟蒙版(Mask)功能:
1. 啟用 Input Image 與 Advanced -> 2.左邊切換到 Inpaint or Outpaint 頁籤,右邊切換到 Advanced -> 3.啟用 Developer Debug Mode,並切換到 Inpaint 頁籤 -> 4. 勾選啟用 Enable Mask Upload -> 5. Mask Erode or Dilate 值從 0 改為 2~5 之間 -> 6. 上傳疊合圖與蒙版圖。
Mask Erode or Dilate 大於 0 表示蒙版範圍(即白色部分)向外擴張 n 個像素,反之小於 0 則是向內縮 n 個像素。
上圖黃框中 Fooocus 的 Inpaint / Outpaint 功能比 SD WebUI 的 Inpaint 方便好用的原因就在這裡, 只需用點選的方式就能決定。去噪強度小於等於 0.5 不會大幅改變蒙版內的內容,大於 0.5 開始就會有明顯的變化。
點開 Inpaint / Outpaint 方法可發現細分成三種,
- 第一種是蒙版內容重繪,若有勾選 Outpaint 上下左用的話也會一併做展圖。當有勾選展圖的時候,去噪強度必須為1才能針對展圖的範圍生效(展圖內容必然是無中生有,因此必須為 1)。
- 第二種則是單純的內容重繪,針對蒙版內容加上 Prompt 題詞進行改善。去躁強度 < 0.5 時通常不會改變內容,修面容效果非常棒。
- 第三種則是直接改變蒙版內的內容,必須搭配夠大的去躁強度(大於 0.5 )。
這三種重繪可分別應用在不同目的,第一種產出的重繪內容通常不夠精美,但適合較大範圍的產出。產出內容可以繼續使用第二種美化,方法是出圖之後直接再用滑鼠拖曳到下方 Input / Outpaint 的輸入區域即可。
針對改善人像疊合的虛假感,如何 Inpaint 沒有一定的做法,甚至也可以不用蒙版,直接在 Input Image 上塗範圍,一小塊一小塊慢慢修。若單純想透過 Inpaint 換臉的話,直接用畫筆塗臉,再用第二種並輸入 beautiful detailed face 簡單描述一下,總之想修哪就修哪,記得根據修改內容去變更去噪強度,甚至視情況可以改用別的基底模型重繪。例如 dreamshaperXL_lightningDPMSDE 刷出來的東方妹子,有一種「西方人看東方臉孔的刻板印象」,而且身材也偏向「健美型」,可改用符合東方人審美觀的模型與 LORA 來 Inpaint,不過要記得去修改模型或 LOAR 對應的 CFG Scale、Step、Sampler 的建議值。
經過多次的 Inpaint 局部重繪,會發現妹子人像的光影質感與花田背景的感覺並不搭,重繪也無法改善,可以回到先前 PhotoShop 疊圖階段,降低人物的光影對比曝光,重新進行疊圖之後,再回到 Fooocus 做 Inpaint。
經由反覆的 Inpaint 之後,最終就是以下的樣子。然而畢竟是無中生有,仔細看還是看得出有些不協調、不對勁的地方,不過這樣的圖片放在社交網路上,通常不會一眼就發現妹子是假的,用在網路上作觀光景點宣傳,相信還是有點效果,在以往要修圖修個半死,功夫不到位還不一定能做到。
Fooocus 其他好用功能介紹
1. Preset:可針對使用的不同模型自訂幾組 Preset 設定,這樣在切換模型時就不用一個一個去調 CFG Scale、Step、Sampler,直接右上方 Settings 選擇用哪一種 Preset 即可。新增或設定 Preset 可參考目錄 Fooocus\preset 底下的 .json 檔案內容。
2. Inpaint / Outpaint 與 Image Prompt 合併使用:當 Inpaint / Outpaint 也想要參考 Image Prompt 的圖片時,右上方 Advanced -> 勾選 Developer Debug Mode ->下方 Control 頁籤 -> 勾選 Mixing Image Prompt and Inpaint 即可。
例如想保留髮型、穿著打扮,只針對 Inpaint 區域的內容換臉,那麼只需在臉部塗上蒙版範圍,Image Prompt 可以輸入一張換臉(FaceSwap)的參考圖。
3. 輸出 AUTOMATIC1111 格式
右上方 Advanced 頁籤勾選 Developer Debug Mode ,Debug Tool 頁籤最下方,可將 Fooocus 的參數以 a1111 的格式紀錄在圖片中,就能在 SD WebUI 中以讀取 PNG Info 的方式讀取。上面提到的隱藏 Prompt 就能在 SD WebUI 內使用。
後記
近一年來的 AICG 工具可說是百花齊放,以 Stable Diffusion 來說,進步到 SDXL 出圖的品質有明顯的提升,據說 SD 3.0 也即將面市。其實不僅是繪圖工具,前陣子發表的影片生成工具 Sora,連音樂也有生成工具 Suno,這股 AI 浪潮正在快速的改變傳統人類社會,例如有些遊戲公司的美術部門遭到大幅裁撤,部分有些科技公司也進行裁員,導入 AI 之後足以取代部分人力工作,更別說現在滿街的文宣製品有一大部分已是 AIGC 生成的產物,不一定是真人商攝的方式,影響可謂快速且巨大。以本文的案例來說,目前雖然還無法做到一鍵生成,直接蹦出一個妹子無違和坐在實體存在的椅子上,但相信科技的進步也是遲早的事。
所以,找不到漂亮妹子拍宣傳照嗎?沒關係,AI 遲早能幫你搞定。
留言列表