これまで筆者は「Stable Diffusion WebUI」を「Google Colab」上で動作させ、AI画像を生成する方法を紹介してきました。
第1回「話題の画像生成AIで実写みたいな絵を作る!Stable Diffusionで「BRAV5」を使う方法」
・リアルな画像が作れるAI作画モデルの「BRAV5」が動作する環境をGoogle Colab上に構築するまでの方法
第2回「画像生成AIで思い通りの画像を作る!「BRAV5」を使いこなすプロンプトのコツ」
・画像を生成するためのプロンプトの基本
第3回「プロンプトより簡単!「BRAV5」で“画像から画像を生成”するimg2imgのコツ」
・画像を元に生成することでより細かく生成される画像をコントロールする方法
そのStable Diffusion WebUIを利用できる画像生成AIサービス「ConoHa AI Canvas」を8月、GMOインターネットグループが提供開始しました。そこで今回は、狙い通りの画像がさらに生成しやすくなるStable Diffusionの拡張機能「ControlNet」を、ConoHa AI Canvasで扱う方法を解説します。
第1回「話題の画像生成AIで実写みたいな絵を作る!Stable Diffusionで「BRAV5」を使う方法」
・リアルな画像が作れるAI作画モデルの「BRAV5」が動作する環境をGoogle Colab上に構築するまでの方法
第2回「画像生成AIで思い通りの画像を作る!「BRAV5」を使いこなすプロンプトのコツ」
・画像を生成するためのプロンプトの基本
第3回「プロンプトより簡単!「BRAV5」で“画像から画像を生成”するimg2imgのコツ」
・画像を元に生成することでより細かく生成される画像をコントロールする方法
そのStable Diffusion WebUIを利用できる画像生成AIサービス「ConoHa AI Canvas」を8月、GMOインターネットグループが提供開始しました。そこで今回は、狙い通りの画像がさらに生成しやすくなるStable Diffusionの拡張機能「ControlNet」を、ConoHa AI Canvasで扱う方法を解説します。
ControlNetについて
Stable Diffusionで画像を生成するとき、細かな画像制御が困難なことはよくあります。ControlNetは、今までに紹介したプロンプトによる制御や、img2imgのような元画像を用いた制御よりも、はるかに強力な生成画像の制御手段です。
ControlNetは、以前取り上げたimg2imgとは異なり、特定のポーズや輪郭線のみを抽出する機能を持っています。img2imgでは元画像の色合いに大きく影響を受けますが、ControlNetでは色合いを受け継がずに、生成される画像のポーズや輪郭線だけを独立して扱えます。
ControlNetを使えば、既存の画像から特定のディテールを抽出し、それをもとに新たなビジュアルを生成することが可能になります。例えば、キャラクターのポーズを変更したり、輪郭線をもとにしてイラストを再構築したりする場合に便利です。
ControlNetの導入により、色調やテクスチャの調整、細かなディテールの微調整など、幅広いカスタマイズが可能となるのです。つまり、より詳細な画像調整が可能です。
それでは、ControlNetで何ができるのか、その機能の例を見ていきましょう!
ControlNetは、以前取り上げたimg2imgとは異なり、特定のポーズや輪郭線のみを抽出する機能を持っています。img2imgでは元画像の色合いに大きく影響を受けますが、ControlNetでは色合いを受け継がずに、生成される画像のポーズや輪郭線だけを独立して扱えます。
ControlNetを使えば、既存の画像から特定のディテールを抽出し、それをもとに新たなビジュアルを生成することが可能になります。例えば、キャラクターのポーズを変更したり、輪郭線をもとにしてイラストを再構築したりする場合に便利です。
ControlNetの導入により、色調やテクスチャの調整、細かなディテールの微調整など、幅広いカスタマイズが可能となるのです。つまり、より詳細な画像調整が可能です。
それでは、ControlNetで何ができるのか、その機能の例を見ていきましょう!
ControlNetのモデルと機能
ControlNetには、最新AIモデルに対応したStable Diffusion XL(SDXL)版もあります。ただ、SD1.5版の方が種類が充実していること、これまでの記事で扱ってきたBRAV5がSD1.5系列であることから、今回はSD1.5版のControlNetについて説明します。
ControlNetには対応する数多くのモデルと機能があるのですが、以下の画像をベースにして、それぞれの機能を紹介します。
ControlNetには対応する数多くのモデルと機能があるのですが、以下の画像をベースにして、それぞれの機能を紹介します。

