Stable Diffusion - ControlNet入門(3)各プリプロセッサを理解する
この記事では、ControlNet のプリプロセッサの機能を解説します。
主なプリプロセッサ
Canny
アップロードした画像の輪郭(canny)を抽出し、それをもとに画像を生成します。
Depth
画像の深度を抽出します。手前にあるものと奥にあるものの区別がしっかりつきます。
OpenPose
画像の人物がとるポーズを3D座標として抽出します。身体だけでなく、顔の向きや表情も抽出します。
また、抽出された3D座標を編集することも可能です。
左腕の位置を低くすると、それに従って画像が生成されます。
Openpose には、openpose-full、openpose-hand、openpose-face、無印(openpose)などいくつか種類があります。hand は5本の指の座標の抽出、face は表情の抽出、full は全てを行います。
もっとも性能の高い full は処理が重くなります。表情が必要ない場合は hand や無印、手が映らないなら face や無印を使用するなど、用途に合わせて使い分けましょう。
Scribble / Sketch
画像から輪郭線を抽出しますが、Cannyよりも大まかに抽出します。「Scribble」は落書きや走り書きという意味です。自分で描いたスケッチを使うこともできます。
Recolor
画像の陰影を抽出し、陰影はそのままに画像の色を変更します。
LineArt
画像からより繊細に輪郭線を抽出します。
MLSD
画像から輪郭線を抽出しますが、Cannyなどとは異なり、簡易的な直線のみ抽出します。建造物などの描写に便利です。
SoftEdge
画像からやわらかいタッチで輪郭線を抽出します。
NomalMap
画像の法線マップを推定し抽出します。法線マップとは、奥行きや凹凸など面の向きをRGBに変換したもののことです。細かい奥行きを作ることができるため、3DCGのテクスチャマップなどに使用されます。
Segmentation
画像に含まれているものをそのオブジェクトごとに認識し、分割して、それをもとに画像を生成します。構図やもとからある要素をそのままに画像を生成したい時に使います。
Shuffle
元の画像の雰囲気を保ちつつ少し違う画像に変えます。キャラクターの差分を生成したい時や、少しランダム性が欲しいときに便利です。
Tile
主に画像のアップスケールに使用します。元の画像をタイルのように分割してそれぞれアップスケールすることで、高精度なアップスケールができます。
Inpaint
前の章で行ったインペイントと同じです。画像の任意の場所を塗りつぶして生成すると、その塗りつぶした箇所のみ新たに生成されます。
たくさんの機能で構成される ControlNet ですが、ひとつひとつのプリプロセッサは画像処理のテクニックによって構成されています。
それぞれの名前と機能は難しそうな専門用語に見えますが、歴史ある画像処理のテクニックであり、それぞれ異なる技術なので丁寧に試して、使える技術を覚えておいて損はありません!
謝辞:写真は全てフリー写真サイト「Pexels」からダウンロードしたものを使っています。
https://www.pexels.com/ja-jp/
ControlNet入門(1)
「ControlNetが難しい!」そう思ったあなたにオススメ
img2img 入門シリーズはこちらから。
※本ブログは発売予定の新刊書籍に収録される予定です。期間限定で先行公開中しています。
メンバー向けには先行してメンバーシップ版をお届けします
Stable Diffusionをお手軽に、しかもめっちゃ丁寧に学べてしまう情報をシリーズでお送りします。
メンバーは価値あるソースコードの入手や質問、依頼ができますので、お気軽にご参加いただければ幸いです!
この下にGoogle Colabで動作する「AUTOMATIC1111/Stable Diffusion WebUI」へのリンクを紹介しています。
メンバーシップ向けサポート掲示板はこちら!応援よろしくお願いします!
ここから先は
応援してくださる皆様へ!💖 いただいたサポートは、より良いコンテンツ制作、ライターさんの謝礼に役立てさせていただきます!