Quantcast
Channel: 電腦王
Viewing all articles
Browse latest Browse all 5910

Stable Diffusion AI算圖使用手冊(5-1):透過ControlNet控制角色姿勢

$
0
0
在熟悉Stable Diffusion與各種小模型的使用之後,你是不是覺得AI生成圖像的人物動作太過單調?沒關係,就讓我們透過ControlNet來控制角色所擺出的姿勢。4284bc0bceb7e3deb57a120a7f060f86

在熟悉Stable Diffusion與各種小模型的使用之後,你是不是覺得AI生成圖像的人物動作太過單調?沒關係,就讓我們透過ControlNet來控制角色所擺出的姿勢。

ControlNet功能說明與安裝

ControlNet是款整合多種功能的外掛軟體,在這邊筆者將介紹透過其中的OpenPose,來控制Stable Diffusion生成圖片中的角色姿勢。

為了要安裝與使用外掛軟體,請參考教學文章的2-1章節,確定在RunSD.bat檔案的set COMMANDLINE_ARGS項目中,加入「--enable-insecure-extension-access」參數。

在啟動Stable Diffusion WebUI網頁介面之後,點選Extensions與下方的Available標籤,這時候外掛軟體的索引網址應該已經自動填入,只需要點擊Load from按鈕,並且搜尋controlnet,然後點選sd-webui-controlnet右方的Install按鈕,就能安裝外掛軟體。

接下來我們還需要到ControlNet於Huggingface的頁面,下載「control_sd15_openpose.pth」模型,並儲存至「stable-diffusion-webui」資料夾下的「\extensions\sd-webui-controlnet\models」。

在安裝與使用ControlNet外掛軟體之前,須先確定RunSD.bat檔案內已加入「--enable-insecure-extension-access」參數。

接著進入Stable Diffusion WebUI網頁介面,依序點選Extensions、Available、Load from等按鈕,並且搜尋controlnet,然後點選sd-webui-controlnet右方的Install。

安裝完成後,回到Installed標籤頁面下,可以看到sd-webui-controlnet顯示於列表中。

接著至ControlNet於Huggingface的頁面,下載「control_sd15_openpose.pth」模型。

將檔案儲存至「stable-diffusion-webui」資料夾下的「\extensions\sd-webui-controlnet\models」。

外芙擺個Pose

安裝好ControlNet與OpenPose的模型之後,重新啟動Stable Diffusion WebUI網頁介面,就可以看到ControlNet設定項目,它預設是收合狀態,需點擊右方三角形將其展開。

展開ControlNet後,我們需要先點擊「Click to upload」,選擇想要輸入做為姿勢參加的圖片,接著依序點擊「Enable」方塊,然後在Preprocessor選擇代表基本功能的openpose、強調手部動作的openpose_hand,或完整功能的openpose_full,Model則選擇control_sd15_openpose,然後在Resize Mode選擇想要使用的縮放方式,並在下方的Canvas Width、Height分別輸入生成圖像的長寬尺寸,最後點擊「Preview annotator result」,即可預覽姿勢骨架。

Resize Mode設定項目提供3種縮放模式,如果讀者發現生成圖片的效果不如預期,可以嘗試使用不同縮放方式,或參考後方段落手動調整參考圖片。其中Just Resize為直接縮放至符合輸出尺寸,容易造成畫面中人物變型,Inner Fit則是放大至符合尺寸,有時會造成人物被切除的問題,而Outer Fit則是縮小至符合尺寸,可能會讓構圖變的比較怪異。

確定沒骨架問題的話,則可開始照正常流程進行設定步驟,如此一來生成圖像中的人物就會擺出與輸入照片相近的姿勢。

完成安裝手續後,可以在Stable Diffusion WebUI網頁介面看到ControlNet設定項目,點擊右方三角形將其展開。

先點擊「Click to upload」,選擇想要輸入做為姿勢參加的圖片。

接著依照圖中建議進行各項設定,需要特別注意的是,Canvas Width、Height欄位需輸入與生成圖像長寬相同的尺寸。最後點擊「Preview annotator result」,即可預覽姿勢骨架。

筆者以自己踢球時拍攝的帥氣照片作為參考圖片,透過ControlNet讓生成圖片的外芙也擺出相同姿勢。真帥!

另外筆者也以openpose_full進行示範,從預覽骨架可以看到臉部表情與手部動做。

生成圖片的表情比較接近參考圖片了,但是手指還是AI算圖的弱項,還原度並不高。

手動調整預覽圖片提高準確度

根據筆者個人的使用經驗與實驗心得,發現若要更精細控制生成圖像中人物的構圖,或是指定特定解析度的話,最好的方式便是透過繪圖軟體調整輸入的參考圖片。

而Openpose模型在分析圖片時,可能會「忽略」參考圖片中白色的部分,所以建議透過拉伸原始圖片的背景部分來改變構圖,如此一來便能有效提高生成圖片與參考圖片之間姿勢與構圖的準確度。

舉例來說,如果我們想要生成圖片的解析度指定為1456 x 760,並且指定人物姿勢為在坐在畫面右方,就可以根據上述原則編輯原始參考圖片,詳情請看下方動態範例。

在這個範例中,我們將左方的圖片修改為右方的狀態,以滿足生成解析度為1456 x 760圖片的需求。

透過動態圖片,能更深入瞭解修改圖片的流程。

將修改好的參考圖片輸入ControlNet,就能更精準指定生成圖片的解析度、構圖、姿勢。

使用同樣的參考圖片,搭配不同提示詞,就能生成姿勢相同但風格不同的圖片,相當有趣。

ControlNet還有許多值得深入研究的功能,想要更精細調整人物姿勢的話,也可以嘗試Online 3D Openpose Editor等工具,如果未來有機會,筆者也可能追加介紹章節。

回到系列文章目錄

加入電腦王Facebook粉絲團

Viewing all articles
Browse latest Browse all 5910

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>