ControlNetのモデルは“事前処理用”ということで「プリプロセッサ」と呼ばれます。ControlNetでは画像を読み込み、そこから特徴を抜き出したプリプロセス画像を作成します。例えば、ControlNetのモデルの1つ、「OpenPose」を利用すると、画像からポーズを抽出できます。元画像から実際に抽出したポーズが以下の画像です。プリプロセス画像は、このように元画像の特徴のみを抜き出した画像のことです。

それではControlNetの代表的なモデルをいくつか見てみましょう。いずれも画像は3枚セットで、1枚目が元画像、2枚目がプリプロセッサで変換したプリプロセス画像、3枚目がプリプロセスで抜き出した特徴量をもとにControlNetを使って変換した画像です。
OpenPose(ポーズ抽出)

OpenPoseは画像からポーズを抜き出して、ポーズが同じ画像を作れます。
プリプロセッサでは棒人間のような画像が作られ、それをもとに新しい画像を生成します。OpenPoseでは、人体の主要なキーポイント(目、鼻、首、肩、肘、手首、膝、足首)を検出します。これにより、人物のポーズを基本的なレベルで把握できます。
ポーズだけを維持して髪型を変えたり、服装を変えたり、さらには別人にしたり、場所を変更したりもできます。
非常に使い勝手がよいモデルですが、いつでも完璧なポーズが取れるわけではないことに注意してください。この例でも上半身のポーズしか取得できていないので、ポーズをもとにした生成では下半身が座った形に変わっています。
プリプロセッサでは棒人間のような画像が作られ、それをもとに新しい画像を生成します。OpenPoseでは、人体の主要なキーポイント(目、鼻、首、肩、肘、手首、膝、足首)を検出します。これにより、人物のポーズを基本的なレベルで把握できます。
ポーズだけを維持して髪型を変えたり、服装を変えたり、さらには別人にしたり、場所を変更したりもできます。
非常に使い勝手がよいモデルですが、いつでも完璧なポーズが取れるわけではないことに注意してください。この例でも上半身のポーズしか取得できていないので、ポーズをもとにした生成では下半身が座った形に変わっています。
Canny(エッジ検出)

Cannyは模様を含めた輪郭線を抽出します。
この機能は、画像の中でどこが「角」になっているかを見つけ出します。角とは、色がガラッと変わる場所のことです。建物の輪郭や機械のパーツなど、はっきりとした線が必要な画像を生成したいときに、非常に便利なツールです。
上の画像のように、顔の雰囲気をある程度維持しながら、髪の色を変えることもできます。
この機能は、画像の中でどこが「角」になっているかを見つけ出します。角とは、色がガラッと変わる場所のことです。建物の輪郭や機械のパーツなど、はっきりとした線が必要な画像を生成したいときに、非常に便利なツールです。
上の画像のように、顔の雰囲気をある程度維持しながら、髪の色を変えることもできます。
Segmentation(要素抽出)

Segmentationは、どういう形がどこにあるか、大体の要素をシルエットで抽出します。
この機能では画像をいくつかのパーツに分け、それぞれを識別します。例えば、画像の中の木、人、空などがどこにあるかを判断して、それぞれを異なるブロックに分けることができます。これにより、画像のどの部分が何であるかを生成モデルがより詳しく理解できます。
そこで元画像のシルエットだけを維持して表情を変えたり、服装を変えたりできます。例では、シルエットが保たれる範囲で顔の向きが変わり、クルマのデザインも大きく変わっています。
この機能では画像をいくつかのパーツに分け、それぞれを識別します。例えば、画像の中の木、人、空などがどこにあるかを判断して、それぞれを異なるブロックに分けることができます。これにより、画像のどの部分が何であるかを生成モデルがより詳しく理解できます。
そこで元画像のシルエットだけを維持して表情を変えたり、服装を変えたりできます。例では、シルエットが保たれる範囲で顔の向きが変わり、クルマのデザインも大きく変わっています。
Normal Map(凹凸抽出)

