はじめに
AI 画像生成における一般的な課題の 1 つは、正確な アートディレクション を実現することです。プロンプトは画像の全体的なスタイルや内容を導くことはできますが、特定の 構図の詳細(画面の向きやオブジェクトの配置など)を制御する際には、しばしば不十分です。
この記事では、ControlNet を ComfyUI のワークフローで使うことで、これらの制限を克服する方法を探ります。ControlNet モデルを活用することで、線画やエッジマップなどの外部入力を使って、生成される画像の構図を導くことができます。このアプローチにより、画像生成プロセスにおいて、より高度な制御と精度を実現できます。
目次
問題点:構図におけるプロンプトの限界
例を考えてみましょう。画面の右を向いた犬の画像を生成するとします。「facing screen right,」と指定した丁寧に作り込んだプロンプトを使っても、Juggernaut XL 拡散モデル によって生成された画像は、この要件を満たしていません。画面の右を向く代わりに、犬は画面の左を向いています。
この結果は、重要な限界を浮き彫りにしています。拡散モデルやテキストエンコーダーは、空間的または方向性のあるプロンプトを理解するのが苦手なことがよくあります。唯一の代替策は、望ましい構図にたどり着くまでランダムにさまざまなシードを試すことですが、これは時間のかかる非効率なプロセスです。
ControlNet の紹介
ControlNet は、外部の画像ベースの conditioning をワークフローに取り入れることで解決策を提供します。参照画像を分析し、その構造や構図を生成される出力に適用することで機能します。
ControlNet モデルは、特定の拡散モデルと連携するよう設計されています。この例では、controlnet-scribble-sdxl-1.0 モデルを使います。これは SDXL の改良版拡散モデル と互換性があります。Scribble ControlNet はシンプルな線画を入力として受け付けるため、大まかな構図のガイダンスに最適です。
ComfyUI での ControlNet の設定
ステップ 1:ControlNet モデルのダウンロードとインストール
- controlnet-scribble-sdxl-1.0 モデルを次からダウンロードします:xinsir/controlnet-scribble-sdxl-1.0 at main。元の名前は diffusion_pytorch_model.safetensors です。
- モデルファイルを次のディレクトリに配置します:
/models/controlnetに置き、次の名前に変更します:controlnet-scribble-sdxl-1.0.safetensors です。モデルファイルを読み込むには、ComfyUI を再起動する必要があります。

ステップ 2:ワークフローの構築
ComfyUI では、ControlNet モデルを画像生成プロセスに統合するワークフローを作成する必要があります。
元のモデル:

次の手順に従ってください:
1. ControlNet モデルの読み込み
- Load ControlNet Model ノードを追加します。
- controlnet-scribble-sdxl-1.0 モデルをリストから選択します。

2. Apply ControlNet
- Apply ControlNet ノードを追加します。
- KSampler ノードから conditioning を切断し、代わりに Apply ControlNet ノードを経由して送ります。


3. 入力画像の読み込み
- Load Image ノードを追加します。
- 線画をアップロードします(例:望ましい構図のシンプルなスケッチ)。
- 画像を Apply ControlNet ノードに接続します。

4. 接続の完了
- ControlNet モデル を Apply ControlNet ノードに接続します。
- 必要に応じて、VAE を Apply ControlNet ノードに接続しておきます(この場合、結果には影響しませんが、完全を期すためです)。

ステップ 3:画像の生成
ワークフローが設定できたら、キューに入れて画像を生成します。ControlNet が、アップロードされた線画に基づいて構図を導きます。
元のスケッチ:

使用しているプロンプト:nature photography, dog, standing on the grass, daylight, (bokeh:1.5)
出力:

結果と改善
初期出力
ControlNet Scribble モデルを使うと、生成された犬は正しい構図に従うようになります。ただし、ControlNet の影響は既定で最大に設定されているため、入力された描画が不正確だったり単純すぎたりすると、不自然な結果になることがあります。
たとえば、アップロードされたスケッチに解剖学的な正確さが欠けていると、生成される画像が人工的または歪んで見えることがあります。
ControlNet の影響のバランス調整
これに対処するため、ControlNet の影響パラメーター を調整し、入力された描画と生成モデルの自然な改善とのバランスを取ることができます。これにより、モデルは欠けている細部を補いながら、望ましい構図に従い続けることができます。
ControlNet モデルの種類
ControlNet にはいくつかのバリエーションがあり、それぞれ特定のユースケースに合わせて作られています:
- Scribble ControlNet:大まかな構図のガイダンスのため、シンプルな線画を受け付けます。
- Canny ControlNet:入力画像からエッジの詳細を抽出し、構図を導きます。
- Depth ControlNet:深度情報を分析し、現実的な空間関係を持つ画像を作成します。
ニーズに応じて、ワークフローを導くのに適した ControlNet モデルを選択できます。
実用例
ControlNet は特に次の用途に役立ちます:
- 正確なオブジェクト配置:オブジェクトが特定の場所や向きに現れるようにすること。
- カスタム構図:テキストプロンプトだけでは説明しにくい、独自のレイアウトを実現すること。
- アートディレクション:外部のスケッチや参考資料と生成 AI を組み合わせ、創造的な出力を得ること。
結論
ComfyUI のワークフローで ControlNet を使うことで、画像の構図をより細かく制御でき、プロンプトベースの生成の限界に対処できます。線画などの外部入力を統合することで、オブジェクトの配置と向きを正確に導くことができます。
次のステップでは、ControlNet の影響のバランスを調整し、自然で視覚的に魅力的な結果が得られるよう試してみてください。アートプロジェクトでも特定のデザイン作業でも、ControlNet は AI 画像生成におけるクリエイティブな方向性に新たな可能性を開きます。