LoraReduceRank
このノードは、kohya-ssのsd-scripts内の`resize_lora`に基づいています。
Lora Reduce Rank
LoraReduceRankノードは、kohya-ssのsd-scripts内のresize_loraをベースにしています。
LoraReduceRankノードは、LoRAモデルのランクを削減するためのツールです。その中核機能は、既存のLoRAモデルを読み込み、内部パラメータ行列の次元を調整することでモデルファイルのサイズと計算要件を削減し、処理された新しいモデルを出力ディレクトリに保存することです。
ノード機能
このノードは、kohya-ssのsd-scripts内のresize_lora.pyスクリプトを基に実装されています。特異値比率、累積和、Frobeniusノルム、または特異値カーブの肘点検出に基づく方法など、複数の動的ランク削減方法をサポートしています。ユーザーは固定の新しいランクを指定するか、動的しきい値を設定して適切なランクを自動的に決定することができます。ノードは複数のデータ精度フォーマットを処理でき、元のモデルと互換性のあるメタデータを保持します。
ノードパラメータ説明 - LoraReduceRank
接続入力 (Inputs)
| パラメータ名 | データ型 | 必須 | デフォルト値 | 範囲/オプション | 説明 |
|---|---|---|---|---|---|
lora_name | COMBO | はい | - | - | ロード済みのLoRAモデルリストから、ランク削減処理が必要なターゲットモデルファイルを選択します。 |
コントロールパラメータ (Parameters)
| パラメータ名 | データ型 | 必須 | デフォルト値 | 範囲/オプション | 説明 |
|---|---|---|---|---|---|
dynamic_method | COMBO | はい | disabled | "disabled", "sv_ratio", "sv_cumulative", "sv_fro", "sv_knee" | 新しいalphasとdimsを動的に決定するために使用する方法。sv_kneeは特異値カーブの肘点を検出します。 |
output_dtype | COMBO | はい | match_original | "match_original", "fp16", "bf16", "fp32" | LoRAを保存するデータ型: match_original、fp16、bf16、またはfp32。 |
new_rank | INT | はい | 8 | 1 - 4096 (ステップ: 1) | LoRAをリサイズする新しいランク。dynamic_method使用時は最大ランクとして機能します。 |
dynamic_param | FLOAT | はい | 0.2 | 0.0 - 2.0 (ステップ: 0.01) | 動的方法のパラメータ。sv_kneeの場合: 感度 (1.0=標準的な肘、<1.0=よりアグレッシブ/低ランク、>1.0=より保守的)。 |
verbose | BOOLEAN | はい | True | - | コンソールに詳細な処理ログを出力するかどうかを制御します。有効 (True) にすると、デバッグやランク削減の詳細を把握するのに役立ちます。 |
使用シナリオ
実際のワークフローで、LoRAモデルファイルが大きすぎる、または推論速度が遅すぎると感じた場合に、このノードを使用できます。例えば、高ランクのLoRAをロードしてスタイル生成を行った後、このノードに接続し、より低いnew_rank値を設定して実行すると、出力フォルダに、後続のプロセスで使用できる、より小さく効率的な新しいLoRAファイルが得られます。
注意事項
これは実験的なノードであることに注意してください。ランク削減は非可逆圧縮であり、ランクを過度に削減するとLoRAモデルの効果に大きな影響を与える可能性があります。ノード自体はテンソルを出力せず、ファイル保存操作のみを実行します。
LoraReduceRankノードソースコードリンク
LoraReduceRankノードはComfyUI-KJNodesノードパッケージに由来します。
コメント
GitHubでサインインしてディスカッションに参加しましょう。