このページの本文へ

Stable Diffusion入門 from Thailand 第10回

画像生成AI「Stable Diffusion」使い倒すならコレ! 「ComfyUI」基本の使い方

2024年02月16日 13時00分更新

文● 田口和裕

  • この記事をはてなブックマークに追加
  • 本文印刷

デフォルトワークフローをじっくり見る

 ではこのデフォルトワークフローに配置されたノードを1つずつ見ていく。なお視認性を高めるためノードを移動しているが、位置以外はデフォルトのままだ。

 解説のため「Stable Diffusion web UI(AUTOMATIC1111版、以降WebUIと呼ぶ)」と比べながら見ていく。

 まずはいちばん左に配置された「Load Checkpoint」ノード。これは文字通りCheckpoint(モデル)をロードするノードだ。パラメーターは「ckpt_name」のみ。

 これはWebUIの左上にある「Stable Diffusion checkpoint」を選択する部分にあたる。その右に配置されている「SD VAE」と「Clip skip」はデフォルトワークフローには含まれていない。

 もちろん使用するCheckpoint(モデル)は変更できる。モデルセレクターという理解で問題ないだろう。

 「Load Checkpoint」の右側には、「CLIP Text Encoder(Prompt)」ノードが2個並んでいる。

 CLIP(Contrastive Language–Image Pre-trainin)とは、OpenAIが開発した、画像とテキストを関連付けるAIモデルだ。

 このワークフローでは「CLIP Text Encoder(Prompt)」ノードにより、テキストプロンプトをAIが理解できる形(高次元の特徴ベクトル)にエンコードし、次のノードに渡すようになっている。

 同じノードが2つ用意されている理由は、勘のいい人ならわかるだろうが、「ポジティブ/ネガティブ」2つのプロンプトを入力できるようにするためだ。ノードから右に伸びたオレンジのケーブルがそれぞれ「positive」「negative」に接続されていることに注目。

 これはもちろん、WebUIのPositive/Negativeプロンプト入力欄に相当する。

 次は「Empty Latent Image」ノード。「空白の潜在画像」を出力するノードだ。画像サイズを決める「width」「height」と、一度に作成する画像の数を指定する「batch_size」が設定できる。

※画面はWebUI

 これは、WebUIではこちらのパラメーターにあたる。「Batch count」パラメーターは確認できなかったが、別のノードに用意されているかもしれない。

 「KSampler」という大きなノードでは、生成される画像の品質を最適化し、ユーザーが入力したプロンプトに対する追随性を高めるための各種処理をする。

※画面はWebUI

 パラメーターを1つずつ紹介していこう。

 「seed」は、画像のバリエーションを決める「シード値」を設定する。WebUIにおける(1)部分に相当。

 「control_after_generate」は、生成後にシード値をどうするかを設定する。「fixed=固定」「increment=プラス1」「decrement=マイナス1」「randomize=ランダムで値を決定」という種類がある。WebUIでシード値を「-1」にした状態だ。

 「steps」は、WebUIでは(2)の「Sampling steps」となり、モデルが画像を生成するまでの反復回数を設定する。回数が多いほど細かいディテールを反映した画像を作れるが、そのぶん処理時間は長くなる。

 「cfg」は、WebUIでは(3)の「CFG Scale」となる。この値は、AIがプロンプトにどれだけ強く従うかを制御する。値が高いほどプロンプトに忠実になるが、高すぎても画像が崩れがちになる。モデルによって適正値は異なる。

 「sampler_name」と「schduler」は、WebUIにおける(4)の「Samplling method」にあたり、使用するサンプラーを変更できるもの。「denoise」はアップスケーリング機能「Hires. fix」周りのパラメーターだ。

 「VAE Decode」ノードでは、VAE(変分オートエンコーダ)と呼ばれる仕組みで潜在空間にあるデータを実際の画像に変換する。

 「VAE Decode」ノードが変換した画像は、最後の「Save Image」ノードでストレージに保存されると共にノードにも表示される。

カテゴリートップへ

この連載の記事
ピックアップ