【Stable Diffusion Web UI】ControlNetの使い方 OpenPose
この記事では、ControlNetのOpenPoseについて解説しています。
OpenPoseを使用することによって、元画像や棒人間と同じポーズの画像を生成できるようになります。
目次[非表示]
Stable Diffusionとは
Stable Diffusionは、無料で使える画像生成AIです。テキストを打ち込むと、それに応じた画像が生成されるしくみです。人物や動物、風景など、さまざまな画像を生成できます。
例えば、「サングラスをかけた猫」と入力するとそのような画像が生成されます。生成する画像のスタイルも多様でイラストや写真、水彩画やアニメ調など、自分の好きなテーマでAIに生成してもらうことができます。
Stable Diffusion Web UI(AUTOMATIC1111版・Forge版)とは
Stable Diffusion Web UI(AUTOMATIC1111版・Forge版)は、ブラウザを通じて手軽に画像生成を行える無料のWEBアプリケーションで、Google Chromeなどの主要なブラウザで利用できます。
プログラミングを一切必要とせず、WEB UIによる簡単なグラフィカルな操作が可能です。Stable Diffusion Web UIをローカルPCにインストールして使用する、もしくはクラウドサーバーにインストールして使用します。
Stable Diffusion Web UIに関する全般的な使い方については、以下の記事でまとめていますので、あわせてご覧ください。
ControlNet OpenPoseとは
ControlNetはStable Diffusionの拡張機能の一つであり、その機能はContorlNetのモデルによって異なります。
ControlNet OpenPosedでは、元画像や棒人間からポーズを抽出して、同じポーズの画像を生成することができます。
元画像からポーズを抽出して、同じポーズで画像を生成
棒人間を作成して同じポーズの画像を生成
この記事ではOpenPoseを解説していきます。
OpenPose以外のモデルをお探しの方は、以下のContorlNetのまとめ記事をご覧ください。
ControlNet OpenPoseのインストール
ContorlNet OpenPoseは、Stable Diffusion Web UIの拡張機能のContorlNetの1つのモデルです。
拡張機能のContorlNetをインストールして、OpenPoseのモデルを設定することで利用できるようになります。
ContorlNetのインストールおよびモデルの設定方法は以下の記事をご覧ください。
上記記事にOpenPoseモデルのダウンロード手順が含まれます。
[control_v11p_sd15_openpose_fp16.safetensors]がOpenPoseのモデル名になります。
元画像からポーズを抽出して、同じポーズの画像を生成する方法
元画像をセットしてポーズを抽出し、同じポーズの画像を生成する手順は以下のとおりです。
Stable Diffusion WebUIの[txt2img]のタブを開きます。
- [ControlNet v****]の[◀]ボタンを押して、メニューを開きます。
※Forge版の場合は、[ControlNet Integrated ◀]ボタンを押して、メニューを開きます。 - [Single Image]の[ここに画像をドロップ -または-クリックしてアップロード]に元画像をアップロードします。
- [Enable]にチェックを入れます。
- [Control Type]で[OpenPose]を選択します。
- [Preprocessor]のプルダウンメニューから[openpose_full]を選択します。
- [Model]の[更新]アイコンをクリックします。
- [Model]のプルダウンメニューから[control_v11p_sd15_openpose_fp16.safetensors]を選択します。
- 特徴抽出をする[💥]のアイコンをクリックします。
- [Preprocessor Preview]に棒人間が出力されます。
任意の [プロンプト]、[生成パラメータ]を入力して画像を生成します。
プロンプト、モデル、生成パラメータ情報は以下のとおりです。
左が[元画像]、真ん中が[元画像から抽出した棒人間]、右が[生成画像]になります。
棒人間を作成して同じポーズで画像を生成
ControlNet OpenPose Editerという拡張機能を使用して、棒人間を作成して同じポーズの画像を生成する方法を解説します。
手順は以下のとおりです。
[Extensions]タブの[URL for extension's git repository]に“https://github.com/fkunn1326/OpenPose-editor.git”を入力し、[Install]ボタンを押します。
[Installed]タブで[Apply and restart UI]ボタンを押して、変更を反映させます。
- [OpenPoseEditor]タブを開きます。
- [width]と[height]を生成する画像サイズに合わせます。
- 棒人間をマウスで編集します。
- [Send to txt2img]ボタンを押すと、txt2imgの画面に遷移します。
- txt2imgの画面に遷移したら、[Enable]にチェックを入れます。
- [Control Type]で[OpenPose]を選択します。
- [Preprocessor]で[none]を選択します。
- [Model]の[更新]アイコンをクリックします。
- [Model]のプルダウンメニューから[control_v11p_sd15_openpose_fp16.safetensors]を選択します。
プロンプト等を入力して画像を生成します。
左が[作成した棒人形]で、右が[生成した画像]になります。
元画像からポーズを抽出して棒人間を編集
ControlNet OpenPose Editerを使用して、画像からポーズを抽出して棒人間を編集する手順は以下のとおりです。
- [OpenPoseEditor]タブを開きます。
- [width]と[height]を生成する画像サイズに合わせます。
- [Detect from Image]ボタンを押し、ローカルPCから元画像をアップロードします。
- しばらくすると棒人間が表示されます。棒人間をマウスで編集します。
- [Send to txt2img]ボタンを押すと、txt2imgの画面に遷移します。
- txt2imgの画面に遷移したら、[Enable]にチェックを入れます。
- [Control Type]で[OpenPose]を選択します。
- [Preprocessor]で[none]を選択します。
- [Model]の[更新]アイコンをクリックします。
- [Model]のプルダウンメニューから[control_v11p_sd15_openpose_fp16.safetensors]を選択します。
プロンプト等を入力して画像を生成します。
左が[元画像]、真ん中が[元画像から抽出した棒人間]、右が[生成画像]になります。
プリプロセッサの種類
[Preprocessor]で選べるモデルは以下のとおりです。
モデルによって抽出できる範囲が異なります。
OpenPose:全身の検出モデル
dw_OpenPose_full:顔+手+全身の検出モデル(OpenPose_fullの新しいバージョン)
OpenPose_full:顔+手+全身の検出モデル
OpenPose_face:顔+全身の検出モデル
OpenPose_faceonly:顔の検出モデル
OpenPose_hand:手+全身の検出モデル
もっと自由な画像生成を
Stable Diffusionを実行する環境で、次のような悩みをお持ちではないでしょうか?
- 画像生成が遅い
- 使いたいGPUが使えない
- GPUメモリ(VRAM)が足りない
- ランタイムがリセットされる度にデータが消えるため、設定のやり直しが大変
- 画像データのバックアップが面倒
- Web UIの起動に時間がかかる
- コンピューティングユニットの制限がストレス
- 動作が不安定
制限を気にせず、高速かつ格安に画像生成がしたいなら、GPUクラウドサービス「GPUSOROBAN」がおすすめです。
まとめ
この記事では、Stable Diffusion Web UIでContorlNet OpenPoseを使用する方法を紹介しました。
OpenPoseを使うことで、元画像や棒人間と同じポーズの画像を生成できるようになります。
Stable DiffusionやControlNetに関する記事を以下のページでまとめていますので、あわせてご覧ください。