【Stable Diffusion】 ControlNet でキャラクターの衣装を変えてみた
こんにちは!『麦ちゃーはん』です。
今回は、Stable Diffusionの拡張機能「ControlNet」で遊んでみました。
キャラクターの衣装を変えたり、好きな姿勢のイラストを生成したりと、便利な機能が揃っています。ぜひ最後までご覧ください!
ControlNetの環境構築
手順1: Stable Diffusionのインストール
長くなるので、Stable Diffusionのインストール方法は省略させていただきます。
筆者はこちらのサイトを参考にさせていただきました。
手順2: ControlNetのインストール
まず、Stable Diffusionの「Extensions」のタブを選択してください。
次に、「Install from URL」を選択してください。
以下のURLを入力して、ControlNetの拡張機能をインストールしてください。
https://github.com/Mikubill/sd-webui-controlnet
インストールが完了したら、Stable Diffusionを再起動してください。
手順3: ControlNetモデルの準備
ControlNetの機能である、「Canny」や「OpenPose」を使用するためのモデルをダウンロードします。以下のページから、「control_v11p_sd15_canny.pth」と「control_v11p_sd15_openpose.pth」をダウンロードしてください。
ダウンロードしたファイルは、以下のディレクトリに配置してください。
stable-diffusion-webui\models\ControlNet
Canny
さっそく、Cannyを試していきましょう。Cannyはエッジ検出を行う機能です。画像のエッジを強調することで、線画のような表現に変換します。この結果を利用して、Stable Diffusionに「基礎的な形状や構造」を入力として提供できます。
以下の画像をCannyで変換してみます。
まず、txt2imgのタブを選択してください。
ここで、ControlNetの設定を開きます。
以下の画像と同じになるように赤枠の部分を変更してください。
モデルの選択肢が表示されない場合は、青枠で囲まれている更新ボタンを押すと出てくると思います。
最後に画像をセットして、エッジ検出を行います。
実行ボタン(爆発マークみたいなやつ)を押してください。
以下のようなエッジが検出されました!
あとは画像生成を実行するだけです。
シンプルなプロンプトを入力して実行してみました。
black hair
出力された画像はこちらです。あっという間に色の塗り替えができてしまいました。
プロンプトをより詳細に入力すれば、思い通りのイラストに変換できるはずです。
OpenPose
次は「OpenPose」を試します。OpenPoseは人間のポーズ(姿勢)を検出する機能です。検出した姿勢のデータを利用して、同じ姿勢の画像を生成することができます。
今回使用する画像はこちらにしました。
まず、ControlNetの設定をOpenPoseに変更してください。
Cannyのときと同じように画像をセットして、実行ボタンを押してください。
以下のような画像が出力されると思います。これは、検出した姿勢を図示しているものです。
最後にプロンプトを入力して、画像生成を実行しましょう!
今回は、以下のように指定してみました。
- 表情:笑顔
- 服:黒色のドレス
- 背景:グレー
high quality, smiling cute girl, wearing a black dress, the background is gray
生成された画像はこちらです!検出した姿勢とプロンプトの内容がしっかりと反映されていますね。
使用したStable Diffusionモデル
画像の生成にはこちらのモデルを使用させていただきました。
おわりに
今回は Stable Diffusionの拡張機能「ControlNet」についてまとめてみました。
ControlNetでは他にも、「高解像度化」や「範囲を指定して修正」といった機能が使用できるので、ぜひ遊んでみてください。
ここまでお読みいただき、心から感謝いたします。
Discussion