在熟悉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」。
外芙擺個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則是縮小至符合尺寸,可能會讓構圖變的比較怪異。
確定沒骨架問題的話,則可開始照正常流程進行設定步驟,如此一來生成圖像中的人物就會擺出與輸入照片相近的姿勢。
手動調整預覽圖片提高準確度
根據筆者個人的使用經驗與實驗心得,發現若要更精細控制生成圖像中人物的構圖,或是指定特定解析度的話,最好的方式便是透過繪圖軟體調整輸入的參考圖片。
而Openpose模型在分析圖片時,可能會「忽略」參考圖片中白色的部分,所以建議透過拉伸原始圖片的背景部分來改變構圖,如此一來便能有效提高生成圖片與參考圖片之間姿勢與構圖的準確度。
舉例來說,如果我們想要生成圖片的解析度指定為1456 x 760,並且指定人物姿勢為在坐在畫面右方,就可以根據上述原則編輯原始參考圖片,詳情請看下方動態範例。
ControlNet還有許多值得深入研究的功能,想要更精細調整人物姿勢的話,也可以嘗試Online 3D Openpose Editor等工具,如果未來有機會,筆者也可能追加介紹章節。
(回到系列文章目錄)
加入電腦王Facebook粉絲團