前言
已經玩SD好一陣子的人應該已經發現,很多名字帶有「Mix」且比較有名的checkpoint模型基本上就是在互相「抄來抄去」,而且在女角方面很多只使用了極少的人物重點訓練,導致算出來的臉常常「都長一個樣」。
雖然可以透過使用LoRA模型、Textual Inversion等局部改變風格,然而無論是自己製作的還是他人製作的,往往都參雜了一些副作用在裡頭,例如更加扭曲的手指、太過寫實、太過不寫實等,時不時還會蓋掉所使用的checkpoint模組原本的優點,而且如果一次使用超過一個LoRA/Textual Inversion,它們彼此之間還會「打架」,產生非常難以預判效果的成品。
所以到底該怎麼辦呢?
現階段而言,人工介入仍非常必要
最近筆者在做一個30張高解析度(3072*6144)女角畫冊的計畫,因為不想每張的女角看起來都像同一個人,所以摸索出了一些心得:
一、慎選checkpoint模組
有的checkpoint模組因為作者本身的喜好而非常「固執」,比方說筆者想繪製一張具有非裔臉部特徵的綠皮膚半獸人,先使用
SweetMix算出一張384*768的小圖:
接著,筆者原本想使用
neverendingDreamNED模組來進行Image2Image的第一次2倍放大(768*1536),結果在提示詞保有「Green skin」(綠皮膚)、「Orc」(半獸人)、「thick lips」(厚嘴唇)且使用((加重權重)),並使用ControlNet的tile_resample的情境下,該模組硬是畫出了下面結果:
neverendingDreamNED死都不肯畫出綠皮膚和厚唇
而筆者最近常用的
fantasticMix雖然在CIVITAI上的範例圖也有明顯的女角偏好,但仍成功「解讀」和保有了半獸人的特徵,並成功畫出了非裔特徵的五官:
找對幫手,才會事半功倍!
二、手動合併不同Denoising Strength的圖
然而,筆者會想嘗試使用neverendingDreamNED,是因為fantasticMix在超高解析度(3072*6144)會畫出太多不必要的細節而造成原本沒有的錯誤,尤其在皮膚處理方面特別糟糕:
Denoising Strength 0.5 畫出來的超奇怪膝蓋和小腿
雖然可以調低Denoising Strength來避免過多的細節與錯誤,但會導致其模糊程度或細節缺乏度和使用extras放大圖片時相差無幾,而且使用0.5+的Denoising Strength時,fantasticMix常會畫出筆者想要的五官細緻度,所以也無法完全捨棄。
有鑑於此,原本筆者想在第一、第二放大階段使用沒有這麼強調細節的checkpoint模組,到最後階段再使用fantasticMix收尾,然而正如前段所示,這個嘗試在半獸人主題上以失敗告終。
那到底該怎麼辦?用Inpaint?——其實手動後製會更有效率。
在繪圖軟體中手動處理,現階段仍是不可或缺的過程,特別是在處理手、腳、人體錯誤時,與其不停inpaint重算碰運氣,不如手動人工處理更快,而且不需要專業的繪畫技巧,只需要簡單的模糊(blur)、圖層遮罩疊加,以及粗略的手繪。
以筆者的套圖製作過程為例,在進行3072*6144這個最終放大階段時,會在繪圖軟體中整合不同的Denoising Strength算出的2~4張圖,且有時會再搭配以extras放大2倍的1536*3072圖(*註1&2)或tile_resample的圖(在detected_maps資料夾中),挑選一張筆者認為錯誤度最低的圖為基底,在其上用遮罩疊加其他版本的圖片,並配合調整色調、對比等:
另外,筆者通常會在中等解析度階段(768*1536或1536*3072)處理手腳指畸形和臉部的問題,使用粗略的手繪協助SD判讀,進而在放大時算出更理想的成果:
最終成品的縮小版本如下(真正的解析度vocus不支援,敬請期待套圖完成):
三、其他心得彙整
1. ControlNet的tile_resample功能在階段性放大過程中時常扮演重要的角色,但有時會有反效果,會有需要關掉的情況,例如用Inpaint修正手指、五官時。
2. 使用Inpaint時需要關閉MultiDiffusion的Tiled Diffusion和Tiled VAE功能,不然會出錯。
3. 384*768 → 768*1536階段時(初始小圖首次放大2倍)如果使用ControlNet的tile_resample功能,Denoising Strength可放大膽使用0.75→1,個人經驗是成果往往相當好。另一方面,後續放大時Denoising Strength的值基本要在0.5以下才比較容易有好成果。
4. 好比筆者需要使用「Orc」、「green skin」、「thick lips」才能畫出非裔特徵,如果不給種族、膚色、相貌、人物名等相關提示詞,那麼checkpoint模組往往還是會往同一種臉和身形靠攏——而且虛構的種族、相貌、人物的提示詞也常有效果。
5. A1111不確定,但Vlad在Settings>Stable Diffusion選單下有「Apply color correction to img2img results to match original colors.」選項,在放大圖片時會自動套用色調調整。我會同時勾選Settings > Image Options選單中的「Save a copy of image before applying color correction to img2img results」,讓SD同時保留色調整前後的兩張圖,因為有時候調整前的較佳,有時候調整後的較佳。
6. 後續嘗試用不同的checkpoint模型運算超高解析度時,筆者注意到在Denoising Strength 0.5+時基本上都會出現亂畫的問題,這可能是目前SD的極限,因為訓練時使用的圖片解析度大多在768以下,導致SD不曉得該怎麼正確填滿高解析度的圖片。
祝大家算圖愉快!