這篇主要來講解一下Inpaint的作用,跟這個功能如何幫助我們一點一點改畫一個原始概念,直到整幅畫符合需求。
這幅作品的概念是要藉由人類與機器人的互動,來展現人類在機械與AI支配的未來的景況。所以我需要先產生一個有景況悲慘的人類與末世賽博龐克背景的圖。我使用了一系列的提示詞來算圖,但是發現AI似乎不太喜歡把悲慘的人類與高傲的機器人擺在一起的圖(莫非AI已經在堤防人類對AI的戒心?),所以在嘗試了幾十張圖之後,終於產生了一個近似的圖:
(extremely detailed CG unity 8k wallpaper), best quality, masterpiece , hdr, ultra highres,
The future of our next generation, a list of old and fifth homeless man lined up before a church , hopeless, dark tone, night, cyberpunk, close-up
這張圖的構圖雖然與我的原始構想相差很大,但是意念非常契合,所以我就選擇這張圖開始。首先我要將站著的老者變成機器人,完成我構圖中的衝突:
(extremely detailed CG unity 8k wallpaper), best quality, masterpiece , hdr, ultra highres,
cyberpunk, a rich and shiny robot looking at the old homeless, hand holding a dollar bill
上面的設定中,要注意的是Inpaint在重繪時,如果Denoising strength數值越大,提示詞的內容就會影響成品越大。在我的設定中,Denosing strength已經達到0.6,所以被選取的地方會很明顯地重繪成我指定的「一個富有且閃閃發光的機器人正看著老流浪漢」(a rich and shiny robot looking at the old homeless),但是重繪的自由度也是被模型的能力以及Denosing strength限制,所以我的另一句提示詞「手上拿著一塊錢鈔票」(hand holding a dollar bill)並沒有成功畫出來。大概是這個模型不認識一塊錢鈔票,或者對於機器人手握著東西並不擅長,總之在重繪了十幾次之後,我挑選了一個不錯的候選圖:
這張半完成品的構圖已經有了兩個對比的角色,但因為這時兩個角色並沒有足夠的衝突與互動,這時我想到了,讓機器人手提一袋食物,比手拿一張鈔票要明顯,更有敘事性,於是選取機器人的手部跟老流浪漢的附近,用「一袋雜貨店的食物」重繪(其他Inpaint設定不變)。在重繪的幾十張中,有一張的概念讓我特別喜歡,就是袋子是漂浮在空中的:
這張半完成品特別凸顯了作為施捨方的機器人的粗魯無情與漫不經心,還有接受方的老人的窘迫情境。為了凸顯這個袋子,我將袋子的區域選取起來(其他Inpaint設定不變),用「掉落中的雜貨店袋子」(a grocery bag falling to the ground)來重繪,並且用GIMP等繪圖軟體將購物袋變色為亮黃色,製造畫面上的色調反差。
但這時我發現主角本人與主角右邊的光頭流浪漢,由於當初算圖時的面積太小,所以臉都是嚴重崩潰的。為了修復他們的臉,我使用GIMP軟體將中間的512x512區塊剪下來,送進Inpaint重新繪製他們的臉:
在重繪時,由於兩個角色的臉面積已經放大了16倍(長寬皆是4倍),所以AI可以弄出非常細緻的表情。我在主要角色的臉上只使用了0.2的Denosing strength,所以細節變動很小,但是右邊的流浪漢我使用了0.75的Denosing strength,算出來的臉之中有一個非常耐人尋味:
這個表情非常有故事,彷彿在指責昔日戰友為何對機器人無意的侮辱舉動毫無反應,意外契合這張圖的主題,增加了故事的張力。
由於我只有部分重繪這個局部,所以可以將完成圖完美鑲嵌回原本的大圖,再經過GIMP修剪一些細部以及模糊化一些遠景之後,整張圖就完成了!
希望大家AI算圖愉快!