ComfyUI IF AI toolsの使い方を解説します。この記事ではOllamaを使ってローカルLLMを実行してプロンプトを生成する方法を紹介します。最新大規模言語モデルの「Meta Llama 3」も使うことができます。
ComfyUI IF AI Toolsとは
様々な言語モデル(LLM)からプロンプトを生成、拡張することができます。
この記事のサムネイルは上記のプロンプトを使って生成しました。
このカスタムノードでは、APIを使って “ChatGPT4” や “Claude 3 Opus” などのクラウドベースのLLMも使うことができますが、この記事ではローカルLLMを使ってプロンプトを生成します。
また、最近発表された「Meta Llama 3」というMeta社が2024年4月19日にリリースした大規模言語モデルも簡単にダウンロードして利用できるのでそちらも紹介します。
IF AI Toolsのインストール手順
前提条件としてOllamaが必要
OllamaというのはLLM(言語モデル)を動かすためのプラットフォームです。無料で利用できます。
Ollamaのページから「OllamaSetup.exe」をダウンロードしてインストールします。
ワンクリックでインストールできます。
隠れているインジケーターにOllamaがあることを確認します。無い場合はOllamaを起動します。
OllamaはWindowsスタートアップに自動的に登録されるので、気になる方はタスクマネージャーから無効化することができます。
言語モデルのダウンロード
OllamaをインストールするとOllamaコマンドが使えるようになるので、Ollamaコマンドを使って言語モデルをダウンロードします。
デフォルトの保存先は次の場所です。.ollama が無い場合は隠しファイルを表示してください。
C:/
└── Users/
└── ユーザー名/
└── .ollama
言語モデルの保存場所を変更する方法を、現時点では公式が用意していません。
保存場所の変更方法は次のリンクが参考になるかと思います。
Youtube by Jie Jennさん
How To Change Ollama Model Default Directory
note by ノリハラさん
では言語モデルをダウンロードしていきます。
cmdもしくはターミナルを開き、次のOllamaコマンドを入力します。
このモデルはStable Diffusionのプロンプト生成に特化した専用のモデルです。この言語モデルと会話することはできませんでした。
ollama run brxce/stable-diffusion-prompt-generator
Meta Llama 3を使ってみたい場合
複数のモデルを連続してダウンロードするなら、一度コマンドに “/bye” と入力してからOllamaコマンドを実行します。
ollama run llama3
ダウンロードが終わった後はLLMと喋れるみたいです。基本英語です。
また、他にも100種類近く言語モデルが利用可能であり、Ollama公式サイトからダウンロードコマンドが公開されています。
カスタムノード「IF AI Tools」の導入
ComfyUI Managerから “ComfyUI-IF_AI_tools” をインストールします。
IF AI Toolsの使い方
基本
ワークフローの何もない場所を “ダブルクリック” して、検索ボックスを表示します。
“if ” と検索して “IF Prompt to Prompt” ノードを呼び出します。
今回はこのノードを主に使います。
画像のように、モデルが選択可能な状態であれば、Ollamaサーバーが正常に稼働している証拠です。
取りあえずデフォルトの状態で、言語モデルが動作するか確認しましょう。
Responseに “IF Display Text” を繋いで、回答を確認します。
回答が返ってくれば言語モデルが利用可能な状態ということです。
このプロンプトを使うには、後はResponseをText Encodeに繋ぐだけです。
profileの設定
profileという項目は言語モデルに最初に与える “条件” です。
言語モデルごとに特性が異なるので必ずしも条件通りに回答してくれるとは限りません。
“None” にすると普通に言語モデルと会話することができます。
現時点ではprofileを変更する方法は直接ファイルを書き換えるしかありませんが、将来ComfyUI内で書き換えれるようにすることを検討しているみたいです。
profileは.json形式で次の場所に保存されています。
ComfyUI/
└── custom_nodes/
└── ComfyUI-IF_AI_tools/
└── presets/
└── profiles.json
既にあるプリセットの条件はどれも長いです。
デフォルトの条件 “IF_PromptMKR” を要約してみます。
- キーワードはカンマで区切る
- 簡潔で的確な高品質のプロンプトを提供する
- 画像の視覚的要素にのみ焦点を当てる
- 主題と説明、シーンの説明、背景の説明の順にプロンプトを構成する
- 各構成要素のキーワードは7つ以内に制限する
- ユーザーのリクエストからのキーワードを全て使用する
- 多様で創造的であること
- 100単語以内の1行の回答に収める
- 追加情報は含めない
そして指示の最後に具体的な例が示されています。
“IF_PromptMKR” で大体のニーズは満たされてそうですが、そうでない場合は自分でプリセットを作ってみましょう。
今回筆者はこのようにデフォルトの条件を改良して “IF_PromptMKR_custom” という名前でプリセットを作ってみました。
結果に必ず入力したプロンプトを含めるような指示にしています。
まだまだ改良しないと駄目ですが一応載せておきます。
"IF_PromptMKR_custom2": "Act as a prompt maker with the following guidelines: - The input will be a list of keywords separated by commas, which may include special instructions in parentheses. - Generate a high-quality, coherent, and concise prompt based on the input keywords. - Start the prompt by repeating the input keywords exactly as they appear, including any special instructions within parentheses, without changing their order. - After the input keywords, add a comma and then include no more than 7 additional relevant keywords to enhance the visual description while maintaining coherence with the subject, worldbuilding, or setting, and considering the relationship between elements. - Focus solely on the visual elements; avoid art commentaries or intentions. - Be creative and varied in your keyword choices. - Always reply on a single line and keep the total prompt length under 200 words. - Do not include any additional information or explanations in the response. Example: Input: 1girl, (cyber city:1.1), cropped body, (forest), glowing Output: 1girl, (cyber city:1.1), cropped body, (forest), glowing, neon reflections, holographic leaves, bioluminescent flora, augmented reality overlay, techno-organic fusion Now, make a prompt for the following input: </INSTRUCTION>",
その他の設定について
現時点ではこのリポジトリはチュートリアルが存在しないので、圧倒的に情報が不足しています。
分かったことがあれば順次追加していきます。
掲示板