在Stable Diffusion內,已經有許多方法來控制光影,但是每種方法都有其限制與特長,並沒有一種萬用的光影控制法。
而在最近,光頭佬Olivio Sarikas分享了一個使用ControlNet非官方模型來控制txt2img的光影佈局的方法。這個方法與 Stable Diffusion進階 -- 光影控制 提到的遮罩光影頗為類似,但是更為強大。
首先,要使用這個模型,就必須到Civitai上下載該模型,並放置到ControlNet的資料夾內。
模型網頁是:
https://civitai.com/models/80536/lighting-based-picture-control-controlnet
下載的模型需要放置到 /extensions/sd-webui-controlnet/models 這個資料夾內。這樣重啟Automatic1111之後就能看到該模型出現在ControlNet的選單下。
接著,我以一個簡單的圖片當作光源指引:
在這裡,我以產生一張野狼在月亮下行走於森林的圖為例,套用該光影指引來生圖。提示詞我使用:
((fantasy)), (extremely detailed CG unity 8k wallpaper), best quality, masterpiece , hdr, ultra highres,
wolf running in forest, big full moon
這樣簡單的提示,接著開啟ControlNet:
在這邊Control Type要使用All,這樣才能在Model的下拉選單中找到要用的模型lightingBasedPicture_v10。
根據作者的介紹,由於該模型是使用大量真實相片來訓練光影,所以在生成動漫與擬真的圖片時,光影引導的效果太強,反而會破壞畫風,因此經過嘗試後作者建議使用Control Weight 0.6以及Ending Control Step 0.6左右。這樣能得到較佳結果:
可以看到,ControlNet指引原始光影參考圖的亮區成為月亮,並且在月亮前繪製了野狼。
根據作者聲稱,該模型可以與其他ControlNet的模型合作,因此我測試了配合Canny模型的組合效果,設定上與一般使用ControlNet一致:
而成品圖與我們期望的類似,狼的形狀確實遵照了canny的形狀產生,但是光影與canny模型產生了衝突,因此無法產生巨大的月亮,原先的光亮區從月亮變成了月光照亮的區域:
另外,作者也在他自己的頁面上介紹了使用灰階光影圖來精細打造整個場景的光影。
目前該模型僅能用於txt2img,在img2img中使用,效果非常慘烈,還不如使用原始的遮罩法來生圖。但是在txt2img中,這可能是唯一一個不靠提示詞就能指定光源的方法。