:::

Stable Diffusion的畫外畫功能 / Out Paint in Stable Diffusion

2023-0319-163911.png

想讓畫本身不只有人物,還有可以說故事的背景時,openOutpaint就是我們的最佳幫手。


安裝openOutpaint擴充功能 / Install openOutpaint extension

2023-0319-150138.png

openOutpaint已經跟Stable Diffusion Web UI進行整合了。我們可以在Extensions裡面找到openOutpaint來進行安裝。安裝細節我就不講了,並不困難。

安裝後按下「Apply and restart UI」,之後就可以看到上方選項出現了「openOutpaint」。

起始圖片 / Initial portrait

2023-0319-152641.png

https://civitai.com/gallery/277094?reviewId=46721&infinite=false&returnUrl=%2Fmodels%2F12597%2Fmoxin

我們借用526570095525的創作來開始我們的畫外畫。此時請注意作者使用的Prompt跟Negative prompt,特別是prompt裡面用到的LoRA,我們需要事先先去下載準備好。

這張圖使用了預設的尺寸512x512。在Stable Diffusion中,512x512的人物通常都是上半身含肩的特寫圖片。我們接下來用openOutpaint畫出下半身。


openOutpaint

2023-0319-153247.png

如果有順利安裝openOutpaint的話,上方的標籤就會出現openOutpaint的功能。接下來讓我們一一操作。

載入圖片 / Stamp Image

2023-0319-153445.png

在右邊的工具列中選擇Stamp Image。

2023-0319-153536.png

再到左邊的Upload Image框,把要處理的圖片拖曳到這個框中。

2023-0319-153614.png

此時就可以選擇將圖片放在畫布上,按滑鼠左鍵確定。

初始設定 / Initial configuration

再來我們要調整畫外畫的參數。

2023-0319-153720.png

先按右上角的「Dream」。

2023-0319-153740.png

在左邊的工具列中,綠色的prompt跟紅色的negative prompt填入原本圖片的設定。再來刪改綠色欄位prompt的敘述詞,我只會留下LoRA,並加上我想要畫外畫的敘述。

此圖片的LoRA用了<lora:Moxin_10:0.35> <lora:Moxin_Shukezouma11:0.35> <lora:koreanDollLikeness_v10:0.3>,但<lora:koreanDollLikeness_v10:0.3>的風格太過強烈。我把它移除後,LoRA只剩下<lora:Moxin_10:0.35> <lora:Moxin_Shukezouma11:0.35>。

由於我打算畫此角色的下半身,所以我加上「chinese blue cloth」。本來還試過加入其他敘述詞,但後來發現怎麼加描述都很怪,不然簡單一點讓outPaint自由發揮。

2023-0319-154155.png

再來要來調整Stable Diffusion settings。Model一概選sd-v-1-5-inpainting.ckpt,好用。不過下面的Steps可以調低為10。一方面是墨心水墨畫風本來就不用多精細,二來是比起精細,最好是先由outPaint任意產生結果,接著再固定Seed並調高Steps。Batch Size跟Iterations都維持2即可,最後會產生2x2共4個結果。

繪製畫外畫 / Draw outpaint

Peek_2023-03-19_15-47.gif

再來是在工具選擇為「Dream」的狀態下,拉出你想要延伸的畫外畫範圍。你可以按著Ctrl拖曳畫布的位置。拉好之後,在範圍內再按一次滑鼠左鍵,系統就會開始繪製畫外畫。

選擇的時候必須要將畫作主體一起選進去。這樣繪製的結果才能配合畫作本身產生。

選擇結果 / Choose result

2023-0319-154927.png

畫完後下方會出現結果的工具列。「1/4」表示目前有4個結果,按「<」或「>」可以切換顯示不同結果。選到滿意的,可以按「Y」確定套用。如果都不滿意,可以按「N」取消。回到上一步重新繪製。

以上圖來說,雖然衣服比例看起來還算正常,但是人物左下跟右下都有奇怪的水墨背景出現。與其在那邊慢慢修圖,這時候還不如果斷放棄這次的結果,讓outPaint試到出現看起來還可以的狀態比較好。

2023-0319-155314.png

試了幾次之後,出現了一個還不錯的結果。這樣我們就可按下「y」確定。

部分重畫 (畫內畫) / Inpaint

2023-0319-155554.png

衣服左下角出現了個紅色的印章。這是墨心LoRA的特色,不過我想把它拿掉,要怎麼做呢?

2023-0319-155745.png

右邊的工具選擇「Color Brush」。

2023-0319-155852.png

左下角工具選擇顏色,這邊我選擇衣服的顏色。同時我也把Brush Blur改為0。

2023-0319-155910.png

在衣服左下角塗上顏色。塗太多的話,按滑鼠右鍵可以清除塗上去的結果。嗯...直接塗的話,看起來很醜。

2023-0319-160057.png

右上角選擇Dream,讓我們重繪這個位置。

Peek_2023-03-19_16-00.gif

選擇筆刷以及筆刷之外的其他範圍。選好後按下滑鼠左鍵,開始計算。

2023-0319-160200.png

最後一樣會有4個結果產生。選擇合適的結果,按下「Y」即可。

儲存 / Save

2023-0319-160555.png

右方工具列選擇Select Image。

Peek_2023-03-19_16-06.gif

把整張圖片選取起來。

2023-0319-160720.png

按下左邊工具列的「Save Sel.」。

2023-03-19_08_05_31_openOutpaint_image.png

完成。


背景畫外畫 / Background outPaint

運用同樣的技巧,我們還可以把這張圖繼續往外延伸,加入更多背景。這邊我將提示詞改成「<lora:Moxin_10:0.35>, <lora:Moxin_Shukezouma11:0.35>, chinese building roof, smoke, mist, mountain」,希望右邊能夠有一些中式建築物或山水景色,加上煙霧繚繞的感覺。

2023-0319-162014.png

每一次擴增範圍最好都不要太大。一點一點擴大,選擇合適的結果,調整提示詞,然後再擴大下一次的範圍,這樣說比較好的的做法。

2023-0319-162324.png

看來outPaint認為右邊應該都是煙霧繚繞的山了。好吧。那我把提示詞改成「<lora:Moxin_10:0.35>, <lora:Moxin_Shukezouma11:0.65>, smoke, mist, mountain」,一口氣選擇大範圍來看看。

2023-0319-162733.png

這樣這麼大範圍的運算還蠻花時間的。

2023-0319-163101.png

好,就選擇這個結果把。

2023-0319-163254.png

我們也可以按「Download image to computer」直接儲存結果。

openOutpaint_-_dream_-__lora_Moxin_10_0.35___lora_Moxin_Shukezouma11_0.65__smoke_mist_mountain_-_3.png

這樣就將原本的512x512的人像特寫,擴大成為1536x960的全身圖,並加上山水畫背景了。

不過仔細看的話,你會注意到每次畫外畫之間看得到一些縫隙。目前我還不確定要怎麼克服這個問題,也許手動修飾也是一種選擇。

總之,不要太講究的話,這樣的圖片拿來做成海報或其他應用應該都還蠻方便的,再次感嘆openOutpaint的強大啊。


你覺得什麼時候會用到畫外畫的功能呢?

歡迎下面分享你的看法喔。