NomalMapは、画像の立体感を抽出するために使われます。
模様なのか凹凸なのかが区別できるようになり、光の当たり方も再現できます。例えば、平面の画像に光と影を加えて、山や凹凸があるように見せることや、凹凸のある背景を平らに見せることができます。
この例では屋外の写真を屋内に変更したのですが、人物のデザインはそれなりに保ちながら、クルマの部分の凹凸が室内装飾に変わっています。
模様なのか凹凸なのかが区別できるようになり、光の当たり方も再現できます。例えば、平面の画像に光と影を加えて、山や凹凸があるように見せることや、凹凸のある背景を平らに見せることができます。
この例では屋外の写真を屋内に変更したのですが、人物のデザインはそれなりに保ちながら、クルマの部分の凹凸が室内装飾に変わっています。
Soft Edge(強弱付きの輪郭線抽出)

Soft Edgeは強弱を付けた輪郭線を抽出できます。
この機能は、画像の角を自然に見せるために使われます。Cannyでは画像の線があまりにもくっきりしていて不自然に見えることがあるのですが、この機能を使うと、線をなめらかにして自然な印象にすることができます。また、線に強弱があるので服の皺も再現できます。
模様などの細かいところを取らない一方、顔の造形については強弱がある分Cannyより特徴を取れるので、個人的にはCannyより使い勝手がよいです。
この機能は、画像の角を自然に見せるために使われます。Cannyでは画像の線があまりにもくっきりしていて不自然に見えることがあるのですが、この機能を使うと、線をなめらかにして自然な印象にすることができます。また、線に強弱があるので服の皺も再現できます。
模様などの細かいところを取らない一方、顔の造形については強弱がある分Cannyより特徴を取れるので、個人的にはCannyより使い勝手がよいです。
Reference Only(参照)

Reference Onlyは、プリプロセッサを用いずに、特定の画像をもとにして、似たスタイルの新しい画像を作成するときに使います。
例えば、似たような髪型と服装で違う画像を作ることなどができます。これにより、既存のデザインをもとに、新しいバリエーションを創出することも可能です。
この画像では左足が作画崩壊してはいますが、顔立ち、髪型、服装が元の画像に似たような感じになっています。
例えば、似たような髪型と服装で違う画像を作ることなどができます。これにより、既存のデザインをもとに、新しいバリエーションを創出することも可能です。
この画像では左足が作画崩壊してはいますが、顔立ち、髪型、服装が元の画像に似たような感じになっています。
CannyとSoft Edgeの違いの詳細
CannyとSoft Edgeの違いをわかりやすくするために、チェックのパンツをはいた女性の画像を生成してみました。

この画像の女性をCannyとSoft Edge、それぞれを使って金髪に変更します。ControlNetでの反映のされ方を見るために、変更時のプロンプトにはあえて「tartan」(チェック)を入れていません。
まずはCannyの場合。
まずはCannyの場合。

パンツの色が変わっているのでわかりづらいですが、チェックらしい模様は出てきています。プリプロセス画像にもチェックの柄が出てきていますね。
続いてSoft Edgeの場合。
続いてSoft Edgeの場合。

完全に柄付きのパンツではなくデニムになりました。プリプロセス画像にもチェック柄はありません。ただし柄が完全になくなるわけではなく、胸のプリントのように大きなものは残っています。
先ほども書きましたが、筆者にとってはSoft Edgeの方が使い勝手がよいです。細かいところの反映よりも、大体の構図や雰囲気を似せたいケースの方が多いからです。
先ほども書きましたが、筆者にとってはSoft Edgeの方が使い勝手がよいです。細かいところの反映よりも、大体の構図や雰囲気を似せたいケースの方が多いからです。

小泉 勝志郎
株式会社テセラクト 代表取締役社長
シニアプログラミングネットワーク代表
震災復興活動の中で海藻・アカモクをモチーフにつくったキャラクター「渚の妖精ぎばさちゃん」を運営。Appleの開発者カンファレンスに「81歳のアプリ開発者」として招待された若宮正子さんへの教育をきっかけに、高齢者向けのプログラミング教育にも力を入れ、現在はコミュニティ「シニアプログラミングネットワーク」を運営する。2023年3月「第1回AIアートグランプリ」において「渚の妖精ぎばさちゃん」をテーマにした漫画で準グランプリを受賞するなど、生成AIにも造詣が深い。