ControlNet 1.1のインストール、使い方、新モデル・機能を徹底解説

ControlNet 1.1アップデートによりControlNetへのより多くの注目が集まり、ControlNetが効率的な画像生成に欠かせない拡張機能となりました。そこで今回はControlNet1.1で追加された新機能や改善された既存機能について解説します。本記事を読むことで次のような要望や疑問が解消されます。

  • ControlNet 1.1がなぜ注目されているの?
  • 新しく追加されて機能では何ができるの?
  • 既存機能、新機能のすべての機能のできることを網羅的に確認したい。
  1. ControlNet 1.1アップデートの概要
    1. 改善点1: 新たに機能が追加された
    2. 改善点2: 既存モデルの改善
    3. 改善点3: Reference Onlyモードの追加
  2. ControlNet 1.1アップデートのメリット
  3. ControlNet 1.1の利用方法
    1. ControlNetがインストールされていない場合
    2. ControlNetがインストールされている場合
      1. ソースコードをアップデート
      2. モデルのダウンロード
  4. ControlNet 1.1で新たに追加されたモデル
    1. 「Tile(実験的機能)」: 画像を高解像度化する方法
    2. 「Lineart」: 色々な線画を抽出して新しい画像を生成する方法
    3. 「Anime Lineart」: アニメスタイルの線画を作成する方法
    4. 「Shuffle(実験的機能)」: 参照元の画像を再構成する方法
    5. 「Instruct Pix2Pix(実験的機能)」: 画像の一部に変更指示を出す方法
    6. 「Inpaint」: 画像の部分的な修正と変更を行う方法
    7. 「Reference Only」: 利用範囲が広い機能
  5. ControlNet 1.1で改善されたモデル
    1. 「Segmentation」: 画像のセグメンテーションを行う方法
    2. 「Depth」: 画像の深度を解析する方法
    3. 「Normal」: 画像の法線マップを作成する方法
    4. 「MLSD」: 線分検出を行う方法
    5. 「Canny」: Cannyエッジ検出を利用する方法
    6. 「Soft Edge(※旧HED)」: ソフトエッジの検出を行う方法
    7. 「Scribble」: スクリブルを利用した画像編集の方法
    8. 「OpenPose」: ポーズ検出を行う方法
  6. 何から使い始めるのがおすすめ?
  7. 結論
  8. 参考リンク

ControlNet 1.1アップデートの概要

改善点1: 新たに機能が追加された

後ほど詳しく説明しますが、ControlNet 1.1アップデートが注目される要因としては、ControlNetで使えるモデルが大幅に増えたことです。モデルが増えると抽出できる特徴の種類が増えるので、それだけContorolNetが強化されます。

改善点2: 既存モデルの改善

ControlNet 1.1ではすでに存在する機能も改善されています。高品質なデータで既存モデルが学習されています。これによって精度が改善されています。

改善点3: Reference Onlyモードの追加

ControlNet 1.1でReference Onlyモードが追加されました。ただ画像を参照するだけなので特徴抽出モデルが不要です。ただ画像を参照するだけといっても汎用性がかなり高い機能です。Reference Onlyについては後ほど解説します。

ControlNet 1.1アップデートのメリット

ControlNet 1.1では大幅な変更が行われていてStable Diffusionによる画像生成の手段が増えることによって大幅に改善されます。特に新規に追加されたモデルのTileとLineart、Anime Lineartに関しては強力です。呪文(プロンプト)だけで画像を生成するよりも、既存の画像をベースにして画像生成することで試行錯誤の手間が削減されて、画像生成の手間が大幅に改善されます。以前のバージョンよりも抽出できる特徴が大幅に増えるので、使える画像の選択肢も増えます。

ControlNet 1.1の利用方法

ControlNetがインストールされていない場合

ControlNetがインストールされていない場合は、通常通りControlNetをインストールしてモデルをダウンロードするだけです。もしControlNetがインストールされてない場合は以下の記事を参考にControlNetをインストールしてください。

