大家好,我是AI召喚師阿正,今天要來跟大家介紹,如何用 Stable Diffusion 將漫畫真人化?
之前我們在「動漫角色如何真人化 – 使用 Stable Diffusion 技術實現 Coser 照」裡有提到將動漫人物真人化的方法。那時教的方法的確有用,但那方法也有個問題,就是它只對彩色稿有效,如果黑白漫畫的話就會出問題。
例如,這裡有一張城市獵人裡的野上冴子黑白漫畫圖片:
如果用之前教的方法來做的話,會得到像以下這張圖的樣子:
嗯,對,你會得到一張真人化的黑白照。為什麼呢?因為這原圖本來就是黑白的呀!所以會生成黑白的真人照那很也合理。
如果硬要加顏色上去,有個辦法是加大 denoising strength 去生成圖片,那你拿到的圖人物的造型就會和原本的不一樣,例如下面這張圖:
看到以後,你會想要說:這個…小姐你哪位?說好的冴子呢?怎麼不見了? 好不容易變彩色了,但是人物造型卻不對了,這要怎麼辦呢?
所以,今天我們要教大家,如何將黑白漫畫角色真人化,讓彩色的野上冴子出現,就像這樣:
你可以看到她的臉型、眼睛、髮色、服裝都和原本的漫畫裡很像!而且她還有彩色的皮膚和頭髮!這要怎麼做呢?
一、漫畫真人化事前準備
- 我們會用到 ControlNet 1.1 版這個 Extension ,以及會用到 Canny 、 Lineart 等 Model ,若還沒有安裝的話,可以參考這一篇文章安裝: 如何安裝 ControlNet 1.1 以及安裝模型?
- 我們會用到一些真人模型,在我們的例子裡會用 majic MIX realistic 這個真人模型。你如果想用 MoonFilm 或 ChilloutMix 也都行,就看你喜歡哪一個模型嘍。
這些東西如果都安裝好,以後就可以開始進行下面的步驟。
二、漫畫真人化步驟
步驟1:把 Prompt 設好
1、 到 img2img 頁籤,把要真人化的黑白漫畫角色圖片放到 img2img 裡。這裡我們用野上冴子的這張圖:
2、按下 Interrogate CLIP ,取得圖片的描述,並 copy 起來
a drawing of a woman in a black dress and jacket standing next to a car with her hand up, neogeo, a manga drawing, Ayako Rokkaku, yukito kishiro
我們只需要前面那句話,後面的我們不用保留,所以將以下這句話 copy 起來
a drawing of a woman in a black dress and jacket standing next to a car with her hand up
3、到 txt2img 把剛剛那句 prompt 貼到 prompt 欄位裡
4、在 加上必要的品質的 prompt
masterpiece, best quality, photography, 8K, highres
5、填上必要的 negative prompt
nsfw, ugly, paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, (monochrome), (grayscale),
其中 ugly 不一定要填,不過填了常常會出現人物會比較漂亮。
步驟2:把 txt2img 的基本參數設好
1、模型選你習慣的真人模型,我這次使用 majicMIXRealistic_v6 https://civitai.com/models/43331/majicmix-realistic
2、Sampling methed 選 DPM++ 2M Karras
3、Sampling steps 選 50
4、因為我習慣用 9:16 的圖,寬和高設為 480×856,如果你記憶體夠大也可以設 720×1280。請注意,這裡我沒有使用 Hires. fix 。
步驟3:把 ControlNet 參數設好
1、打開設定 ControlNet
2、把黑白原圖放上 ControlNet 裡
3、把 Enable 、 Pixel Perfect、Allow Preview 全都打開
4、ControlType 選 Canny ,Preprocessor 和 Model 會自動跳,不用再改, Canny Low Threshold 和 Canny High Threshold 都用預設就好。
5、設定好以後,接下來按下像火花爆炸按鈕,你就會得到 Canny 邊緣化後的線稿
6、Control Weight 設成 0.9 表情比較不會死板。這值 0.8 ~ 0.95 都有不錯的效果。我有發現大張的圖,要降多一點比較好看。我自己若是用 480×856 設成 0.9, 若用 720×1280 調到 0.8 。
7、Control Mode ,選 Balanced
8、Resize Mode ,選 Resize and Fill,因為黑白圖比例並不是 9:16 ,比起用 Crop and Fill ,用 Resize and Fill 出的圖表情比較好。
步驟4:生成圖片及微調 Prompt
1、這時就可以開始抽卡生圖了!來看看我們會抽到什麼?
我們得到了一張還不錯的真人化圖片,但原本的圖是黑白的,所以很多東西真人化以後要特別指定。例如目前圖片裡,外套不是淺色的,這些細節要怎麼調?
2、調整 Prompt ,指定細節
這時我們可以調整 prompt 達到目的,例如我修改了 prompt 如下所示:
Standing next to a car, a beautiful woman in a fashionable (black suit:1.3) with (black pants:1.3) and a (light-colored:1.3) jacket gracefully waves her hand in greeting, her partially covered face adding a touch of mystery. Against a backdrop of a blue sky with white clouds, she poses with effortless elegance.
detailed eyes, detailed skin, detailed face,
masterpiece, best quality, photography,
Prompt 裡的第一句話的內容是:有位站在汽車旁的絕色美女,她身著時尚的黑色套裝和淺色夾克,優雅地揮手打招呼,部分遮住的臉龐增添了一絲神秘感。在藍天白雲的背景下,她毫不費力的優雅擺出姿態。
Negtive Prompt 修改如下:
nsfw, (ugly:1.3), paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, (monochrome), (grayscale),
bad hands, missing fingers, poorly drawn hands, extra fingers, fused fingers,
too many fingers, mutated hands, missing fingers,
poorly drawn face,
skin spots, skin blemishes,
我們多做幾張來看看:
來對照一下原圖
是不是很像?大家可以照著我們的步驟試試看。
到這邊,冴子的真人化示範就結束了!
三、黑白漫畫角色真人化原理
在上述的操作過程中,你可能會好奇,為什麼這樣一路操作下來, 真人化就完成了?現在,我們來解釋一下這其中的原理。
所謂的讓 AI 真人化,就是提供一張原圖,再請它參考原圖用真人模型重新繪製,這就是真人化的原理。
但是這裡會產生一個問題,AI 怎麼知道要參考原圖的哪些東西再重繪呢?
在之前,我們只能夠利用 img2img 的方式來提供圖片和題詞,讓 AI 知道要參考哪些東西?這就是之前我們教的技巧。但是這裡常常會有個問題,就是 AI 會常常搞錯我們希望他參考圖上哪些的資訊?到底是參考顏色的資訊?輪廓的資訊?還是光影的資訊?
現在有了 ControlNet 這件事就簡單多了 , ControlNet 能夠讓我們指定要參考原圖上某些資訊,進而拿這些資訊來生成圖片。例如這一次我們就請 ControlNet 依照原圖上的輪廓資訊,再加上精準的提詞,一起就可以生成真人化的圖片。
那要怎麼樣讓 ControlNet 參考原圖上的輪廓資訊呢?我們使用了 ControlNet 1.1 的線稿模型:Canny。
那 Canny 是什麼呢?Canny 是一種邊緣檢測模型,它能將圖片的邊緣檢測出來並轉化為線稿。由於「城市獵人」中的角色與現實人物的比例相似,所以很適合使用 Canny 模型來實現漫畫角色的真人化。
所以若你想將黑白漫畫角色真人化,我們只需要利用 ControlNet 的Canny功能在文生圖 (txt2img) 中,加上合適的Prompt,就可以生成彩色圖片。這就是這次我們用的技巧的原理。
四、常見問題
問題1:為什麼不在 img2img 裡生成圖片?而是在 txt2img 裡生成圖片?
之前的方法是在 img2img 裡面做生成圖片沒有錯,那是因為在沒有使用 ControlNet 的時候,當我們需要拿圖片當生成的參考物時,就一定要在 img2img 裡面做。
現在有了 ControlNet 的幫忙,我們可以使用 ControlNet 從圖片上萃取資訊,再生成圖片,這就相當於傳統的圖生圖的用途,並且還更精準的指定我們要參考原圖裡的什麼資訊,像這次就是參考原圖的輪廓資訊。
因為使用 ControlNet ,我們就不必在 img2img 裡生成圖片。如果我們硬在圖生圖裡面做真人化,那生成的圖片也會受到原本的黑白圖片的影響,做出來的畫面的效果會接近黑白照片。
問題2:所有黑白漫畫都可以用 Canny 來真人化嗎?
不是,因為 Canny 的邊緣檢測做得非常仔細,適合漫畫人物類似於真人比例的圖。因為城市獵人作者北条司是畫的人物比例和真人相仿,所以我們可以選擇使用 Canny 來做真人化的依據。
問題3:Canny 和其它線稿的模型哪裡不一樣?
在 ControlNet 中,Lineart, Lineart Anime, Canny, Softedge, Scribble 都是用於提取圖像線稿的模型,但它們各自有不同的特點和擅長的領域:
- Lineart 模型可以提取出更加精細和豐富的線條和紋理,適用於需要強調圖像結構和細節的場景。
- Lineart Anime 模型則更適合處理動漫風格的線稿。
- Canny 模型注重對圖像中物體邊緣的提取,因提取的線條較為簡單,適用於需要強調物體輪廓和形狀的場景。
- SoftEdge 模型則可以提取出更加柔和和平滑的線條,適用於需要表現柔和氛圍或者光影效果的場景。
- Scribble 模型則可以更好地處理手繪涂鴉等複雜紋理,適用於需要表現手繪風格或者複雜紋理效果的場景
更多的內容,可以這看一篇 ControlNet 功能介紹 – 用 14 個模型掌控人物姿勢、轉換風格!- Stable Diffusion 教學
問題4: ControlNet 的 Control Weight 是在調整什麼?
由於 Canny 的強大的邊緣檢測能力,讓我們傾向於使用它作為進行真人化模型。然而,我們也必須面對一個問題,那就是手繪圖片和真實人像有一定的差距。如果我們直接真人化,會導致某些不合理的現象出現。
為了解決這個問題,我們採取了一種折衷的辦法。我們將 Control Weight 參數稍微調低了一點,讓 AI 有更大的自主性。我們期望 AI 可以自我判斷,作出它認為合理的決定來繪製圖片。這種方式既保證了真實感的呈現,又避免了手繪稿真人化後出現不合理的問題。
五、重點回顧
- 我們一開始介紹了黑白漫畫真人化的問題,如果直接用圖生圖也只會產生出黑白圖片。
- 要產生真人化圖片,要在文生圖裡用 ControlNet 來做。
- 我們會選擇 Canny 是因為這個人物符合實際比例。
- 因為黑白圖片很多東西沒有指定清楚,所以Prompt 要精確一些。
六、總結
Stable Diffusion 是強大的 AI 生成圖片工具,再加上 ControlNet ,可以玩的花樣又更多了,例如這次冴子就是。
如果覺得我們的教學有幫助到您,請訂閱我們的電子報,讓您在第一時間收到我們的最新教學,有時也會有好東西只給我們的電子報會員,歡迎您的加入
七、參考資料
- 還有 Linart Anime 效果也不錯,這邊就不多做示範,效果可以看我們前一篇文章 黑白漫畫真人化 – 城市獵人野上冴子 。
- 真人化另一篇文章在 動漫角色如何真人化 – 使用 Stable Diffusion 技術實現 Coser 照
- 影片版如下: