#contents *概要 [#summary] **Text Encoderとは何か。 [#i7be97ea] ***簡単に言うと? [#j7c44d48] -Text Encoderとは、 ざっくり言えば、唱えた呪文を画像生成モデル(絵師さん)が理解できる形式に変換し、こういう絵にしてほしいと通訳を行う場所になります。 --例えば「1girl,loli,at computer,」でコンピューターへ向かうロリっ娘を出してもらおうとした時に通訳次第ではその内容が変化します。 *特徴 [#features] **構造 [#structure] -SD系では[[CLIP]]が採用されています -比較的最近の自然言語言語に強い%%ファイルサイズがやたらデカい%%テキストエンコーダは、フル版であれば会話もできる本格的なLLMも使われていることがあります。FLUX.1のT5-XXL、Qwen-VLなど。 --プロンプトの通りとかが気になる人はちょっとお話してみるといいかも? %%Qwen-VLは脱獄文でNSFW通るし%% --FLUX.1のT5-XXLやQwen-VLのようなLLMはそれ自体のパラメータ数がSDXL系の画像生成モデルより多いので、少なくともしばらくのうちは画像生成モデル本体に埋め込めるサイズではありません。SD1.5はパラメータ数1B、SDXLでも3.5Bだが、T5-XXLは11Bもある。画像生成モデル(U-Net拡散モデル)はAIに都合がいいノイズ拡散過程を扱っているので、この世のすべての言葉を理解するよう強いられているLLMよりコンパクトなのです。 ---と思っていましたが、最近のAIO(All in One)モデルでは10GB近いLLM系テキストエンコーダを焼き込んであるものも見受けられます。デカくてもひとまとめにしたほうがお手軽という判断のようです。 -一般的に、LLMは同シリーズ・同世代であってもパラメータ数の異なる複数のモデルが提供されることが多いですが、 画像生成モデルはその中の特定のパラメータ数のモデルに依存しており、それ以外のモデルをテキストエンコーダとして使うことはできません。 従って、TEの脱獄モデルへの差し替えなどについては同じパラメータ数のモデルを選ぶ必要があります。 **画像生成AIで使われている場所 [#b9ea431c] #ref(./260620_01_モデルの役割_2.png,80%) 引用:としあき自作 *モデル一覧 [#model_list] **世代別一覧 [#list_per_generation] 拡散モデルなどに比べるとTextEncoderのバリアントは少ないため、世代毎におおまかに分類しました。 |世代|テキストエンコーダー例|トークン単位長((トークン単位長は「CLIP/LLM単独で」利用したときの最大長であって、テキストエンコーダとして使用したときは画像生成モデル側の上限に制約されます。そして画像生成モデル側の上限は通常LLMよりは短いです(LLMは文脈理解のために毎回「スレッド丸ごと」コンテキストとして入力されるのでかなり長め)。))|キャプション例|追加された特徴|h |SD1.5世代|CLIP ViT-L|75トークン|a girl, masterpiece, best quality|単語の組み合わせによる基本的な概念の画像化| |SDXL世代|CLIP ViT-L&br;OpenCLIP ViT-bigG|77トークン|1girl, cinematic lighting, highly detailed|複数エンコーダー統合による細部の表現力向上| |SD3 / FLUX.1世代|CLIP ViT-L&br;OpenCLIP ViT-bigG&br;T5-XXL|最大256~512トークン|A photo of a cat sitting on a red stool with text hello|長文理解、自然言語での位置・空間の指定、文字描画能力| |Anima / Krea2世代|Qwen3&br;Qwen3-VL|LLMとしては数千~数万トークン(TEとしては画像生成モデル依存)|A detailed anime character standing in a futuristic city, high resolution, dynamic pose...|LLMベースの深い自然言語理解、対話的・直感的な文脈解析、プロンプトの完全消化および補正・最適化| **個別モデル説明 [#model_name] 主要なモデルの簡単な説明 #shadowheader(3,CLIP ViT-L) -OpenAIが開発したテキストと画像の対応関係を学習した軽量エンコーダー。StableDiffusionシリーズ初期から用いられ、基本的な単語単位の概念抽出を担う。 後続モデルにおいても基礎的な概念把握や低次特徴の抽出用として継続して併用される。 -別名として「CLIP-L」または「clip_l」という通称が使われる -登録されているトークンが適当で、「wwe」といったスポーツ団体名や、「À」「😁😁😁」のような「いつ使うんだ」みたいな無駄な情報が多く、洗練されていない。 #shadowheader(3,OpenCLIP ViT-bigG) -LAION等によって学習された巨大なオープンソースCLIPモデル。単語レベルの認識精度やスタイル表現力を補強するために併用される。 -別名として「CLIP-G」または「bigG」という通称が使われる。 -登録されているトークンは、CLIP ViT-Lと同一 #shadowheader(3,T5-XXL) -Googleが開発した大規模言語モデル。 -巨大なパラメータ数を活かし、複雑な自然言語の構文理解、空間配置の指示、文字描画の精度を支える。 -CLIP-L/Gよりも最大トークン長が長くなったため、「左に赤いリンゴ、右に青いバナナ...」のような長いキャプションが続いても、チャンク切断による分離がされにくくなり、修飾関係や指示を取りこぼしにくくなった。 #shadowheader(3,Qwen3((「Qwen3シリーズ」と言う意味ではなく、TextEncoder名としての「Qwen3」))) -Alibabaが開発した大規模言語モデル。 -思考モードの切り替えにより推論精度を高められる点が特徴で、その高い言語理解力を活かして複雑なプロンプトの解釈や指示追従性を支える。 -トークンの量・質ともに、T5-XXL以前よりも充実化。 -アジア語にも対応し、日本語キャプション対応の基礎を築いた。 -LLMとしての最大トークン長は32768あるが、TEへの入力はともかく画像生成モデル側へ渡せる埋め込みの最大長は画像モデル依存でもっと短い。 // Animaは512トークンまで((参考「Maximum token length for the Qwen3 tokenizer. Default 512.」sd-scripts Anima LoRA訓練ドキュメントより https://github.com/kohya-ss/sd-scripts/blob/main/docs/anima_train_network.md ))。 #shadowheader(3,Qwen3-VL) -Qwen3をベースに視覚理解を追加した視覚言語モデル(VLM)。 -複雑な文脈や詳細な空間指示、画像とテキストの緊密な対応関係を解析する。 -参照画像をテキスト入力とともに処理できるようになったため、新たにImage-Edit機能が使用できるようになった。 **スペック比較[#spec_compare] 各テキストエンコーダーの特性や対応能力を整理した表です。 |名称|最大トークン長|単語理解|複雑長文|日本語対応|空間指定|文字描画|参照画像評価|h |CLIP ViT-L|77|✓|-|-|-|-|-| |OpenCLIP ViT-bigG|77|✓|-|-|-|-|-| |T5-XXL|512|✓|✓|-|✓|✓|-| |Qwen3|32768|✓|✓|✓|✓|✓|-| |Qwen3-VL|32768|✓|✓|✓|✓|✓|✓| ✓:対応 △:対応するが問題有り ー:非対応 *コメント・指摘・助言 [#comment] #pcomment(,5,reply) >(Tips) -既存コメントの先頭にあるラジオボタンをONにすると、そのコメントの下にぶら下げ返信する形になります(ツリー構造)。 -コメントの文中で↵ボタン(下の画像参照)を押すと「&br;」の文字列が挿入されます。これは送信後に改行として機能するので、文章の整形に役立ちます。 &ref(wikiwiki編集のコツ/br.png,around,50%);