ComfyUI ローダー・ユーティリティ — モデル読み込み順の調整

AI/ML

概要

ComfyUI-LoaderUtils は、ComfyUI の「モデルローダー」ノードの振る舞いを改善する小さな拡張です。標準の ComfyUI では複数のモデルローダーが起動時に一斉にモデルを読み込むため、時間やメモリの負荷が発生しやすくなります。本リポジトリは、すべてのローダーノードにオプションの「Any」パラメータを追加し、任意の出力タイプと接続できるようにすることで、ノード配置によって読み込みタイミングを遅延・制御できるようにします。またメモ化(重複読み込み回避)等の仕組みを組み込み、効率的なモデル管理を実現します。

GitHub

リポジトリの統計情報

  • スター数: 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 のモデル読み込みを簡単に制御できる実用的な軽量拡張です。

リポジトリ情報:

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:

  1. Flexible Node Connections: Added an optional “any” parameter to all loader nodes, allowing them to connect to any output type
  2. Controlled Loading Order: Users can strategically place loader nodes after other nodes, optimizing the model loading sequence
  3. **Memo…