今回はStable Diffusionで画像を生成する際に、ControlNetでイラストの構図を指定して実行する方法について解説します。
ControlNetはStable DiffusionのWebUIであるAUTOMATIC1111の拡張機能として簡単に使用でき、生成する画像のキャラクターのポーズや構図を自由にコントロールできます。ぜひ活用してみてください。
また、当ブログのStable Diffusionに関する記事を以下のページでまとめていますので、あわせてご覧ください。

Stable Diffusionとは
Stable Diffusion(ステーブル・ディフュージョン)は2022年8月に無償公開された描画AIです。ユーザーがテキストでキーワードを指定することで、それに応じた画像が自動生成される仕組みとなっています。
NVIDIAのGPUを搭載していれば、ユーザ自身でStable Diffusionをインストールし、ローカル環境で実行することも可能です。
(出典:wikipedia)

AUTOMATIC1111のインストール
今回、使用するControlNetは、Stable DiffusionのWebUIであるAUTOMATIC1111の拡張機能としてインストールしたものを使用します。
ベースとなるAUTOMATIC1111については、以下の記事でセットアップ方法を解説していますので、事前にインストールを済ませておいてください。
ローカル環境
ローカルのPCでのセットアップ方法は以下となります。

Google Colaboratory
Google Colabでのセットアップは以下となります。

ControlNetのインストール
AUTOMATIC1111の環境を構築したら、ControlNetを拡張機能としてインストールします。
具体的なインストール手順は以下の記事で解説しています。

ControlNetで使用するポーズデータを作成する
AUTOMATIC1111とControlNetをセットアップしたら、実際にControlNetでキャラクターに取らせたいポーズをしていするためのポーズデータを作成します。
デザインドールで作成する
ポーズデータの作成には、無料で使えるデザインドール(DESIGN DOLL)というツールを使用します。
デザインドールのインストールと使い方を以下の記事で解説していますので、事前にポーズデータを作成しておいてください。

Openpose Editorで作成する
Openpose EditorというAUTOMATIC1111のUIを拡張するツールが公開されました。
Openpose Editorを使用することで、外部ツールを使うことなくAUTOMATIC1111のUI内でポーズデータを作成することができるようになりました。
Openpose Editorのインストール方法と使い方は、以下のページで解説しています。

OpenOpseを使ってイラストを生成
AUTOMATIC1111とControlNetをセットアップし、ポーズデータを用意したら実際にControlNetを使って画像生成をしていきます。
AUTOMATIC1111を起動したら以下のControlNetの項目をクリックして展開します。

ControlNetの項目を展開すると、構図の指定に使用する画像を読み込む項目がありますので、この赤枠のエリアにポーズファイルをドラッグ&ドロップしてください。

読み込みが完了すると以下のように、ポーズデータの画像が表示されます。
赤枠の部分の「Preprocessor」の項目で「openpose」を選択し、隣の「model」の項目で「control_openpose-fp16.safetensors」を選択します。

「Enable」にチェックを入れ、画像サイズを先ほど読み込んだポーズデータの画像サイズに設定します。

以上でControlNetの設定は完了です。
あとは通常の画像生成と同様にプロンプト、パラメータ等を入力して「Generate」ボタンをクリックすると、画像生成処理が実行されます。
実行結果
ここからは、実際にデザインドールで作成したポーズデータをControlNetで読み込み、ポーズを再現できるかを確認していきます。
使用したポーズデータ
まず、今回デザインドールで作成したポーズデータがこちらです。この画像を先ほどの手順でControlNetに読み込みます。

プロンプトは以下のようなものを用意しました。
ポジティブプロンプト
(best quality)+,(masterpiece)++,(ultra detailed)++, The big city of the near future. She is a girl in a hoodie standing alone.
ネガティブプロンプト
(low quality, worst quality)1.4, (bad anatomy)+, (inaccurate limb)1.3,bad composition, inaccurate eyes, extra digit,fewer digits,(extra arms)1.2,logo,text
以上の条件で画像を生成します。
Stable Diffusionで生成された画像
こちらが生成された画像です。
キャラクターのポーズは、デザインドールで作成したポーズデータがほぼそのまま再現されています。
また背景はプロンプト通りの近未来の都市が描かれています。

ControlNet生成時にOpenOpse検出した骨格図も出力されています。デザインドールのポーズから正しく骨格検出できていることが確認できました。

Stable Diffusionのローカル環境
Stable Diffusionを使用する際にGoogle ColaboratoryやWebサービスを利用されている方も多いかと思います。しかし、最近Google Colabの無料での使用範囲が大きく制限されたり、Webサービスでは月額費用がかかったりします。
欲しいイラストを生成するにはかなりの回数をトライする必要があるため、これらの制約に縛られることなく使用できるローカル環境を構築するのがおすすめです。
ローカルのPCに搭載するグラフィックボード
ローカルマシンで実行する上で重要になってくるのがグラフィックボードです。
Stable Diffusionでイラストを生成するために実行される推論処理を、グラフィックボード上のGPUを使って大幅に高速化することができます。
トライする回数が増えれば品質の高いイラストが生成される可能性が上がりますので、グラフィックボードは重要です。Stable Diffusionで使用するためのGPUは2022年に新たにNVIDIAから発売されたRTX4000シリーズのGPUとVRAM12GB以上のものがおすすめです。最近は半導体不足も一服したこともあり、新しい製品ながら価格が下がりつつあります。
エントリーモデルのGPU
予算を安く抑えたい方向けにはRTX4070を搭載したグラフィックボードがおすすめです。
予算に余裕がある方向け ミドル~ハイエンド
予算に余裕がある方向けにおすすめのRTX 4080、ビデオメモリ16GB以上搭載のモデルです。
大サイズの画像を高速に生成したい方向けのハイエンドGPU、RTX 4090 ビデオメモリ24GB搭載モデルです。
予算とパフォーマンスに合わせて選んでみてください。
画像生成AIについて学ぶ
動画学習プラットフォームUdemyでは、画像生成AIで高品質なイラストを生成する方法や、AIの内部で使われているアルゴリズムについて学べる講座が用意されています。
Udemyは講座単体で購入できるため安価で(セール時1500円くらいから購入できます)、PCが無くてもスマホでいつでもどこでも手軽に学習できます。
画像生成AIの使い方を学ぶ
Stable DiffusionやMidjourneyの使い方や活用方法を勉強したい方には、以下の講座がおすすめです。

画像生成AIの仕組みを学ぶ
画像生成AIの仕組みについて学びたい方には、以下の講座がおすすめです。
画像生成AIで使用される変分オートエンコーダやGANのアーキテクチャを理解することで、よりクオリティの高いイラストを生成することができます。

UdemyのStable Diffusionなど、AIアート関連の講座は海外のものも多いですが、ブラウザのリアルタイム翻訳機能を使うことで日本語字幕付きで視聴できます。
Udemyの海外講座の字幕を日本語化する方法
まとめ
今回はStable DiffusionでControlNetを使って、キャラクターのポーズを指定して画像生成する方法を解説しました。ControlNetを使用することにより、これまの画像ガチャではなく構図を完全にコントロールして画像を生成できるようになりますので、大幅に自由度があがります。ぜひ試してみてください。
また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。
スキルアップや副業にぜひ活用してみてください。

スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。
講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。

それでは、また次の記事でお会いしましょう。