ComfyUIは、処理速度や生成される絵について不満はあるんだけど、線をつないでやりたいことを連続でやってくれるのはとても楽しい。
なんていうか、ピタゴラスイッチみたいな感じ?
色々やってみたお陰で、カスタムノードのインストールとかもちょっと慣れてきたので、さらに何かやってみたくなった。
ローカルLLMもすっかり手の届くものになってきていて、これを使った連携をやってみた。
まず、ローカルLLMについては、こっちのサイトなんかをみてもらうといいかも。ようするにローカルで動くChatGPTみたいなイメージです。
ollamaはインストールされている前提で、進めます。
ComfyUI-IF_AI_toolsを追加します。
このGitHubのページのInstallationのところに、手順があるのでこの通りに進めていきます。
インストール手順
1.ComfyUI managerから、IF_AIで検索して、ComfyUI-IF_AI_toolsをインストール。
2.LLMのモデルを追加しておく。わたしはimpactframes/ifai_promptmkr_dolphin_phi3:latestを追加した。
もちろん、こっちでもいい。
3.「IF_AI」フォルダを ComfyUI-IF_AI_tools/フォルダから、ComfyUI/input/フォルダにコピーする。
4.追加インストールを行う。ComfyUI-IF_AI_tools/フォルダに移動してターミナルを起動。次のコマンドを実行。
これで準備完了。
では、ここからはComfyUIでの操作。
まずはキーワードを入れるだけでいい感じのプロンプトが出来上がるかどうかだけの確認を行う。
ComfyUIを立ち上げたら、Clearを押してノードを全部消す。
何もないところでダブルクリックして、「IF」で検索する。
すると、「IF Chat Prompt」というのがみつかるので、これを追加。
エンジンにollama、モデルにimpactframes/ifai_promptmkr_dolphin_phi3:latestが選ばれている。これならollamaはちゃんと動きそうな予感。
出力されたテキストがモニターできるように、「IF Display Text」を追加して、Responseとtextを線でつなぐ。
アシスタントを選択する。
「IF_PromptMKR_IMG2」を選択してみる。なんとなく。
これで完成。適当なワードを入れて、プロンプトを生成してみよう。
いつもな感じで
これで、Queue Promptをクリックして実行。
出来たプロンプトは、
おー、ちゃんと動いている。
では、これをデフォルトのワークフローに接続して、画像を生成させてみよう。
一旦クリアして、Load Defaultからワークフローを開いて、ノードを追加していく。
ポジティブプロンプトに生成したプロンプトを流すために。Clip Text Encode(Prompt)を右クリック、Convert Widget To InputからConvert text to inputを選択。
これで入力欄がきえて、インプットにtextが出てくる。
このインプットのtextにIF Display TextのアウトプットのSTRINGをつなぐ。
では、やってみよう。モデルはGhostXL、サンプラーはDPM++2m karras、サイズは1024×1024。
指定するワード
生成されたプロンプト
自分では思いつかないプロンプトでなかなか面白い。
もう一度。
生成されたプロンプト
ハワイに行ってしまった。なんで?
せめて、最初のワードにfantasyでも入れて、もう一度。
生成されたプロンプト
1girlさえも無くなってしまった。うーん。
もう一度。
1girlが帰ってきたけど、ファンタジーすぎるなー。
もうちょっとワードを変えてみようか。
生成されたプロンプト
まぁ、プロンプトをガチャにしてる訳だから、こんなところかな。
一応、目的は達成できたとしよう。今日はここまで。
追記
アシスタントの定義について記事を書きました。