ComfyUI ローダー・ユーティリティ — モデル読み込み順の調整
概要
ComfyUI-LoaderUtils は、ComfyUI の「モデルローダー」ノードの振る舞いを改善する小さな拡張です。標準の ComfyUI では複数のモデルローダーが起動時に一斉にモデルを読み込むため、時間やメモリの負荷が発生しやすくなります。本リポジトリは、すべてのローダーノードにオプションの「Any」パラメータを追加し、任意の出力タイプと接続できるようにすることで、ノード配置によって読み込みタイミングを遅延・制御できるようにします。またメモ化(重複読み込み回避)等の仕組みを組み込み、効率的なモデル管理を実現します。
リポジトリの統計情報
- スター数: 19
- フォーク数: 1
- ウォッチャー数: 19
- コミット数: 8
- ファイル数: 10
- メインの言語: Python
主な特徴
- 全ローダーノードに「Any」パラメータを追加し、任意の出力タイプと接続可能にする
- ノードの配置でモデル読み込みの順序を制御できる(遅延読み込みが可能)
- メモ化による重複読み込みの回避で無駄なI/Oとメモリ使用を低減
- 軽量な実装で既存の ComfyUI 環境へ簡単に導入可能
技術的なポイント
ComfyUI-LoaderUtils の核は、ノード定義の拡張と実行タイミングの制御にあります。ComfyUI のノードは接続グラフに基づいて評価されるため、ノードの入力ソケットのタイプによって接続や順序が制約されます。本拡張は各ローダーのノード定義に「Any」タイプのオプション入力を追加することで、型による接続制約を緩和し、任意のノードから接続して「依存関係」を作れるようにします。これにより、ユーザーはローダーノードを他の処理ノードの後に配置することで、モデルの読み込みを後回しにでき、起動時の一斉読み込みを回避できます。
さらに、同一モデルが複数ノードで要求されるケースに備え、メモ化(キャッシュ)を導入。ファイルパスやモデル識別子をキーに一度ロードしたモデルを保持し、二度目以降は再ロードを避けることでディスクI/Oとメモリ割当の無駄を減らします。実装面では ComfyUI の拡張ポイントに Python モジュール(ノード登録用)として組み込み、既存のローダークラスを派生・ラップするか、ノード定義の辞書を差し替える形で動作します。軽量なステート管理により、ComfyUI の基本的な動作を損なわずに導入できる設計になっています。デバッグ用のログや接続チェックも備え、ユーザーが読み込み順の問題を可視化しやすいよう配慮されています。
プロジェクトの構成
主要なファイルとディレクトリ:
- .github: dir
- .gitignore: file
- LICENSE: file
- README.md: file
- init.py: file
…他 5 ファイル
まとめ
ComfyUI のモデル読み込みを簡単に制御できる実用的な軽量拡張です。
リポジトリ情報:
- 名前: ComfyUI-LoaderUtils
- 説明: 説明なし
- スター数: 19
- 言語: Python
- URL: https://github.com/lrzjason/ComfyUI-LoaderUtils
- オーナー: lrzjason
- アバター: https://avatars.githubusercontent.com/u/7887717?v=4
READMEの抜粋:
ComfyUI Loader Utils - Adjust Model Loading Order
The Problem: Comfyui load models at the start at once
Solution: Added an optional “Any” Parameter to loader node
This custom loader module addresses these issues by:
- Flexible Node Connections: Added an optional “any” parameter to all loader nodes, allowing them to connect to any output type
- Controlled Loading Order: Users can strategically place loader nodes after other nodes, optimizing the model loading sequence
- **Memo…