🤸

stable-diffusion-webuiで遊ぼう ~ControlNet 1.1のススメ~

2023/08/25に公開

はじめに

今回はstable-diffusion-webuiの革命的なプラグインであるControlNetを使ってお絵描きしてみようと思います。
そもそもstable-diffusion-webuiとは?どうやって遊ぶの?という方はもしよければ前回の記事をご覧ください。

https://zenn.dev/rick516/articles/b2fa914c2af1a9

ControlNetとは

Stable Diffusion WebUIのControlNetとは、ユーザーが構図やコンテンツをよりコントロールしながら画像を生成できるStable Diffusionをベースにした画期的なモデルです。ControlNetは画像生成プロセスにさらなる条件付けを加え、エッジ検出や人物のポーズ検出など、出力のさまざまな側面をユーザーが制御できるようにします。

ControlNetが当時解決した主な問題の1つは、空間的な一貫性の問題でした。以前は、入力画像のどの部分を残すべきかをAIモデルに指示する効率的な方法はありませんでした。ControlNetによって、私たちは任意の追加条件を指定することで再現性高く作品を生成できるようになりました。

今回は、ControlNetの中でも有名なOpenPoseという画像からポーズや表情のみを抽出して画像生成に利用することができるモデルを利用して画像生成をします。

今回やること

  • ControlNet 1.1の環境構築
  • Openposeモデルを使ったtxt2imgの画像生成

Preprocessorとは?

プリプロセッサとは、メインAIモデルに入力される前に入力データを処理するコンポーネントです。入力データを準備し、モデルが理解し効率的に作業できる形式に変換するために使用されます。

今回はopenposeモデルを利用するのでopenpose_fullを選択しましたが、モデルによってはpreprocessorがないケースもあります。基本はモデルに一致させましょう。

Modelとは?

モデルとは、特定の入力条件に基づいて画像を生成するためにControlNetと連携する、事前に訓練されたニューラルネットワークを指します。エッジ検出、人間のポーズ検出、深度マップ生成などの特定のタスクを実行するように設計されています。

モデルごとにできることが違うので用途に合わせて使い分けましょう。
以下の記事はとてもわかりやすいのでもしよければご覧ください。
https://kurokumasoft.com/2023/04/19/controlnet-new-features/

環境構築

それでは、環境構築をしていきましょう。

  1. stable-diffusion-webuiにControlNet拡張機能をインストールする
  • ブラウザでWebUIを開きます。
  • 次に、"Extension"タブから"Available"を開き"Load from "をクリックして利用可能なのリストをロードします。
  • controlnet "を検索し、リストの中に "sd-webui-controlnet "と"openpose-editor"を見つけクリックすればインストールされます。
  • なお、本記事では現時点(2023/08/25)で最新のControleNet-v1.1を利用するためアップデートをご確認ください。
  1. modelをダウンロードして設定する
  • HuggingFace ControlNet-v1-1から利用するモデルファイル(.pth)をダウンロードします。
  • 1GB以上あるので、今回は利用するopenpose(ポーズのみ検出するモデル)のみダウンロードします。
  • ダウンロードしたファイルを./extensions/sd-webui-controlnet/modelsに配置します。
    • models/controlNetではありません

ControlNet 1.1を利用して画像を生成する

それでは、ControlNetを利用して画像を生成していきましょう。
まずは素材となる構図を探しましょう。

今回はこちらのフリー素材(PAKUTASO様より)をお借りします。

そして、txt2imgの下部にControlNet 1.1のセクションがあるので以下の操作をします。

  • 対象の画像をアップロードする
  • "enable"にチェックを入れる
  • Preprocessorに"openpose_full"を指定する
  • モデルに"contorol_openpose_fp16"を指定する

できました!このように自由にポーズを検出して好きな構図でイラストを生成することができます。
生成された画像をもとに、異なる画像も生成してみましょう。

先ほど生成した画像をControlNetの素材としてアップロードします。

プロンプトに「朝のベッド」「白髪」「青い瞳」などを加えてみましょう。

 masterpiece, best quality, extreme detailed, beautiful detailed face, delicate best hands , (1girl, solo):2.0, black sweatshirt, beautiful blue eyes, cute, white hair, fullbody, pale skin, tokyo city, 4k, super-real, bed in the morning, soft focus , light gradation watercolor , lens flare , glitter , glow , dreamy

できました!ControlNetによって再現性高くイラストを生成できるため、今後商用利用の可能性が広がっていきそうですね。

Discussion