更新於 2023/07/10閱讀時間約 4 分鐘

Stable Diffusion進階 -- 漸進式光影

修正後與修正光源前的對比
修正後與修正光源前的對比

前言

本篇文章要討論一個在出擬真或真人類型的圖片時,常常遇到的問題,就是光源太亮。
在許多熱門模型上,由於使用太多大白天模特兒的圖片,或者攝影棚高光圖片來訓練,所以在弄出人物時,儘管場所設定在夜間,也會出現不自然的超高光,或者整個照片的光源陰影不遵照提示詞來佈局的問題。
之前介紹的 Stable Diffusion提示詞 -- 光影 與Stable Diffusion進階 -- 光影控制 都是可行的光影控制方法,而本篇要針對的是更細微的控制,將已經生成的圖片重新更改光源與陰影,且產生不同程度的明暗程度讓製作者可以挑選最佳的光影成果。

方法

我們先使用txt2img生成一張在夜晚森林之中的角色圖:
(masterpiece, top quality, best quality, official art, beautiful and aesthetic:1.3), extreme detailed, Hana, fighting stance, angry, clenched teeth, floating hair, wearing white kimono and white cape, long sleeves, hand holding a wooden club \(weapon\), night, half moon, moonlight, fantasy, forest lora:Hana:0.4
亮過頭的夜晚圖
許多時候模型生成的圖片並不一定依照我們的想法來佈局明暗與光影,有時候是因為模型訓練時用了太多模特兒的攝影棚拍照片,或者LoRA在訓練時缺乏多樣化的光影,或者使用太多提示詞互相牽制,導致某些強烈的光影效果被取消掉。總之,在嘗試各種提示詞也無法產生想要的光影時,可以試試看利用ControlNet配上Loopback的手段來產生一整批不同明暗程度的圖片,再從裡面挑出最好的結果。
首先,在本例中,我想要在畫面中央上方製造一個月亮當作光源。我開啟任意繪圖軟體,例如GIMP,打開新畫布,選擇全黑背景,然後用畫筆弄出白色光源遮罩,將這張圖輸入到img2img裡面,提示詞則保持與原始圖一樣:
光源遮罩
接著在img2img的設定中,使用Denoising strength 0.4這樣的中等權重:
img2img設定
接著開啟ControlNet,設定兩組。第一組使用Openpose以固定圖片生成時人物的姿勢不跑掉,使用ContorlNet is more important:
ControlNet的Openpose設定
第二組的ControlNet使用canny(邊緣偵測)或者normal(法線圖)皆可,用以固定原始圖片裡面人物的形狀與表情,使用ContorlNet is more important:
ControlNet的Canny設定
最後,最重要的是Loopback的設定,藉由Loopback的循環輸入能力,我們才能將一片漆黑的基本遮罩慢慢還原出整張圖。在這邊我設定10回合,且Final denosing strength設定為0.75的高權重,在後幾回合產生較大的明暗變動:
Loopback設定

成果

一切都設定完成之後,就能來跑圖了,等十回合都跑完後,就能來挑選圖片:
從遮罩還原出圖片
可以看出一開始,AI在一片漆黑的遮罩之下只能勉強算出光源附近的人物輪廓,但隨著成果圖不斷循環輸入,圖片會越來越清晰,且陰影分佈會依照物體的相對關係和光源強弱改變。
如果是使用ControlNet的canny來固定形狀,有些強烈的陰影分界線會被採樣進來,因此干擾了光影分佈,如果是這樣,可以下載Canny的圖片抹掉這些額外的線條,或者可以改用normal來固定形狀,但可能會造成衣服樣式完全改變。
最後,我挑選了最符合我想像中的夜晚森林有月光又足夠暗的圖片,大約在第七張左右:
更改明亮與光影的成果圖
除了人物的陰影改變了,背景的森林與道路的陰影也完全不同了,更符合月光照明的氛圍,基本符合我的需求!
祝大家AI算圖愉快!
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.