最近巷で話題の「ComfyUI」をご存知でしょうか?
Stable Diffusionの画像生成web UIとしては、AUTOMATIC1111が有名ですが、「ComfyUI」はSDXLへの対応の速さや、低スペックPCでもOKという性能の高さから注目を集めています。
今回は、そんな画像生成web UI「ComfyUI」の概要から導入方法、使い方まで詳しく解説していきます!
※Stable Diffusionの概要については、以下の記事で詳しく解説しています。
ComfyUIとは?
ComfyUIは、画像生成AIであるStable Diffusionを操作するためのツールの一つです。特に、ノードベースのUIを採用しており、さまざまなパーツをつなぐことで画像生成の流れを制御します。
Stable Diffusionの画像生成web UIとしては、AUTOMATIC1111が有名ですが、「ComfyUI」はSDXLへの対応の速さや、低スペックPCでもOKという性能の高さから注目を集めています。
ComfyUIの機能
ComfyUIは、基本的なStable Diffusionの機能(画像生成、モデル、拡張機能など)のほかにも、数えきれないほどの機能がありますので、表にまとめてみました。
特徴 | 補足 |
---|---|
SD1.x / SD2.x / SDXL / Stable Video Diffusionのサポート | さまざまな安定拡散モデルを完全にサポートしてくれる。画像やビデオの生成において、多様なオプションから選択ができる。 |
実行の間に変更したワークフローだけを再実行することで多くの最適化を実現する | 1度実行したワークフローのうちの変更された部分だけを再実行することで、全体の処理速度を上げる。 |
非同期のキューシステム | タスクが順番に処理されるのではなく、非同期で実行される。効率的なリソースの仕様ができるようになるため、待ち時間を減らすことができる。 |
GPUがなくてもしっかり動作する (–cpu) | GPUを必要とせず、CPUのみで動かすことが可能。GPUを持っていないユーザーでもComfyUIが利用できる。 |
3GB VRAM未満の低スペックなGPUでもしっかり動作する (–lowvram) | ‐ |
Hypernetwork | ネットワークが別のネットワークの重みを生成する構造のことを指す。モデルの柔軟性と適応性が向上する。 |
.ckpt / .saftensors / .diffusersのモデルやチェックポイントの読み込みが可能 | ‐ |
unCLIPモデル | CLIPモデルを逆に利用して、テキストから画像を生成する機能 |
TAESD | テキストから画像への生成や変数に関するアプローチのこと |
GLIGEN | 特定の生成タスクに最適化された生成モデルのこと。 |
LoRAに対応 (通常版 / LoCON / LoHA) | LoRA…学習済みモデルのアダプテーションを行うための技術。 新しいタスクやデータセットに対して、モデルを迅速に調整することができる。 |
Embedding / Textual Inversionに対応 | 特定の画像やコンセプトを表現するために、テキストや画像ら生成された埋め込みを利用する機能が使える。 |
ワークフローをJSONで保存・読み込みが可能 | ワークフローをJSON形式で保存し、後で読み込むことができる。このため、プロジェクトの再現性が向上する。 |
Control Net / T2l-Adapter | 特定の制御構造やテキストから画像への変換を可能にするアダプターorネットワークのこと。 (Stable DiffusionのControlNetと同じ機能) |
生成したPNG画像からのワークフローの読み込みが可能 | 以前に生成したPNG画像を含んだワークフローを読み込んで、それをもとに新たな生成・編集ができる。 (Stable Diffusionのimg2imgに似た機能) |
Inpainting (通常のモデル / Inpaintingモデルどちらも対応) | 画像の一部を修復or変更するための機能。 (Stable DiffusionのInpaintに似た機能) |
Area Composition | 画像内の特定の領域に対して、異なる生成処理を行うことができる。 (Stable DiffusionのLatent Coupleに似た機能) |
アップスケール機能 (ESRGAN / ESRGAN variants / SeinlR / Swin2SRなど) | 生成した画像の解像度を向上させるための機能。 (Stable DiffusionのHires.fixに似た機能) |
モデルのマージ機能 | 複数のモデルの特性を組み合わせて、新しいモデルを生成する機能。 (Stable Diffusionのマージと同じ機能) |
LCMモデル/ LCM LoRA | LCMは特定のタスクに対して最適化されたモデルのことで、LCM LoRAはLoRAの技術を用いてこれらのモデルをさらに調整する手法。 |
コンフィグファイル | ComfyUIの動作をカスタマイズできる設定できるファイルのこと。自分のニーズに合わせてツールの動作を調整することができる。 |
ComfyUIのメリット
ComfyUIのメリットとしては、以下の3つの点が挙げられます。
①最新技術への対応の速さ
②カスタムノードという仕組みを採用した拡張性
③処理効率の良さ
①最新技術への対応の速さ:ComfyUIは最新の技術に迅速に対応するため、ユーザーは最新の画像生成技術をすぐに試すことができます。
②カスタムノードという仕組みを採用した拡張性:ComfyUIはノードベースのUIを採用しており、ユーザーが自由にワークフローを作成できます。これにより、ユーザーは自分のニーズに合わせて画像生成の流れをカスタマイズできます。さらに、生成処理の流れを可視化することもできるそうです。
③処理効率の良さ:ComfyUIは処理効率が良く、低スペックのPCでもそれなりに動作します。AUTOMATIC1111よりも操作性が軽くて使い勝手が良いです。
ただし、ComfyUIの自由度の高さから、初心者には少々とっつきにくい面もあります。しかし、一度使い方を覚えれば、その自由度と拡張性から非常に魅力的なツールとなります。
ComfyUIの使用例
「ComfyUIって大体どんな感じで利用するのかな~。」と思っている方は、ぜひ以下のリンクにアクセスしてみてください。
公式が機能別に詳しく紹介してくれています!
AUTOMATIC1111との違い
ComfyUIがAUTOMATIC1111より優れている点としては、以下のようなことが挙げられます。
- VRAMの使用効率が良いため、VRAM容量が少なめのグラフィックボードでも快適に利用でき、高容量のVRAMを搭載したグラフィックボードでは、大規模な画像生成が可能です。
- 8GB程度のVRAMを持つグラフィックボードでも、SDXLモデルを活用できますが、12GBのVRAMが望ましいです。
- 他のツールと比較して、生成速度が若干速いです。具体的には、コンマ数秒の差が出ることがあります。
- インストールの過程が非常に簡単で、拡張機能を除けばコマンドプロンプトの使用は基本的に不要です。
ComfyUIがAUTOMATIC1111より劣っている点としては、以下のようなことが挙げられます。
- UIの操作性が複雑なため、一般的な感覚では理解しにくい部分があります。
- 利用可能な拡張機能の数が限られているものの、数100種類は存在し、基本的な機能は他のツールと同様に提供されています。
- 日本語のドキュメントが不足しており、初心者にとっては取り組みにくい側面があります。
これらの点を踏まえると、ComfyUIというツール自体はVRAMの効率的な使用やインストールの簡単さといった強いメリットを持ちながらも、UIの使い勝手や日本語での情報の少なさの面で改善の余地があると言えそうですね。
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい
ComfyUIの導入方法
では、ComfyUIを導入する手順について解説していきます。
①ComfyUIのインストール
②モデル(チェックポイント)・VAEのダウンロード
③SDXL用のComfyUIを立ち上げる
では1つ1つ解説していきます!
①ComfyUIのインストール
まずは、こちらのComfyUIのGitHubページにアクセスし、『Direct link to download』というリンクをクリックして、7zファイルをダウンロードします。(大体3分程度かかります。)
ダウンロードが完了したら、解凍ツールを使用して各自お好きな場所に解凍してください!
ComfyUI_windows_portableの中身は次の通りです。
②モデル(チェックポイント)・VAEのダウンロード
続いては、フォルダ内の「\ComfyUI_windows_portable\ComfyUI
」を開きます。
普通はモデル・VAE・LoRAなどは、models内の該当するフォルダに配置しますが、ComfyUIではこれらをAUTOMATIC1111と共有することもできるんです。
モデルは容量が大きいため、UIごとに分割するのではなく、できるだけ共有する方が良いですよね?今回はその共有方法について解説します。
手順としては、
①「\ComfyUI_windows_portable\ComfyUI\extra_model_paths.yaml.example
」の赤文字部分を削除する
②「\ComfyUI_windows_portable\ComfyUI\extra_model_paths.yaml
」にする
③上記ファイルをテキストエディタで開く
④「base_path
」にAUTOMATIC1111のフォルダパスを指定する
⑤デフォルト設定の「path/to/stable-diffusion-webui/
」は、「#」をつけてコメントアウトする
これでモデル・VAE・LoRAなどの共有が完了できました!
③SDXL用のComfyUIを立ち上げる
そして最後に、ComfyUIにSDXL用のワークフローを読み込ませます!
こちらにアクセスしたら、1枚目の画像を保存してください。
そうしたら、「run_cpu.bat」または「run_nvidia_gpu.bat」をクリックしてComfyUIを立ち上げましょう!
ComfyUIを立ち上げたら、事前にダウンロードした画像ファイルをComfyUIの画面にドラッグ&ドロップしてください。そうしますと、画像に関連するワークフローが読み込まれ、ComfyUIの画面が変わります。
いろいろカスタマイズを行うと思いますが、基準となるワークフローですので保存しておきましょう!
ワークフローの保存方法
画面の右側にある「Save」をクリックすると、ワークフローに名前を付けるよう指示されるので、お好きなファイル名を入力してください。
そして「OK」をクリックすると、.json形式のファイルがダウンロードされます。
このワークフローを各自わかりやすい場所に保存して、必要な時には「Save」の下の「Load」から読み込むことで、いつでもこのワークフローを使用できますよ!
ComfyUIの使い方
では、ComfyUIの導入が完了したところで、実際に画像を生成してみましょう。
ComfyUIの基本的な操作
- 画面やノード(1つ1つの枠のこと)を動かしたい時は、マウスの左ボタンを押したままドラッグしてください。
- 画面のズームイン・ズームアウトは、マウスホイールを回転させるとできます。
- 右クリックメニューからはさまざまなオプションを利用でき、画面やノード上で実行できます。
- ノードを探したい場合、左ボタンでダブルクリックすると検索ウィンドウが開きます。ここから新しいノードの追加も可能です。
- 複数のノードを一度に選択して移動させたい場合は、Shiftキーを押しながらそれぞれのノードをクリックします。
ComfyUIで使えるショートカットキー
ComfyUIは以下のショートカットキーが使えますので、ぜひ活用してみてくださいね!
ショートカットキー | 意味 |
---|---|
Ctrl+Enter | 選択中のグラフをキューに追加し、生成を開始する |
Ctrl+Shift+Enter | 選択中のグラフをキューの先頭におき、優先的に生成を開始する |
Ctrl+Delete /Backspace | 現在あるグラフ全体を削除する |
R | グラフの内容を更新する |
Ctrl+S | 作業中のワークフローを保存する |
Ctrl+O | 保存されたワークフローを開く |
Ctrl+D | デフォルトのグラフを読み込む |
Ctrl+A | グラフ内の全ノードを一括で選択する |
Delete/Backspace | 選択中のノードを削除する |
Ctrl/Shift+Click | 個別にノードを選択し、選択範囲に追加する |
Shift+Drag | 複数選択したノードをまとめて移動する |
Double-Click LMB | ノードの迅速な検索メニューを開く |
Alt+C | 選択したノードを折りたたむor展開する |
Ctrl+M | 選択したノードのミュート状態を切り替える |
Ctrl+B | 選択したノードをバイパスし、そのノードをグラフから省略する |
Ctrl+C / Ctrl+V | ノードをコピー&ペーストする。接続は選択されたノードのみに保持される。 |
Ctrl+C / Ctrl+Shift+V | ノードをコピー&ペーストし、非選択ノードからの接続も維持する。 |
Space | ドラッグ操作でキャンバスを移動する |
Q | キューの表示を切り替える |
H | 履歴パネルの表示を切り替える |
テキストから画像を生成する方法(txt2img)
グラフの中の「CLIP Text Encoder」にプロンプトを入力し、「Load Checkpoint」にモデルを指定します。
最後に「Queue Prompt」をクリックするとグラフが実行されて、画像が生成されます。(処理中のノードは緑枠になっています。)
プロンプト
masterpiece, 8k, 1woman, long hair, upper body
保存された画像は、Googleドライブの「outputフォルダ」にあります。
何枚か画像を生成してみましたが、どれもクオリティが高く1枚約1~2秒で画像生成ができました。
どちらも約2秒で出来たとは思えないほど、クリアで美しい画像ですよね~!
【応用編】ComfyUIの活用方法
テキストから画像以外にも、たくさんの機能がありますのでComfyUIの活用方法についてご紹介していきますね。
ComfyUIでControlNetを使う方法
ComfyUIで拡張機能を使う方法
拡張機能を管理するComfyUI-Managerを使う方法
こちらの記事で詳しく解説しています!
ComfyUIでLoRAを使う方法
こちらの記事で詳しく解説しています!
ComfyUIでアップスケール(高解像度化)する方法
まとめ
いかがでしたでしょうか?
Google Colab版ComfyUIについて詳しく解説してきました。
今回のポイントをまとめると、以下のようになります。
- 「ComfyUI」とは、画像生成AIであるStable Diffusionを操作するためのツールの一つ。特に、ノードベースのUIを採用しており、さまざまなパーツをつなぐことで画像生成の流れを制御する。
- Stable Diffusionの画像生成web UIとしては、AUTOMATIC1111が有名だが、「ComfyUI」はSDXLへの対応の速さや、低スペックPCでもOKという性能の高さから注目を集めている。
- ComfyUIの機能は、基本的なStable Diffusionの機能(画像生成、モデル、拡張機能など)のほかにも、数えきれないほどの機能がある。
- ComfyUIのメリット
- ①最新技術への対応の速さ
- ②カスタムノードという仕組みを採用した拡張性
- ③処理効率の良さ
- 【結論】ComfyUIというツール自体はVRAMの効率的な使用やインストールの簡単さといった強いメリットを持ちながらも、UIの使い勝手や日本語での情報の少なさの面で改善の余地がある
ComfyUIはとっつきにくいと思われがちですが、1つ1つ手順を踏んで丁寧に操作していけば綺麗な画像が超高速で生成できることが分かったのではないでしょうか?
本記事が皆さんの画像生成の助けとなれば幸いです。
今後も、ComfyUIに関する記事を公開していきますので、ぜひチェックをお願い致します!
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい