ControlNetの導入方法・種類について

Stable Diffusion

【Stable Diffusion】ControlNetの導入方法・種類について

※ 当サイトは、プロモーションが含まれます

 

もっと効率よくイメージする画像を生成したい

 

画像生成AIはなかなか1回で納得いく画像を生成するのが難しく、ガチャを回すとも言われています。

特にポーズの指定はプロンプトで作るのも初心者には難しいと感じてしまうでしょう。

 

今回はStable Diffusion の拡張機能「ControlNet 」を紹介します。

「ControlNet 」は、新たな条件を指定することで、さらに詳細な指示が通った画像を生成できます。

 

今回は「ControlNet 」の導入方法から、使い方までを初心者にもわかりやすく解説します。

 

こんな方におすすめ

  • 手や腕などのポーズを上手く作りたい
  • 同じ顔で画像を生成したい
  • 下書きの絵からリアルな画像を作りたい

 

「ControlNet 」でできること

 

「ControlNet 」はStable Diffusion の拡張機能のひとつです。

 

「ControlNet 」でできること

  • ポーズや構図を指定する
  • 同じ顔や服装を指定する
  • 手や指を修正する
  • 色や画風だけを変える
  • 線画に着色する
  • 下書きからリアルな画像を作る
  • 写真からイラストを作る

 

「ControlNet 」1つを導入するだけで、様々なことができるようになります。

特に人気の理由として「ポーズや構図の指定ができる」ということ。

 

GitHub - lllyasviel/ControlNet-v1-1-nightly: Nightly release of ControlNet 1.1
GitHub - lllyasviel/ControlNet-v1-1-nightly: Nightly release of ControlNet 1.1

Nightly release of ControlNet 1.1. Contribute to lllyasviel/ControlNet-v1-1-nightly development by c ...

github.com

 

「ControlNet 」導入方法

 

Stable Diffusionの導入についてはこちらをご覧ください。

Stable Diffusion 初心者 使い方
【初心者向け】Stable Diffusion使い方をマスターするためのステップ

Stable Diffusion(ステイブル・ディフュージョン)は、AI技術を活用して画像を生成するツールの一つ。 Stable Diffusionは他の画像生成AIツールと違い、使う機能が多く、より ...

続きを見る

 

「ControlNet 」の導入手順は

  1. Stable Diffusionに「ControlNet 」を導入する
  2. 「ControlNet 」のモデルをダウンロードする

 

1.Stable Diffusionに「ControlNet」を導入する

Stable Diffusionにまずは「ControlNet 」を導入します。

 

Stable Diffusionを立ち上げて[Extentions]タブを開きます。

次に[Install from URL]タブを開きます。

 

stable-diffusion-webui_拡張機能_install_from_URL

 

[URL for extension's git repository]の入力欄に

https://github.com/Mikubill/sd-webui-controlnet

と入力し[Install]をクリックします。

 

[Installed]タブを開きます。

 

ControlNet_導入_Installed

 

「ControlNet 」がインストールされているか確認します。

 

インストールしても表示されない場合は、「Apply and restart Ul」をクリックしてみてください。

それでも表示されない場合は、Stable Diffusionを再起動Stable Diffusion WebUIと、WebUIバッチの両方を再起動してみてください。

 

次に[txt2img]のタブを開きます。

 

ControlNet_導入完了

 

新たに「ControlNet 」の項目が増えました。

ここで一旦Stable Diffuison Web UIは閉じます。

 

2.「ControlNet 」のモデルをダウンロードする

 

ControlNetはモデルがないと使用することができません。

モデルを別途ダウンロードして、所定のフォルダに入れる必要があります。

 

ControlNetのモデルが配布されている、以下のリンクからダウンロードします。

 

「ControlNet 1.1」通常のモデルデータ

lllyasviel/ControlNet-v1-1 at main
lllyasviel/ControlNet-v1-1 at main

We’re on a journey to advance and democratize artificial intelligence through open source and open s ...

huggingface.co

 

通常のモデルデータは重いので、軽量化されたモデルデータもあります。

lllyasviel/ControlNet-v1-1 at main
lllyasviel/ControlNet-v1-1 at main

We’re on a journey to advance and democratize artificial intelligence through open source and open s ...

huggingface.co

 

ファイルの通常版と軽量版

通常版は大きいサイズで[pth]と[yami]の2種類のファイルがあります。

公式pthファイルを初めて使う場合は[yaml]ファイルはダウンロードする必要はありません。

モデルにアップデートがあり、新しいものに置き換えたい場合はyamlファイルもダウンロードします。

軽量版は[safetensors]というファイルで通常容量の半分に抑えられていますが、一部で公式版と異なる挙動をすることがあるようです。

 

今回は軽量版の導入について説明します。

 

control_v11p_sd15_〇〇〇〇_fp16.safetensors

という名前が該当ファイルになります。

 

ControlNet_モデルダウンロード一覧

 

ControlNetのモデルは1つではなく、沢山の種類がありますので後ほど簡単な説明をします。

重くなると動作に不安がある方は、必要なものから導入していいと思います。

 

ダウンロードしたモデルは、

stable-diffusion-webui→extensions→sd-webui-controlnet→modelsのフォルダ内に入れます。

 

「ControlNet 」のモデルの種類について

 

ファイル名だけではどのような効果があるか分かりづらいので、簡単な説明をします。

 

openpose

ControlNetでよく使われるモデル。「棒人間」と言われるもの。

 

元となる画像から人体のキーポイント(棒人間)を検出し、新たに画像を生成します。

ポーズ変更したい時などに便利です。

 

canny

元となる画像から線画を抽出し、その線画から画像を生成します

元画像の線(輪郭)を使うので、色の変更などに使えます。

 

ポーズだけでなく、顔や髪型・服装も同じように生成しやすいです。

 

depth

元画像の奥行きを表現したい時などに使用します。

 

depthの種類

  • depth_leres
  • depth_leres++
  • depth_midas
  • depth_zoe

 

reference

元の画像と同じようなスタイルで、ポーズや背景を変えて画像を生成できる機能です。

同じキャラクターを生成したい時に大変便利です。

 

scribble

手書きのような画像、ラフの線画から画像を生成します

 

inpaint

元画像の一部分の変更、例えば手や、指などを指定すると修正ができます。

一部分だけ編集したい時に便利です。

 

tile

高解像度の画像を生成するためのモデル。

画像を拡大して高画質化できます。

 

lineart

線画を作成し、それを元に画像を生成します。

線画を元にControlNetで色も塗ってくれます。

 

lineartには種類があり、イラスト向けのものもあります。

 

Lineartのプリプロセッサ

  • lineart_anime
  • lineart_anime_denoise
  •  lineart_coarse
  •  lineart_realistic
  •  lineart_standad(from white bg & black line)

 

softedge

ソフトな輪郭を使って画像を生成します。

cannyやLineartよりもより細かな細い線を抽出することができます。

 

ディテールを維持するのが得意なため、色変更等に活用できます。

 

Soft Edgeのプリプロセッサ

  • softedge_hed:元画像に最も忠実な線画を抽出
  • softedge_hedsafe:softedge_hedより抽出精度を下がるが、不自然にならない
  • softedge_pidinet:softedge_hedより細かく線を抽出
  • softedge_pidisafe:softedge_pidinetより精度を下がるが、不自然にならない

 

shuffle

画像をシャッフルし再構成することで画像を生成します。

元画像の雰囲気を維持して新しく画像を生成する時に使えます。

 

ip2p

「Instruct Pix2Pix」を使用して、プロンプトにより画像を修正。

元画像を固定して、プロンプトの指示で何度も修正ができます。

 

mlsd

直線的な線を抽出して画像を生成します。

建物などの構造物の画像生成に使えます。

 

seg

「セマンティックセグメンテーション」の手法を使います。

自動で検出して、パーツごとに色分けしてくれます。

 

構図や配置などは維持し、違う画像が生成ができます。

人物よりは、建物などの構造物の画像生成に使えます。

 

セグメンテーションの種類

  • seg_ofade20k
  • seg_ofcoco
  • seg_ufade20k

 

normalbae

法線マップを使って画像を生成します。

 

まとめ

 

「ControlNet 」と言っても沢山の種類があり、全て使うとは限りません。1つずつ使いたいものから導入していくのがラクです。

 

初心者の方が、「ControlNet 」を導入するには少し情報量が多く感じるかもしれませんが、プロンプトで指示を出すよりも効率が良いですし、

「openpose」や「canny」も使い方は難しくないので、早めに導入すると快適な生成生活が送れると思います。

Stable Diffusionおすすめ書籍

Stable Diffusion関連書籍

Stable Diffusionスタートから応用まで学べる1冊

Stable Diffusion LORAの使い方までしっかりカバー

Stable Diffusionまとめ

Embedding

VAE

拡張機能

Stable Diffusion記事一覧

関連記事

-Stable Diffusion