Comfyui_llm_partyは、comfyuiという非常にシンプルなUIインターフェースを基に、LLMワークフロー構築のための完全なノードライブラリを開発することを目指しています。これにより、ユーザーは自身のLLMワークフローをより便利かつ迅速に構築でき、自身の画像ワークフローに接続することも容易になります。
EN.mp4
ComfyUI LLM Partyは、最も基本的なLLMの多ツール呼び出しやキャラクター設定によって、専属のAIアシスタントを迅速に構築することから、業界に適用可能な単語ベクトルRAG、GraphRAGを用いた知識ベースのローカル管理までを行います。単一のエージェントパイプラインから、複雑なエージェント間の放射状および環状の相互作用モードの構築まで、個人ユーザーのためのSNSアプリ(QQ、Feishu、Discord)への接続から、ストリーミングメディアの作業者が必要とするワンストップLLM+TTS+ComfyUIワークフローまで、普通の学生が必要とする最初のLLMアプリケーションの簡単な導入から、研究者が一般的に使用するさまざまなパラメータ調整インターフェースやモデル適応に至るまで、これらすべての答えはComfyUI LLM Partyの中にあります。
- 新しいGPT-sovitsノードが追加され、GPT-sovitsモデルを呼び出して、参照オーディオに基づいてテキストを音声に変換できるようになりました。また、微調整されたモデルのパスを入力することもできます(入力しない場合はベースモデルが推論に使用されます)任意の音声を取得できます。使用するには、GPT-sovitsプロジェクトと対応するベースモデルをローカルにダウンロードし、GPT-sovitsプロジェクトフォルダーで
runtime\python.exe api_v2.py
を使用してAPIサービスを開始する必要があります。さらに、chatTTSノードはcomfyui LLM mafiaに移動されました。理由は、chatTTSには多くの依存関係があり、PyPiのライセンスはCC BY-NC 4.0であり、これは非商用ライセンスです。chatTTSのGitHubプロジェクトがAGPLライセンスの下にあるにもかかわらず、不要なトラブルを避けるためにchatTTSノードをcomfyui LLM mafiaに移動しました。皆さんの理解をお願いします! - 最新のOpenAIモデル、o1シリーズをサポートしました!
- 指定したフォルダ内のファイルを制御できるローカルファイル制御ツールを追加しました。読み取り、書き込み、追加、削除、名前変更、移動、コピーなどが可能です。このノードの潜在的な危険性のため、comfyui LLM mafiaに含まれています。
- 新しいSQLツールにより、LLMがSQLデータベースをクエリできます。
- READMEの多言語バージョンを更新しました。READMEドキュメントを翻訳するためのワークフロー:translate_readme
- 4つのイテレーターノード(テキストイテレーター、画像イテレーター、表イテレーター、JSONイテレーター)が更新され、イテレーターのモードとして順次、ランダム、無限の3種類が追加されました。順次は順番に出力を行い、インデックスの上限を超えると自動的にプロセスを中止し、インデックス値を0にリセットします。ランダムはランダムなインデックスを選択して出力し、無限は無限に出力を繰り返します。
- Gemini APIローダーノードが新たに追加され、Gemini公式APIとの互換性が確保されました!国内ネットワーク環境でAPI地域制限の問題が発生した場合は、ノードをアメリカに切り替え、TUNモードを使用してください。Geminiはツール呼び出し時に、戻りパラメータに中文文字が含まれると、500のエラーコードが返されるため、特定のツールノードが使用できない場合があります。サンプルワークフロー:start_with_gemini
- lore bookノードが新たに追加され、LLMとの対話時に背景設定を挿入することができます。サンプルワークフロー:lorebook
- FLUXプロンプト生成器マスクノードが新たに追加され、ハースストーンカード、遊戯王カード、ポスター、漫画などのさまざまなスタイルのプロンプトを生成でき、FLUXモデルを直接出力できます。参考ワークフロー:FLUXプロンプト
-
ノードの使用説明については、以下を参照してください:ノードの使用方法
-
プラグインに問題がある場合や他に疑問がある場合は、ぜひQQ群にご参加ください:931057213
-
ワークフローのチュートリアルについては、ワークフローのチュートリアルをご参照ください。貢献してくださったHuangYuChuhに感謝いたします。
-
高度なワークフローのアカウント:openart
-
さらに多くのワークフローはworkflowフォルダーをご覧ください。
- すべてのOpenAI形式のAPI呼び出しをサポートしています(oneapiを組み合わせることで、ほぼすべてのLLM APIを呼び出すことができ、中継APIもサポートしています)。base_urlの選択はconfig.ini.exampleを参考にしてください。現在、テスト済みのものは以下の通りです:
- ollama(推奨!ローカル呼び出しを行う場合は、非常におすすめの方法であるollamaを使用してローカルモデルをホストしてください!)
- 通義千问/qwen
- 智谱清言/glm
- deepseek
- kimi/moonshot
- 豆包
- Gemini形式のAPI呼び出しをサポートしています:
- transformerライブラリのAutoModelForCausalLMクラスがサポートするほとんどのローカルモデルと互換性があります(ローカルモデルノードでmodel typeがわからない場合はllamaを選択すると高確率で適合します)。現在テスト済みのモデルは以下の通りです:
- ClosedCharacter/Peach-9B-8k-Roleplay(推奨!ロールプレイモデル)
- omost-llama-3-8b-4bits(推奨!豊富なプロンプトモデル)
- meta-llama/Llama-2-7b-chat-hf
- Qwen/Qwen2-7B-Instruct
- xtuner/llava-llama-3-8b-v1_1-gguf
- THUDM/chatglm3-6b(GLM4が新しい呼び出し形式に変更されたため、開発者はすべてのローカル大モデルの呼び出しを維持することが困難です。そのため、ollamaを使用したローカル呼び出しを推奨します!)
- モデルのダウンロード:
- 百度云アドレス、抽出コード:qyhu
以下のいずれかの方法でインストールしてください。
- comfyuiマネージャーで
comfyui_LLM_party
を検索し、一回のクリックでインストールします。 - comfyuiを再起動します。
- ComfyUIのルートフォルダー内の
custom_nodes
サブフォルダーに移動します。 - このリポジトリをクローンします。
git clone https://github.com/heshengtao/comfyui_LLM_party.git
- 右上の
CODE
をクリックします。 download zip
をクリックします。- ダウンロードした圧縮ファイルをComfyUIのルートフォルダー内の
custom_nodes
サブフォルダーに解凍します。
comfyui_LLM_party
のプロジェクトフォルダーに移動します。- ターミナルで
pip install -r requirements.txt
を入力し、本プロジェクトに必要なサードパーティライブラリをcomfyuiの環境にデプロイします。comfyuiの環境でインストールしているかどうかに注意し、ターミナルのpip
エラーにも留意してください。 - comfyuiランチャーを使用している場合は、ターミナルに
ランチャー設定のパス\python_embeded\python.exe -m pip install -r requirements.txt
を入力してインストールを行ってください。python_embeded
フォルダーは通常ComfyUI
フォルダーと同じ階層にあります。 - 環境設定に関する問題が発生した場合は、
requirements_fixed.txt
内の依存関係を使用することを検討してください。
config.ini
において言語を設定できます。現在は中国語(zh_CN)と英語(en_US)の2種類があり、デフォルトはシステム言語です。- 以下のいずれかの方法でAPIKEYを設定できます。
comfyui_LLM_party
のプロジェクトフォルダ内のconfig.ini
ファイルを開きます。config.ini
にあなたのopenai_api_key
、base_url
を入力します。- ollamaモデルを使用する場合は、
base_url
にhttp://127.0.0.1:11434/v1/
を入力し、openai_api_key
にollama
を、model_name
にはあなたのモデル名(例:llama3)を入力します。 - Google検索またはBing検索ツールを使用する場合は、
config.ini
にあなたのgoogle_api_key
、cse_id
またはbing_api_key
を入力します。 - 画像入力LLMを使用する場合は、画像ホスティングサービスのimgbbを推奨し、
config.ini
にあなたのimgbb_api
を入力します。 - 各モデルは
config.ini
ファイル内で個別に設定でき、config.ini.example
ファイルを参考に記入できます。設定が完了したら、ノードにmodel_name
を入力するだけで済みます。
- comfyuiインターフェースを開きます。
- 大規模言語モデル(LLM)ノードを新規作成し、ノード内に直接あなたの
openai_api_key
、base_url
を入力します。 - ollamaモデルを使用する場合は、LLM_apiノードを使用し、ノードの
base_url
にhttp://127.0.0.1:11434/v1/
を入力し、api_key
にollama
を、model_name
にはあなたのモデル名(例:llama3)を入力します。 - 画像入力LLMを使用する場合は、画像ホスティングサービスのimgbbを推奨し、ノードにあなたの
imgbb_api_key
を入力します。
- comfyuiのインターフェースで右クリックし、右クリックメニューの
llm
を選択すると、本プロジェクトのノードを見つけることができます。ノードの使い方 - API接続またはローカル大モデル接続をサポートします。モジュール化されたツール呼び出し機能を実現しています。base_urlを入力する際は、
/v1/
で終わるURLを入力してください。ollamaを使用してモデルを管理し、base_urlにhttp://127.0.0.1:11434/v1/
を入力し、api_keyにollamaを、model_nameにモデル名を入力してください。例: llama3。
- API接続のワークフロー例:start_with_LLM_api
- ローカルモデル接続のワークフロー例:start_with_LLM_local
- ollama接続のワークフロー例:ollama
-
ローカル知識ベース接続をサポートし、RAGを実現しています。ワークフロー例:知識ベースRAG検索.json
-
コードインタープリターを呼び出すことができます。
-
インターネット検索が可能で、Google検索をサポートしています。ワークフロー例:映画検索ワークフロー
-
comfyuiで条件文を実現でき、ユーザーからの質問を分類した後に特定の応答ができます。ワークフロー例:スマートカスタマーサービス
-
大モデルのループリンクをサポートし、2つの大モデルによる討論会を実現できます。ワークフロー例:電車のジレンマ討論会
-
任意の人格マスクを接続でき、プロンプトテンプレートをカスタマイズできます。
-
様々なツール呼び出しをサポートし、現在、天気確認、時間確認、知識ベース、コード実行、インターネット検索、単一のウェブページ検索などの機能を開発しています。
-
LLMをツールノードとして使用することができます。ワークフロー例:LLM入れ子
-
API+streamlitを使用して、自分のWebアプリケーションを迅速に開発することができます。
-
危険な万能インタープリターノードが新たに追加され、大モデルにあらゆることをさせることができます。
-
右クリックメニューの関数(function)サブディレクトリ内の表示テキスト(show_text)ノードをLLMノードの出力表示として使用することをお勧めします。
-
GPT-4Oの視覚機能をサポートしました!サンプルワークフロー:GPT-4o
-
他のワークフローを呼び出すことができるワークフロートランスファーを追加しました!サンプルワークフロー:別のワークフローを呼び出す
-
openaiインターフェースに類似したすべてのモデルに対応しました。例:通義千問/qwen、智谱清言/GLM、deepseek、kimi/moonshot。これらのモデルのbase_url、api_key、model_nameをLLMノードに入力して呼び出してください。
-
LVMローダーを新たに追加し、ローカルでLVMモデルを呼び出すことができるようになりました。llava-llama-3-8b-v1_1-ggufモデルをサポートしており、他のLVMモデルもGGUF形式であれば理論上は動作するはずです。サンプルワークフローはこちら: start_with_LVM.json.
-
fastapi.py
ファイルを作成しました。このファイルを直接実行すれば、http://127.0.0.1:8817/v1/
においてopenaiインターフェースを取得でき、GPTを呼び出すことができるアプリケーションがあなたのcomfyuiワークフローを呼び出すことが可能です!具体的な操作方法については、チュートリアルを作成してご紹介いたします~ -
LLMローダーとLLMチェーンを分け、モデルの読み込みと設定を分離しました。これにより、異なるLLMノード間でモデルを共有できるようになりました!
-
現在、macOSおよびmpsデバイスをサポートしています!bigcat88の貢献に感謝いたします!
-
ユーザーの選択に基づいて異なる結末に進むインタラクティブな小説ゲームを構築できるようになりました!サンプルワークフローの参考:インタラクティブ小説
-
openaiのwhisperおよびtts機能に対応し、音声入力と出力を実現しました。サンプルワークフローの参考:音声入力+音声出力
-
Omostに対応しました!!!ぜひomost-llama-3-8b-4bitsをダウンロードして、今すぐ体験してください!サンプルワークフローはこちら:start_with_OMOSTをご参照ください。
-
企業微信、钉钉、飛書にメッセージを送信するLLMツールと、呼び出し可能な外部関数を追加しました。
-
テキストイテレータを新たに追加しました。これは、各回ごとに一部分の文字だけを出力し、改行記号とチャンクサイズに基づいてテキストを安全に分割します。テキストの途中で分割することはありません。chunk_overlapは、分割されたテキストの重複文字数を示します。これにより、超長テキストを一括入力でき、無心でクリックするか、comfyuiのループ実行を開始するだけで、自動的に完了します。is_locked属性を有効にすると、入力終了時にワークフローが自動的にロックされ、実行が続行されなくなります。サンプルワークフロー:テキストイテレータ入力をご覧ください。
-
ローカルLLMローダーおよびローカルllavaローダーにmodel name属性を追加しました。空の場合は、ノード内の各種ローカルパスを使用してロードします。空でない場合は、
config.ini
に自分で記入したパスパラメータを使用してロードします。空でなく、config.ini
に存在しない場合は、huggingfaceからダウンロードするか、huggingfaceのモデル保存ディレクトリからロードします。huggingfaceからダウンロードしたい場合は、例えばTHUDM/glm-4-9b-chat
の形式でmodel name属性を記入してください。注意!この方法でロードされるモデルは、transformerライブラリに適合している必要があります。 -
JSONファイル解析ノードとJSON値取得ノードを追加しました。これにより、ファイルまたはテキストから特定のキーの値を取得できるようになります。guobaloveの貢献に感謝します!
-
ツール呼び出しのコードを改善しました。これにより、ツール呼び出し機能を持たないLLMでもis_tools_in_sys_prompt属性を有効にできるようになりました(ローカルLLMはデフォルトで有効にする必要がなく、自動的に適応します)。有効にすると、ツール情報がシステムプロンプトに追加され、LLMはツールを呼び出すことができるようになります。実現原理に関する論文:Achieving Tool Calling Functionality in LLMs Using Only Prompt Engineering Without Fine-Tuning
-
カスタムツールのコードを保存するためのcustom_toolフォルダーを新設しました。custom_toolフォルダー内のコードを参考にして、カスタムツールのコードをcustom_toolフォルダーに配置することで、LLM内でカスタムツールを呼び出すことができます。
-
知識グラフツールを新たに追加し、LLMと知識グラフが完璧に相互作用できるようになりました。LLMはあなたの入力に基づいて知識グラフを修正でき、知識グラフ上で推論を行い、必要な答えを得ることができます。サンプルワークフローの参考:graphRAG_neo4j
-
パーソナリティAI機能を追加し、0コードで自分の彼女AIまたは彼氏AIを開発できます。無限の対話、永続的な記憶、キャラクター設定の安定性があります。サンプルワークフローの参考:麦洛薇人格AI
-
このLLMツール製造機を使用してLLMツールを自動生成できます。生成したツールコードをPythonファイルとして保存し、そのコードをcustom_toolフォルダーにコピーすることで、新しいノードを創造したことになります。サンプルワークフロー:LLM工具生成器。
-
duckduckgo検索をサポートしましたが、大きな制限があります。どうやら英語のキーワードしか入力できず、キーワードに複数の概念を含めることはできません。ただし、APIキーの制限がないという利点があります。
-
複数の知識ベースを分けて呼び出す機能をサポートし、プロンプト内でどの知識ベースの知識を使用して質問に回答するかを明確に示すことができます。サンプルワークフロー:多知识库分别调用。
-
LLMに追加のパラメータを入力することをサポートし、json outなどの高度なパラメータを含めることができます。サンプルワークフロー:LLM入力额外参数。用json_out分离提示词。
-
Discordへのエージェント接続機能を新たに追加しました。(現在テスト中です)
-
Feishuへのエージェント接続機能を新たに追加しました。特にguobaloveの貢献に感謝いたします!参考ワークフローは飛書ロボットです。
-
汎用API呼び出しノードと多数の補助ノードを新たに追加し、リクエストボディの構築とレスポンスからの情報取得を支援します。
-
モデルをクリアするノードを新たに追加し、任意の位置でLLMをメモリからアンロードできます!
-
chatTTSノードを追加しました。特にguobaloveの貢献に感謝いたします!
model_path
パラメータは空にすることができます!HFモードでモデルをロードすることをお勧めします。モデルは自動的にHugging Faceからダウンロードされ、手動でのダウンロードは不要です。ローカルでロードする場合は、モデルのasset
とconfig
フォルダーをルートディレクトリに置いてください。百度云地址、抽出コード:qyhu;custom
モードでロードする場合は、モデルのasset
とconfig
フォルダーをmodel_path
下に置いてください。
- さらなるモデルの適応を進め、少なくとも主流の大規模モデルAPIインターフェースおよび主流のオープンソースモデルのローカル呼び出しをカバーし、さらに多くのLVMモデルの適応を行います。現時点では、GPT-4の視覚機能の呼び出しのみを適応しました。
- さらなるインテリジェントエージェントの構築方法を模索しています。現在、この分野での取り組みとして、LLMを別のLLMにツールとして導入し、放射状にLLMワークフローを構築し、一つのワークフローを別のワークフローのノードとして導入することに成功しました。今後、さらにクールな機能を実現する予定です。
- より多くの自動化機能を導入する予定です。将来的には、画像、テキスト、動画、音声を他のアプリケーションに自動的に送信するノードを追加し、主流のソーシャルメディアやフォーラムに自動返信する機能を持つリスニングノードも提供する予定です。
- より多くの知識ベース管理機能を実装します。現在、本プロジェクトはローカルファイル検索とウェブ検索をサポートしていますが、今後は知識グラフ検索や長期記憶検索を導入し、インテリジェントエージェントが論理的に専門知識を考え、ユーザーとの対話の際に特定の重要情報を永続的に記憶できる機能を提供します。
- より多くのツールと多様な人格マスクを開発します。この分野は最も容易に実現できる部分ですが、同時に最も蓄積が必要な部分でもあります。将来的には、このプロジェクトがcomfyuiのように多くのカスタマイズノードを持つことを目指し、多くのツールと人格マスクを揃えられることを期待しています。
本オープンソースプロジェクトおよびその内容(以下「プロジェクト」といいます)は、参考用に提供されるものであり、明示または暗示の保証を意味するものではありません。プロジェクトの貢献者は、プロジェクトの完全性、正確性、信頼性または適用性に対して一切の責任を負いません。プロジェクトの内容に依存する行為は、すべて自己の責任において行うものとします。いかなる場合においても、プロジェクトの貢献者は、プロジェクトの内容の使用に起因して生じた間接的、特別または付随的な損失または損害について、一切の責任を負いません。
本プロジェクトのいくつかのノードは以下のプロジェクトを参考にしており、オープンソースコミュニティへの貢献に感謝します!
プラグインに問題がある場合や他の質問がある場合は、ぜひ私たちのコミュニティに参加してください。
- QQグループ:
931057213
-
WeChatグループ:
Choo-Yong
(小助手のWeChatを追加した後にグループに参加してください) -
discord:discordリンク
- このプロジェクトの最新機能を継続的にフォローしたい方は、Bilibiliアカウントをフォローしてください:派对主持BB机
- OpenArtアカウントは、最も便利なパーティーのワークフローを継続的に更新しています:openart
私の仕事があなたに価値をもたらしたなら、ぜひ私にコーヒーをおごってください!あなたのサポートはプロジェクトに活力を与えるだけでなく、クリエイターの心を温めます。☕💖 一杯一杯が意義深いです!