CLIPTextEncode

(comfyanonymous/ComfyUI)
conditioning/CLIP Text Encode (Prompt)
プロンプトテキストを CLIP でエンコードする

プロンプトテキストを CLIP text encoder が解釈できるトークンに分解し、encoder で embeddings にエンコードします。 textual inversion (TI) の embeddings の読み込みと適用、トークンの重み修正も行います。 プロンプトの仕様については、テキストプロンプトの仕様 (A1111 との違い) を参照してください。

LoRA や Hypernetwork に関しては、ComfyUI ではプロンプト内で指定するのではなく、それぞれ LoraLoaderHypernetworkLoader で読み込みます。

Textual Inversion (TI)

Textual Inversion (TI) は、プロンプトの一部として embedding:filename.extembedding:filename のような形式で指定します。 拡張子 (.ext の部分) は無くても構いません。

ファイルは、あらかじめサーバの /models/embeddings/ に置いておく必要があります。 サブディレクトリを作ってその中に入れても大丈夫です。 新規に置いたり名前を変更した場合は、ブラウザで UI をリロードしてください。

プロンプトの他の部分と同じように、重み付けオペレータが使用できます。 ただ、A1111 より重みが効きやすい傾向があるので、注意は必要です。

SDXL での動作

CLIPTextEncode は、SDXL でも使用できます。 base と refiner の両方に対応しています。 base のサンプリングには base の CLIP でエンコードした CONDITIONING が、refiner のサンプリングには refiner の CLIP でエンコードした CONDITIONING が、それぞれ必要になります。 つまり、base と refiner をチェインさせて使用する場合は、通常最低でも 4 個の CLIPTextEncode が必要です (base の positve と negative で 2 個、refiner の positive と negative で 2 個)。

base では、CLIP ViT-L と OpenCLIP ViT-bigG に同じテキスト (text で指定されたテキスト) が渡されます。 トークナイズやエンコードは、当然ながら、それぞれ別々に行われます。

width、height、crop_w、crop_h、target_width、target_height、aesthetic_score は、KSampler 等によるサンプリング時に決定されます。

  • width: 入力された画像の幅
  • height: 入力された画像の高さ
  • crop_w: 0
  • crop_h: 0
  • (base のみ) target_width: width と同じ
  • (base のみ) target_height: height と同じ
  • (refiner のみ) aesthetic_score: positive は 6、negative は 2.5

関連

使用例

textual inversion あり (強さ 1.1):