たねやつの木
こんにちは、たねやつです。
今日から、ノードベースのUIが特徴的な画像生成ツール「ComfyUI」についての連載を始めていきたいと思います!Stable Diffusion WebUI(AUTOMATIC1111版)に慣れていると最初は少し戸惑うかもしれませんが、処理の流れが視覚的にわかるため、慣れると非常に柔軟で強力なツールです。
今回は、ComfyUIのインストールから、最も基本的な「Text to Image(テキストから画像を生成する)」ワークフローを組んで、最初の1枚を生成するところまでを解説します。
- この記事でできること
- 事前に必要なもの
- 手順
- ComfyUIのインストール
- チェックポイントモデルの配置
- ComfyUIの起動
- 基本的なワークフローを構築する
- ノード接続の概要
- プロンプトの入力と画像生成
- 最後に
- 次の記事
- ComfyUIのインストール方法がわかる
- ComfyUIの起動方法と画面の見方がわかる
- 最もシンプルなText to Imageのワークフローが組める
- プロンプトを入力して最初の画像を生成できる
- NVIDIA製GPUを搭載したPC: VRAMが8GB以上あると快適です。
- Stable Diffusionのチェックポイントモデル: いわゆる「モデル」や「ckpt」と呼ばれるファイルです。今回は、基本となるSD-XLなど、SD-XL系のモデルを準備している前提で進めます。
MSI GeForce RTX 3060 VENTUS 2X 12G OC グラフィックスボード VD7553
Amazon 手順 ComfyUIのインストールまずはComfyUI本体をPCにインストールします。Windowsの場合簡単なインストーラーがあるのでそれを使用します。
チェックポイントモデルの配置次に、画像生成の核となるチェックポイントモデルを、ComfyUIが認識できる場所に配置します。特に手元にない場合はSD-XLあたりを使用しましょう。以下のHuggingFaceのページからダウンロードできます。
files and versions から sd_xl_base_1.0.safetensorsをダウンロードします。
- 先ほど作成されたComfyUIフォルダの中に、modelsというフォルダがあります。
- さらにその中のcheckpointsフォルダを開きます。
- このComfyUI/models/checkpoints/に、お手持ちのStable Diffusionモデル(.safetensorsまたは.ckptファイル)をコピーしてください。
いよいよComfyUIを起動します。作成されたショートカットを起動すると黒い画面で処理が進み必要なファイルをインストールしますので気長に待ちます。
基本的なワークフローを構築する起動すると、デフォルトのワークフローが表示されています。今回は、処理の流れを理解するために、一度画面をクリアしてゼロからワークフローを組んでみましょう。右側のメニューにある「Clear」ボタンを押すと、すべてのノードが消去されます。
画面の何もないところをダブルクリックすると、ノードを検索するメニューが表示されます。ここから必要なノードを追加し、繋いでいきます。
Load Checkpoint (チェックポイントを読み込む):
- ダブルクリックし、Load Checkpointを検索して追加します。
- 左上のプルダウンから、先ほど配置したモデルファイルを選択します。
CLIP Text Encode (プロンプト入力):
- CLIP Text Encode (Prompt)を検索して追加します。これがポジティブプロンプト(生成したい内容)の入力欄になります。
- もう一つ同じノードを追加し、そちらはネガティブプロンプト(生成してほしくない内容)用とします。
Empty Latent Image (空の潜在画像 / 生成画像の土台):
- Empty Latent Imageを追加します。これは、ノイズの海、つまり画像生成の元となるキャンバスの役割を果たします。
- width(幅)とheight(高さ)を512に設定しておきましょう。
KSampler (画像生成の心臓部):
- KSamplerを追加します。これが、プロンプトとノイズの土台から画像を生成する最も重要なノードです。
- 各ノードの出力を、KSamplerの対応する入力にドラッグ&ドロップで繋いでいきます。
- Load CheckpointのMODEL → KSamplerのmodel
- Load CheckpointのCLIP → ポジティブ/ネガティブプロンプトノードのCLIP
- ポジティブプロンプトノードのCONDITIONING → KSamplerのpositive
- ネガティブプロンプトノードのCONDITIONING → KSamplerのnegative
- Empty Latent ImageのLATENT → KSamplerのlatent_image
VAE Decode (人間が見える画像に変換):
- VAE Decodeを追加します。KSamplerが生成した潜在空間の画像(Latent)を、私たちが普段見るピクセル画像に変換します。
- Load CheckpointのVAE → VAE Decodeのvae
- KSamplerのLATENT → VAE Decodeのlatent
Save Image (画像の保存):
- Save Imageを追加します。最終的に生成された画像を保存し、画面上にプレビュー表示します。
- VAE DecodeのIMAGE → Save Imageのimages
ここで構築したワークフローのデータの流れをまとめると、以下のようになります。
- Checkpointから供給される情報
- MODEL: サンプリング(画像生成)の核となるモデル情報 -> KSamplerへ
- CLIP: プロンプトを解釈するためのモデル情報 -> CLIP Text Encode (Positive/Negative)へ
- VAE: 潜在表現をピクセル画像に変換するための情報 -> VAE Decodeへ
- プロンプトから供給される情報
- CONDITIONING: 解釈済みのプロンプト情報 -> KSampler (positive/negative)へ
- Latent (潜在表現)の流れ
- Empty Latent Imageで生成された空のLatent
- -> KSamplerで画像情報が書き込まれる
- -> VAE Decodeでピクセル画像に変換される
- 最終的な画像の出力
- VAE Decodeで変換されたIMAGE
- -> Save Imageで保存・プレビュー
このように、各ノードがバケツリレーのようにデータを渡していくことで、一枚の画像が生成されます。
最終的に、以下のようなワークフローが完成します。
プロンプトの入力と画像生成ワークフローが完成したら、いよいよ画像を生成します。
- ポジティブプロンプトの入力欄に1girl, best qualityと入力します。
- ネガティブプロンプトの入力欄にlow quality, worst quality, uglyと入力します。
- 右側のメニューにある「Queue Prompt」ボタンをクリックします。
処理が始まると、実行中のノードが緑色にハイライトされます。処理が完了すると、Save Imageノードに生成された画像が表示されます。
おめでとうございます!これでComfyUIで最初の画像を生成することができました!
最後に今回は、ComfyUIのインストールから基本的なText to Imageまでの一連の流れを解説しました。 ノードを一つ一つ繋いでいく作業は、最初は面倒に感じるかもしれませんが、「モデルを読み込み、プロンプトを解釈し、ノイズから画像を生成し、最後に見える形に変換する」という画像生成の裏側の仕組みが直感的に理解できるのがComfyUIの最大のメリットです。
この基本のワークフローが、今後のあらゆる応用テクニックの土台となります。
次の記事次回は、特定のキャラクターや画風を再現するための必須テクニック、「LoRA」をこのワークフローに適用する方法を解説します。
【ComfyUI画像生成】LoRAの適用方法と強度の調整