ついにポーズから画像を生成することが出来るweb UIの拡張機能が追加されました
何でも論文発表から3日程度で実装されたらしいですね
マジで何者だよって思います
理屈は良くわからないので、実際のインストール方法と使い方を解説します
インストール方法
https://github.com/Mikubill/sd-webui-controlnet
GitHubのリンクは貼って置きますが今回リンク先から直接ダウンロードすることはありません
必要ファイル(モジュール)のインストール
Controlnetをインストールする前に必要ファイル(モジュール)をインストールしておきます
先にControlnetをインストールしても良いけどね
まずはPowerShellをStable Diffusion web UIがインストールされているフォルダで開きます
Windows ターミナルが入っていればファルダ内の適当な所で右クリックすれば、「ターミナルで開く」があるので簡単ですけど、無ければshift+右クリックで「PowerShellウィンドウをここで開く」があります
PowerShellが開けたら下のコードを入力してください
pip install opencv-python
pip install prettytable
正常にインストール出来れば「successfully installed」と表示されます
Windows ターミナルは結構便利そうなのでインストールしておくと良いかもしれません
ただインストールしても再起動しないと使えないので注意してください
マイクロソフトストアから無料でインストール出来ます
https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701?hl=ja-jp&gl=jp&rtc=1
Controlnetのインストール
Controlnetはweb UIからURLで拡張機能をインストールします
「Extensions」→「Available」→「Load from」をクリックすると
インストール可能な機能の一覧が表示されます
その中の「sd-webui-controlnet」をクリックしてインストールしてください
一覧に無かったらweb UIのバージョンアップが必要です
「Installed」に「sd-webui-controlnet」があれば成功です
モデルのダウンロード
Controlnetには専用のモデルが必要になるのでダウンロードします
https://huggingface.co/webui/ControlNet-modules-safetensors/tree/main
種類が沢山ありますけど、
とりあえず今回はcontrol_normal-fp16とcontrol_openpose-fp16.safetensors
をダウンロードしました
Controlnetのモデルは通常のモデルとは違い
「stable-diffusion-webui\extensions\sd-webui-controlnet\models」に放り込みます
「extensions」というフォルダを探してください
yamlファイルは最初から入っていました
棒人間作成用データ
posexというものを使うとブラウザ上で棒人間を作成出来ます
https://github.com/hnmr293/posex
gitクローンでも出来るようですけど
僕は上手くいきませんでしたのでzipファイルをダウンロードしました
上のリンク先にあるcodeをクリックして1番したのDownload ZIPをクリックします
ダウンロードしたファイルを解凍して最初と同じようにPowerShellを開きます
そうしたら下のコマンドを入力してください
pip install -r requirements.txt
python app.py
成功するとweb UIのようにURLが表示されるのでブラウザにコピペしてください
下のようなページが表示されます
あとは関節部分をグリグリ動かして好きなポーズを取らせてください
画像には表示されていませんが関節部分にカーソルを合わせると「右肘」のように表示されます
最後はsaveで保存出来ます
簡単操作で棒人間が作れて画像生成でも使いやすいんですけど
何故かposexを閉じるとブラウザがフリーズしてしまいます
おま環かもしれませんけどね
なので「Blender」や「DesignDoll」等のソフトで簡単にモデルを作ったんですけど
画像生成では上手く読み取ってくれませんでした
単純な棒人間で良いならいけるかと思ったんですけどね
多分画像データをカラフル棒人間に変換してるのかなーってところでしょうね
追記
Blenderで簡単に作れるアドオンがありました
ControlNetで使うカラフル棒人間を簡単に作れる Blenderアドオン 導入&使用方法紹介
どうやら色分けにも意味があるらしいです
Controlnetの使用方法
設定
txt2imgかimg2imgを開くと下の方にControlnetがあるので展開します
設定画面はこんな感じです
「Enable」にチェックを入れて「Preprocessor」、「Model」を選択します
真ん中に画像をドロップするのも忘れないでください
「Preprocessor」は各モデル毎にあるようです
基本的にはモデルと同じ名前のものを選択すればOKですが、棒人間の場合はnoneになります
他の「Preprocessor」、「Model」はまた別の機会に試してみます
画像生成
使用したモデルは3つ
「Blender」ボーン
Blenderで作成したボーンモデルです
こちらはopenposeでは読み取ってくれませんでしたが、normal_mapなら読み取ってくれました
うーんギリ人ってところですね
何故か僕の作る画像には魚のようなものが写りガチです
同時に出力されるnomal_map?はこれです
次回以降はこの画像を入れれば同じ画像が生成出来るという訳ですね
この画像の保存先はStable Diffusionのフォルダ内には無く
「C:\Users\名前\AppDate\Local\Temp」に入っています
「DesignDoll」マネキン
次はDesignDollで作成したマネキンです
呼び方がわからないのでマネキン呼びですが、多分違うと思います
こっちはopenposeも大丈夫でした
まずはopneposeから
良い感じの芋ジャージ姿になっていますね
棒人間はこんな感じです
何でこれであんな画像になるのか意味不明ですね
nomal_mapです
セーターですね
そこそこ忠実みたいです
棒人間
3つ目は棒人間から作ってみます
多分これが主流だと思います
どうでしょう?
右腕の位置はおかしいけど、良い感じにダッサイポーズになったと思います
やっぱり棒人間から作るのが良いのかもしれませんね
その他
公式のGitHubにあった座りポーズとフリー画像から作った画像です
やっぱり元になった画像次第ってところでしょうか
多分自撮り写真を使うのが1番手軽で確実だと思います
Create blank canvas
最後にCreate blank canvasの紹介を簡単にします
Create blank canvasをクリックすると画像をドロップするところに白いキャンバスが出来ます
あとは適当に落書きをすればOKです
画像は落書きしたあとですね
こちらもopneposeでは読み込んでくれませんでした
読み込まれていない状態で出来た画像がこちらです
何か1番出来が良いかもしれません
nomal_mapだとこんな感じになりました
良いですね
サイコな映画のパッケージのようです、完璧かもしれません
長々とありがとうございました、これで終わりです。
他のモデルを試したらまた記事を作ると思います