TIPO (Text‑to‑Image with text Pre‑sampling for Prompt Optimization) を利用してプロンプトを生成します。今回はComfyUIを利用します。
TIPO は"Text‑to‑Image with text Pre‑sampling for Prompt Optimization" の略で、
テキストから画像を生成する(T2I)モデル向けに 「ユーザープロンプトを自動でリッチ化する軽量プロンプト最適化フレームワーク」です。
簡素な入力文を、モデルが最も理解しやすい形式・語彙に自動拡張して画像生成に渡すことで、画質・整合性・多様性を同時に高めます。
従来の LLM や RL ベース方式より計算量が少なく、さまざまな T2I モデルに汎化しやすいのが特徴です。
ComfyUIを起動し、ウィンドウ上部の[Manager]ボタンをクリックします。下図のComfyUI Mangerのダイアログが表示されます。
[Custom Nodes Manager]のボタンをクリックします。
カスタムノードの一覧が表示されます。
ダイアログ上部の[Search]テキストボックスに"TIPO"を入力します。フィルタされた結果が表示されます。
[z-tipo-extension]の項目の[Install]ボタンをクリックします。
バージョン選択ダイアログが表示されます。今回は[nightly]を選択しています。[Select]ボタンをクリックします。
インストールが始まります。
インストールが完了すると下図の画面が表示されます。ダイアログ左下の[Restart]ボタンをクリックしてComfyUIを再起動します。
再起動するとモデルなどのダウンロードがあります。長時間反応しなくなってしまった場合は一度ComfuUIを閉じて、再起動します。
再起動できました。
TIPOを利用してプロンプトを生成します。txt2imgのワークフローを準備します。
背景部分で右クリックします。ポップアップメニューが表示されますので、[ノードを追加]>[utils]>[promptgen]とメニューをたどり、[TIPO]の項目をクリックします。
クリックするとTIPOのノードが追加されます。
プロンプトを確認するためのノードを追加します。[ノードを追加]>[utils]とメニューをたどり、[ShowText]の項目をクリックします。
ShowTextのノードが追加できました。
TIPOのノードの[prompt]と[Show Text]ノードの[text]をドラッグして接続します。
また、TIPOのノードの[prompt]と[CLIPテキストエンコード (プロンプト)]のテキストボックスの左上とをドラッグして接続します。(下図)
TIPOのノードの項目にタグやプロンプトを入力します。
tags | タグ | 画像生成の際に使用するキーワードや属性を指定します。通常のプロンプトの入力と同じものと考えてよいです。 |
nl_prompt | 自然言語プロンプト | 自然言語で画像生成の指示を記述します。入力は任意です。 |
ban_tags | 禁止タグ | 生成されるプロンプトから除外したいタグを指定します。 |
今回は、tagsに以下を入力しました。
[tipo_model]には"KBlueLeaf/TIPO-500M-ft | TIPO-500M-ft-F16.gguf"を指定しています。
[実行する]ボタンをクリックして実行開始します。
Show Textのノードに元のタグから拡張したプロンプトの内容が表示されます。
画像も生成できました。
元のタグと拡張されたプロンプトは以下となります。プロンプトは実行ごとに変化します。
TIPOありとなしの場合の画像背性結果を比較します。
以下のプロンプトで画像生成をします。
モデルはAnimagine XL v4.0 opt を利用しています。
生成結果は下図です。
ありとなしでかなり雰囲気が異なりますが、TIPOを利用したほうは全体的に明るく鮮やかな発色の印象です。
また、TIPOなしでは花と人物の大きさが合わないものが生成されたりしますが、TIPOありでは改善されます。
一方で、プロンプトに表現がたくさん追加されるため、相対的に"spacecraft"の意味が弱くなるためか、
TIPOありの画像生成結果には宇宙船がほとんど描画されない結果となりました。