今回もStable Diffusion XL(SDXL)に関する話題で、タイトルの通り
を丁寧に解説するという内容になっています。
以前、ノードベースのWeb UIである「ComfyUI」という画像生成ツールをご紹介しました。
このツールは画像生成処理の内容を視覚的に見ることができたり、自分で処理を組んだりすることができるので中級者に人気のWeb UIとなっています。
そしてこのComfyUI、最近登場したStable Diffusion XLを真っ先にサポートしたことで一時話題になりました。私は普段はStable Diffusion web UIを使っているのですが、ComfyUIでSDXLを動かすとVRAM使用量が少なくて済むなどメリットがあるようだったので今回実際に試してみることにしました。
ComfyUIでSDXLを動かすメリット
でははじめに、「SDXLを動かすならStable Diffusion web UIでいいんじゃないの?」と思っている方も多いかと思いますのでComfyUIを使うメリットを3つ挙げてみようと思います。
- VRAM使用量が少なくて済む
- refinerモデルを正式にサポートしている
- 動作が速い
VRAM使用量が少なくて済む
まず一つ目のメリットは、ComfyUIはVRAM使用量が少なくて済む点です。私の環境ではSDXLを使って画像生成した場合のVRAM使用量は
- ComfyUI:最大6.5GB程度
- Stable Diffusion web UI:最大11.8GB程度
とかなりの差が出ました。この結果からSDXLを動かす場合は確かにComfyUIのほうがVRAM使用量が少なく、Stable Diffusion web UIと比較すると半分程度のVRAM使用量で済むことが確認できました。
refinerモデルを正式にサポートしている
次に2つ目のメリットは、SDXLのrefinerモデルを既に正式にサポートしている点です。
執筆時点ではStable Diffusion web UIのほうはrefinerモデルにまだ完全に対応していないのですが、ComfyUIは既にSDXLに対応済みで簡単にrefinerモデルを使うことができます。
動作が速い
3つ目のメリットとして、ComfyUIは全体的に動作が速い点が挙げられます。
特に起動はStable Diffusion web UIよりもずっと速いです。普段起動が遅くて不便だな~という方にもComfyUIはおすすめです。
ComfyUIでSDXLを動かす方法まとめ
ではここからが本題で、ComfyUIでStable Diffusion XLを動かす方法を解説していきます。主な手順は次のとおりです。
- ComfyUIをインストールする
- Stable Diffusion XLのモデルをダウンロードする
- ComfyUIのワークフローを読み込む
- 必要な設定を行う
- 画像を生成する
それぞれ詳しく見ていきましょう。
手順1:ComfyUIをインストールする
まず、まだComfyUIを導入していない方は以前紹介したインストール方法を参考に導入を済ませておきましょう。
やり方は簡単で、圧縮ファイルをダウンロードして適当な場所に展開するだけで完了です。
手順2:Stable Diffusion XLのモデルをダウンロードする
次にStable Diffusion XLのモデルをまだお持ちでない場合は下記ページを参考にダウンロードを行ってください。
上記記事ではStable Diffusion web UI用の解説をしておりrefinerモデルは任意と書いていますが、先ほども書いた通りComfyUIではrefinerモデルを正式にサポート済みで普通に使えるのでそちらもダウンロードしましょう。要するに必要なモデルは次の2種類です。
- SDXL baseモデル
- SDXL refinerモデル
ダウンロードできたらこれらを所定のフォルダに移動させます。2つのモデルを下記のフォルダに入れてください。
手順3:ComfyUIのワークフローを読み込む
さてここまでできたらComfyUIを起動しましょう。ただそのままではSDXLを使えないので、SDXL用のワークフロー(※要するに処理の流れ)を読み込む必要があります。
SDXL用のワークフローは下記ページからダウンロードできます。
1枚目の「瓶に星空の風景が映っている画像」をダウンロードしましょう。一見すると綺麗な画像ですが、実は画像の中にワークフローの情報が埋め込まれているので、その画像をComfyUIの画面にドラッグ&ドロップすればOKです。ワークフローが読み込まれると下記のような画面になります。
手順4:必要な設定を行う
次に、このままだとサンプル通りの画像が生成されますので自分好みの画像を生成するにはいくつか設定を行う必要があります。主な設定項目は次のとおり。
- プロンプト&ネガティブプロンプト
- 画像解像度
- ステップ数
- KSampler
プロンプト&ネガティブプロンプト
まずはプロンプトとネガティブプロンプトを記入します。左の方に「Text Prompts」というノードのグループがあるので、そこにいつもどおり呪文を記入しましょう。
画像解像度
お次は画像解像度の設定です。メモ欄にある通り、SDXLでは推奨解像度が決まっているのでその通りの解像度に設定しましょう。
ステップ数
画像生成のステップ数を指定します。通常は20~30くらいの値を指定すればOKです。
KSampler
最後はサンプラーの設定です。baseモデル用とrefinerモデル用がありますのでそれぞれ設定しましょう。
- noise_seed:
デフォルトで値が入っていますが、一つ下の設定項目で「randomize」になっていれば画像を生成するたびにランダムに変わるので値を変更する必要はありません。 - control_after_generate:
生成のたびにシードをランダムにしたい場合は「randomize」を選択します。 - cfg:
CFGスケールです。画像をよりプロンプトに従わせたい場合は大きめの値を設定しましょう。 - sampler_name:
好きなサンプラーの種類を指定します。サンプラーは種類が多いので色々試してみましょう。
手順5:画像を生成する
これで設定が完了したのでようやく画像を生成できます。右下の黒いパネルの「Queue Prompt」ボタンを押すと処理が順番待ちになり、しばらくすると画像が生成されます。
おわりに
以上、ComfyUIでStable Diffusin XLを動かす方法をご紹介しました。
ComfyUIは若干取っつきにくい印象がありますが、SDXLを動かす場合はメリットが大きく便利なツールだと思います。特にStable Diffusion web UIだとVRAMが足りなくて試せないなぁ…とお悩みの方には救世主となりうるツールだと思いますので、ぜひ試してみてください。
この記事が何かしら参考になれば幸いです。