ControlNetがインストールされている場合

ControlNetがすでにインストールされている場合は次の2つの手順でアップデートできます。

  1. ソースコードをアップデート
  2. モデルのダウンロード

ソースコードをアップデート

拡張機能のタブへ移動して次の手順でソースコードをアップデートできます。

  1. “Check for updates”をクリックして拡張機能のアップデート情報を取得
  2. Updateする拡張機能を確認します。もしアップデートしたくない機能があればチェックを外します。
  3. “Apply and quit”で拡張機能がアップデートされてStable Diffusion Web UIが終了します。終了したらまたStable Diffusion Web UIを起動してください。

モデルのダウンロード

以下のページでControlNet 1.1のすべてのモデルが公開されています。ControlNetの各機能ごとにモデル(.pth)と設定ファイル(.yaml)があります。

モデルファイルは1つで1.4GBあるので、全部ダウンロードするとディスクを圧迫します。なので気になるモデルファイルをダウンロードするのでも大丈夫です。モデルファイルだけではなくyamlファイルも忘れずにダウンロードしてください。

lllyasviel/ControlNet-v1-1 at main
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

ControlNet 1.1で新たに追加されたモデル

「Tile(実験的機能)」: 画像を高解像度化する方法

「Tile」は画像をタイル状にして、それを元に画像を再構成する技術です。これを使うことで以下のようなことが実現できます。

画像のアップスケールと補正

画像のテクスチャ変換(左: 参照画像、右: 日焼けさせる呪文(プロンプト)を指定して生成された画像)

詳しくは以下の記事を参考にしてください。

「Lineart」: 色々な線画を抽出して新しい画像を生成する方法

「Lineart」は画像から線画を抽出して、線画に基づいて画像を生成する技術です。これを使うことで以下のようなことができるようになります。

スタイル変換(左: 参照画像、右: 生成された画像)

実写画像のイラスト化(左: 参照画像、右: 生成された画像)

他にも様々な活用方法があるのであります。利用方法や活用方法については次の記事を参考にしてください。

「Anime Lineart」: アニメスタイルの線画を作成する方法

「Anime Lineart」は基本的には「Lineart」と同じ機能です。画像から線画を抽出して、線画に基づいて画像を生成する技術です。1点異なる点としてはイラスト画像に特化した抽出ができるので、参照する画像が実写ではなくイラストの場合は「Anime Lineart」を使いましょう。これを使うことで以下のようなことができるようになります。

色塗り(左: 参照画像、右: 生成された画像)

線画やイラストの実写化(左: 参照画像、右: 生成された画像)

利用方法や活用方法について詳しく知りたい方は次の記事を参考にしてください。LineartとAnime Lineartについて解説しています。

「Shuffle(実験的機能)」: 参照元の画像を再構成する方法

Shuffleは参照画像の配色などを参考に画像を生成できる技術です。活用方法はそこまで多くはないですがシンプルな機能なので意外と使える場面も多いです。

左:参照画像、右:Shuffleで生成した女子校生の画像

左:参照画像、右:Shuffleで生成した女子校生の画像

使い方、活用方法について気になる方は次の記事を参考にしてみてください。

「Instruct Pix2Pix(実験的機能)」: 画像の一部に変更指示を出す方法

Instruct Pix2Pixは元々はStable Diffusionとは別に研究されていた画像変換技術です。なのでStable Diffusionのimg2imgとは異なる印象の変換ができます。得意な変更は部分的な画像変換というよりは全体の変換に強いです。

左:参照画像、右:Instruct Pix2Pixでシンデレラに変換した画像

詳しくは次の記事を参考にしてみてください。

「Inpaint」: 画像の部分的な修正と変更を行う方法

ContolNet 1.1から使えるInpaint(インペイント)機能です。インペイント機能はStable Diffusionにも用意されています。ただし、ControlNet 1.1のインペイントはLaMaなどの最新のインペイント技術が使えるので性能はインペイントよりも良い印象です。

髪型の変換(左: 参照画像、右: 髪をマスクしてインペイントしてショートカットを指定した画像)

不要なオブジェクトの除去(左: 参照画像、右: 黒板の掲示物などをマスクしてインペイントした画像)

詳しくは次の記事を参考にしてみてください。

「Reference Only」: 利用範囲が広い機能

Reference Onlyは呪文(プロンプト)で指定した以外の特徴を保持したまま画像を変換できる機能です。特に顔を維持したままポーズを変更したりできるので便利な機能です。また他のControlNetモデルと相性が良いので、組み合わせることでより的確に画像を生成することができます。

ポーズ、背景、服装の変換:

ControlNet 1.1で改善されたモデル

「Segmentation」: 画像のセグメンテーションを行う方法

画像のセグメンテーションを行います。大まかに画像の構造を抽出したいときに利用すると良いでしょう。

抽出したセグメンテーション画像

構図を元に生成(右: 参照画像、左: 女子校生の呪文(プロンプト)で生成した画像)

「Depth」: 画像の深度を解析する方法

深度を抽出するのがDepthモデルですDepthモデルを使うとセグメンテーションよりに奥行きが追加されるイメージです。次のようなことが実現できます。

テクスチャの変換(右: 参照画像、左: wooden roomという呪文(プロンプト)で生成した画像)

構図を元に生成(右: 参照画像、左: 女子校生の呪文(プロンプト)で生成した画像)

「Normal」: 画像の法線マップを作成する方法

法線マップを抽出するのがNormalモデルです。用途はDepthライブラリと同じですがDepthより細かく凹凸を抽出するので、より細かいデティールや骨格まで真似て画像を生成できます。

テクスチャの変換(右: 参照画像、左: wooden roomという呪文(プロンプト)で生成した画像)

構図を元に生成(右: 参照画像、左: 女子校生の呪文(プロンプト)で生成した画像)

「MLSD」: 線分検出を行う方法

直線のみを抽出するモデルです。無機質なもののテクスチャ変換に使えます。

「Canny」: Cannyエッジ検出を利用する方法

Cannyエッジ検出をする方法です。細かい線の抽出ができます。

Cannyエッジの抽出結果

活用事例は以下の通りです。

実写化

「Soft Edge(※旧HED)」: ソフトエッジの検出を行う方法

Soft EdgeはCannyよりも荒くなりますがその分、重要な線の抽出ができます。

Soft Edgeの抽出結果

活用事例は次の通りです。

実写化

「Scribble」: スクリブルを利用した画像編集の方法

ScribbleはSoft Edgeよりも荒く線の抽出ができます。

Scribbleの抽出結果

活用事例は次の通りです。

実写化

「OpenPose」: ポーズ検出を行う方法

Opneposeは自分物の画像から体、顔、手のパーツを抽出するモデルです。

以下は人の画像からポーズを抽出した画像です。

これを使うことで同じポーズでの画像生成を実現できます。

左: 参照画像、右: 生成した画像。

何から使い始めるのがおすすめ?

新機能を試すなら次の2つは試しておいて損はないです。

  • Tile
  • Lineart

既存機能の場合は次の3つはおすすめです。

  • OpenPose
  • Normal
  • Soft Edge

結論

ControlNetは今後、画像生成を極める上では欠かせない機能になります。ControlNetを使いこなすことで呪文(プロンプト)から画像を生成するよりも、既存の画像を使うことで画像生成が効率化されます。最初は面倒ですが、慣れるとControlNetなしの画像生成には戻れなくなります。それだけ素晴らしい機能なので、とりあえず興味を持ったものから使い始めてみることをおすすめします。

参考リンク

新情報を習得する場合に役立つリンクを共有します。

GitHub - lllyasviel/ControlNet: Let us control diffusion models!
Let us control diffusion models! Contribute to lllyasviel/ControlNet development by creating an account on GitHub.
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 creating an account o...

コメント