前言
今天來分享如何把一張彩色圖片轉換成一張漫畫風格的黑白線稿的方法。
例如我想把一張水彩稿,或者一張照片轉換成黑白漫畫稿,不只是簡單地把一張圖換成灰階,而是連線條與陰影都要是漫畫風格,例如下面這張圖顯示的:
在網路上可以找到好幾種方法,我自己測試了每一個能找到的方法,最後確定了一個既可以使用在所有類型的圖片,步驟又大體一致的方法,下面列一下我看過的方法,如果有我沒嘗試過的方法且效果也不錯,請跟我說一下:
- 用img2img配上空白圖片,加上ControlNet的Canny來生圖
- 用txt2img配上專用Lora,加上ControlNet的Canny來生圖
- 用txt2img配上漫畫向模組與Lora,加上ControlNet的Canny或Lineart來生圖
我這次要用的是第三種方法。這種方法除了能正確去除色彩之外,也能讓風格貼向我們需要的漫畫風,而不是黑白寫實風。
第一步,準備
首先,我們必須去下載一個動畫漫畫向模組與一個轉換成線稿專用的LoRA。
將模組放到/models/Stable-diffusion/這個資料夾裡面,將LoRA放到/models/Lora/這個資料夾底下,然後按Refresh來重讀,或者乾脆重啟Automatic1111讓設定生效。
第二步,生小圖
選擇一個你要轉換的圖,在這裡我用這張從CounterfeitV25模組產生的圖當範例:
在txt2img裏面,將相對應的正面與負面提示詞輸入進去。
如果這張圖本來沒有提示詞,你可以在img2img裡面上傳圖片,然後用Interrogate CLIP(真人向圖片),或者Interrogate DeepBooru(動漫向圖片)直接從圖片提煉出正向提示詞。至於負面提示詞,就使用你常用的負面提示詞應該就足夠了。
以我的例子,這是我用的正面提示詞:
(best quality:1.4), (masterpiece:1.4),
digital painting of Vallaria, holding_bouquet, bangs, skirt, shirt, long_sleeves, hat, dress, kindly smile,
flower field,
real face, real skin, realistic face, realistic skin, detailed eyes, detailed facial features, detailed clothes features, detailed face and breast, beautiful eyes, detailed eyes, perfect body, perfect breasts, perfect face
<lora:VallariaV2:0.3>
然後在正面提示詞,你必須將所有可能產生顏色的提示詞都去掉,例如頭髮顏色或眼睛顏色,或者主觀判斷將他們替換成黑白灰三色。當然如果你想要產生的圖片是類似漫畫周刊彩頁的效果,那這步就可省略。
接著將模組替換成AnythingV5,並且將LoRA提示詞,還有啟動詞加入正面提示詞內:
lineart, monochrome, (black and white:1.4),
(best quality:1.4), (masterpiece:1.4), digital painting of Vallaria, holding_bouquet, bangs, skirt, shirt, long_sleeves, hat, dress, kindly smile, flower field,
real face, real skin, realistic face, realistic skin, detailed eyes, detailed facial features, detailed clothes features, detailed face and breast, beautiful eyes, detailed eyes, perfect body, perfect breasts, perfect face
<lora:VallariaV2:0.3> <lora:animeLineartMangaLike_v30MangaLike:1>
當然,如果你不需要黑白線稿,(black and white:1.4)就不用加。
接著開啟ControlNet,將同一張圖拉進來,使用Canny作為預處理器與模組:
記得勾選Enable,將權重調為1。否則你會生出完全不同的圖。
接著開始跑圖,直到出現你想要的結果:
很接近我們想要的圖了,但在這邊有幾個問題:
- 如果原圖過小,例如512X512,跑出來的圖,它的線條與光影會非常模糊,像是鉛筆稿而不是漫畫墨水筆稿。
- 陰影的轉換過於光滑,像是圖片直接轉成灰階,而不像漫畫的墨水或網點。
如果以上問題對你來說都可接受,那就可以停在這邊,否則我們可以繼續反精細化它。
第三步,放大與反精細
接下來修改同一個正面提示詞,將所有能讓畫面精細的提示詞都移除掉,例如我的正面提示詞中:
real face, real skin, realistic face, realistic skin, detailed eyes, detailed facial features, detailed clothes features, detailed face and breast, beautiful eyes, detailed eyes, perfect body, perfect breasts, perfect face
移除這些提示詞之後,就能讓圖片得到接近手繪漫畫的質感。而且由於我們的圖已經被ControlNet用Canny牢牢控制住,所以豐富細節的提示詞被移除也不會影響我們的人物臉型與五官特徵。
接著我們要開啟Hires. fix(高解析度修正),將圖放大到兩邊都要超過1024像素,這樣筆觸才能銳利到有漫畫鋼筆的感覺。
這就是我們最後的結果:
結語
昨天ControlNet釋出了1.1版,增加了許多新的預處理器跟模組,其中一個Lineart也是專門產生類似手繪動畫稿的風格,用了之後可以看出一些細微的差別:
例如這樣:
享受AI算圖的快樂吧!
進階技巧目錄: