求める画像を生成するために、プロンプトだけでは物足りないですよね?
そんな時、ControlNetが助けになります!
ControlNetは画像生成の制御性を大幅に向上させる革新的な技術として注目を集めています。特に、最新のSDXL(Stable Diffusion XL)モデルと組み合わせることで、その威力は一層増しています。
こんにちわ、AICU media編集部です。
「ComfyUI マスターガイド」第25回目になります。
本記事では、ComfyUIを使用してSDXLでControlNetを活用する方法を、初心者の方にも分かりやすく解説していきます。
前回はこちら
[ComfyMaster24] LoRAで表現をもっと自由に! スタイルを使いこなそう
ControlNetは、既存の画像生成モデルに「制御」の要素を加える技術です。従来の画像生成AIは、プロンプト(テキストによる指示)のみをネットワークに画像を生成していました。そのため、言語で表現しきれない要素はランダム性が強く、ユーザーの意図通りにならないことも多々ありました。ControlNetは、この問題を解決するために開発されました。
ControlNetを使用すると、プロンプトに加えて、追加の情報をAIに与えることができます。この追加情報には、画像の輪郭線、深度情報、ポーズ、セグメンテーションマップなど、様々な種類があります。AIはこれらの情報をもとに、よりユーザーの意図に合致した画像を生成することができるようになります。
簡単に言えば、従来のモデルが「自由に絵を描くアーティスト」だとすれば、ControlNetは「具体的な指示を出せるアートディレクター」のような役割を果たします。
ControlNetには、様々な種類があります。それぞれが異なる種類の条件に対応しており、用途も異なります。ここでは、代表的なControlNetの種類とその用途について解説します。
入力画像からエッジ(輪郭線)を検出し、そのエッジを元に画像を生成します。エッジ検出には、Cannyアルゴリズムと呼ばれる手法が用いられます。Cannyアルゴリズムは、ノイズの影響を受けにくく、正確なエッジを検出することができるため、ControlNetで広く利用されています。
主に以下のような用途で使用されます。
入力画像の奥行き情報を利用して、立体感のある画像を生成します。奥行き情報は、画像中の各ピクセルがカメラからどれだけ離れているかを表す情報です。深度マップは、白黒画像で表現され、白い部分が近く、黒い部分が遠くを表します。
主に以下のような用途で使用されます。
入力画像から人間の骨格情報(ポーズ)を推定し、そのポーズを元に画像を生成します。ポーズ推定には、OpenPoseなどのAIモデルが用いられます。OpenPoseは、画像から人間の関節の位置を検出し、骨格を推定することができます。
主に以下のような用途で使用されます。
簡単な手描きの線画から、詳細な画像を生成します。Scribble ControlNetは、線画を元に、画像の内容を推定し、その内容に沿った画像を生成します。
主に以下のような用途で使用されます。
入力画像を複数の領域に分割し、各領域にラベルを付けたものです。セグメンテーションマップは、画像中のどの部分がどのオブジェクトに対応するかをAIに教えるために使用されます。
主に以下のような用途で使用されます。
HED boundary(Holistically-Nested Edge Detection)は、画像からエッジ(境界線)を検出するControlNetです。Canny Edgeと同様に画像の輪郭を捉えますが、HED boundaryはより繊細で複雑なエッジを検出することに特化しています。これは、人物の髪の毛や衣服の細かい模様、自然風景の複雑な葉っぱの形状など、Canny Edgeでは捉えきれない微細なエッジを検出できることを意味します。
主に以下のような用途で使用されます。
Normal map(法線マップ)は、画像の表面の向きを表す情報です。各ピクセルに、その地点における表面の法線ベクトル(表面に対して垂直なベクトル)の情報が格納されています。法線マップは、3Dグラフィックスで物体の表面の陰影や反射を表現するために広く使われています。
ControlNetにおけるNormal mapは、この法線マップの情報を利用して、立体感や陰影をより精密に制御することができます。
主に以下のような用途で使用されます。
Lineartは、画像から線画を抽出するControlNetです。Canny EdgeやHED boundaryも線画を検出できますが、Lineartは特にアニメや漫画のような線画スタイルの画像に特化しています。
主に以下のような用途で使用されます。
Pidi (Softedge) は、画像からソフトなエッジを検出するControlNetです。Canny EdgeやHED boundaryのようなシャープなエッジではなく、ぼかしのかかったような滑らかなエッジを抽出します。Pidiは、softedgeという別名でも知られています。
主に以下のような用途で使用されます。
TEEDは、Tiny and Efficient Edge Detector の略称で、軽量ながらも高精度なエッジ検出を行うControlNetです。わずか58Kのパラメータ数で、最先端モデルと比較してサイズが0.2%未満と非常に軽量なのが特徴です。
ControlNetにおいては、TEEDは入力画像からソフトなエッジを抽出し、それを元に画像生成を行います。Canny Edgeなどとは異なり、境界線がぼやけた、より自然で滑らかなエッジ検出を得意としています。特にSDXLとの組み合わせに最適化されています。
主に以下のような用途で使用されます。
MLSD (Multi-Level Line Segment Detector) は、画像から直線を検出することに特化したControlNetです。建物や道路、家具など、直線的な要素が多い画像から、正確な直線情報を抽出することができます。
主に以下のような用途で使用されます。
Tile は、入力画像をタイル状に繰り返し配置して、シームレスなパターンを生成するControlNetです。元絵の構図や特徴を維持した状態で画像生成が可能なため、
主に以下のような用途で使用されます。
ControlNetを使用するために、「ComfyUI’s ControlNet Auxiliary Preprocessors」をインストールします。標準ノードだけでもControlNetを使用できますが、本記事で紹介したControlNetの一部しか実現できません。そのため、カスタムノードをインストールし、使用できるControlNetの幅を広げます。ComfyUI’s ControlNet Auxiliary Preprocessorsは、ComfyUI Managerからインストール可能です。
以下がリポジトリになります。
https://github.com/Fannovel16/comfyui_controlnet_aux
https://cdn.iframe.ly/Q5NLoiy?v=1&app=1
ControlNetの使用には、プリプロセッサーモデルが必要になるため、そのモデルをダウンロードします。SDXLには、controlnet-union-sdxl-1.0という、これまでに紹介した各種ControlNetを1つに集約した便利なモデルがあります。今回は、このモデルを使用します。以下のリンクよりファイルをダウンロードし、Google Colabを使用しているDriveで「ComfyUI/models/controlnet」フォルダに格納してください。
https://huggingface.co/xinsir/controlnet-union-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors
ControlNetの参照元画像として以下の画像を使用します。
画像ファイルは、以下よりダウンロードください。
https://note.com/api/v2/attachments/download/c6c1a646ad8faf1778658c65e1ccde89
workflowは文末にて。
このワークフローは、入力された女性の画像の構造(深度情報)を保持しながら、指定されたプロンプトに基づいて男性の特徴を持つ新しい画像を生成します。結果として、元の画像の構図や照明条件を維持しつつ、全く異なる人物(男性)の画像が生成されることが期待されます。これは、ControlNetと深度マップを組み合わせた高度な画像変換・生成の例といえます。
以下に、このワークフローの主要な部分とその機能を図示し、詳細に説明します。
それでは、ワークフローを実行してみましょう。ControlNetの強度を0.40で生成してみます。以下が生成結果です。しっかりプロンプトに従った画像になっています。
参照元画像と比較してみましょう。構図を維持しながら、人物を変えることに成功しています。
次にControlNetの強度を0.80にしてみます。そうすると、参照元画像の女性に近づき、ポニーテールの中性的な男性の画像が生成されました。
反対に強度を0.10と低くしてみます。今度は参照元画像から離れ、体勢も変わってしまっています。
以下が強度別の生成結果になります。強度が高くなるにつれ、参照元画像に近づき、強度が小さくなるにつれ、参照元画像に似なくなっていることが分かります。
ControlNetは、画像生成AIの可能性を飛躍的に広げる革新的な技術です。輪郭線、深度情報、ポーズなど様々な条件をAIに与えることで、これまで以上にユーザーの意図を反映した画像生成が可能になります。この記事では、Canny Edge、Depth Map、Pose Estimationなど主要なControlNetの種類とその用途を紹介し、具体的なワークフロー例を通して、その驚くべき効果を実証しました。ControlNetを使いこなすことで、マーケティング素材の作成、イラストやデザイン制作、3Dモデリングなど、様々な分野で創造性を加速させることができます。ぜひ、ControlNetの力を体感し、あなたのクリエイティブな活動を新たなステージへと導いてください。
次回は、 ControlNetでイラストを精密に実写化!を紹介します。
乞うご期待!
https://note.com/aicu/n/n4fafc970da0a
X(Twitter)@AICUai もフォローよろしくお願いいたします!
画像生成AI「Stable Diffusion」特に「ComfyUI」を中心としたプロ向け映像制作・次世代の画像生成を学びたい方に向けたプランです。最新・実用的な記事を優先して、ゼロから学ぶ「ComfyUI」マガジンからまとめて購読できます。 メンバーシップ掲示板を使った質問も歓迎です。
ゼロから学ぶ「ComfyUI」マガジン
https://note.com/aicu/m/md2f2e57c0f3c
マガジン単体の販売は1件あたり500円を予定しております。
2件以上読むのであればメンバーシップ参加のほうがお得です!というのもメンバーシップ参加者にはもれなく「AICU Creator Union」へのDiscordリンクをお伝えし、メンバーオンリー掲示板の利用が可能になります。
https://note.com/aicu/membership/boards/61ab0aa9374e/posts/db2f06cd3487?from=self
もちろん、初月は無料でお試しいただけます!
毎日新鮮で確かな情報が配信されるAICUメンバーシップ。
退会率はとても低く、みなさまにご満足いただいております。
✨️オトクなメンバーシップについての詳細はこちら
この記事の続きはこちらから https://note.com/aicu/n/n151f019bcc92
Originally published at https://note.com on Oct 17, 2024.