v1.1.0: Add Filtered Random LoRA Loader, Preview Images, and Duplicate Handling

This commit is contained in:
shin132002
2026-01-04 15:13:54 +09:00
parent 4811ecc323
commit b6f815deff
2 changed files with 71 additions and 4 deletions
+38 -2
View File
@@ -7,7 +7,8 @@ A ComfyUI custom node package for randomly selecting and applying LoRAs. Include
1. **Random LoRA Loader** - Select from 3 folders simultaneously
2. **Filtered Random LoRA Loader** - Single folder with keyword filtering (NEW v1.1.0)
![Workflow Example](./images/workflow.webp)
![Random LoRA Loader Workflow Example](./images/RLL_final_single.webp)
![Filtered Random LoRA Loader Workflow Example](./images/filterd_final_single.webp)
---
@@ -109,7 +110,7 @@ Or manually delete the RandomLoRALoader folder and restart ComfyUI.
This node works seamlessly with Wildcard Encode (Inspire) for dynamic prompt generation combined with random LoRA selection.
![Wildcard Encode Workflow](./images/wildcard_workflow.webp)
![Wildcard Encode + Random LoRA Loader Workflow](./images/RLL_final_wce.webp)
#### Recommended Connection
@@ -229,6 +230,7 @@ Each group can be configured individually:
|---------|-------------|---------|
| `lora_folder_path_X` | LoRA folder absolute path | (empty) |
| `include_subfolders_X` | Include subfolders | `true` |
| `unique_by_filename_X` | Exclude duplicate filenames | `true` |
| `model_strength_X` | MODEL application strength | `"1.0"` |
| `clip_strength_X` | CLIP application strength | `"1.0"` |
| `num_loras_X` | Number of LoRAs to select | Group 1: `1`, Groups 2/3: `0` |
@@ -623,6 +625,8 @@ You can use this node as a simple LoRA syntax remover without applying any LoRAs
## Filtered Random LoRA Loader (NEW v1.1.0)
![Filtered Random LoRA Loader x1 Workflow](./images/filterd_final_single.webp)
### Overview
A single-group LoRA loader with keyword filtering capabilities. Designed for chaining multiple instances together.
@@ -643,6 +647,7 @@ A single-group LoRA loader with keyword filtering capabilities. Designed for cha
#### Folder Settings
- `lora_folder_path` - Single folder path
- `include_subfolders` - Include subfolders (default: True)
- `unique_by_filename` - Exclude duplicate filenames across subfolders (default: True)
#### Keyword Filter
- `keyword_filter` - Keywords (comma-separated, e.g., "style, anime")
@@ -742,6 +747,35 @@ filter_mode: "OR"
→ Matches files containing EITHER "style" OR "anime"
```
### Handling Duplicate Filenames
If the same LoRA filename exists in multiple subfolders (e.g., originals and backups), the `unique_by_filename` option prevents selecting the same LoRA multiple times.
**Example:**
```
Folder structure:
/LoRA/
├── style/anime_v1.safetensors
└── backup/anime_v1.safetensors
unique_by_filename: True (default)
→ Only one anime_v1.safetensors will be selected
→ First occurrence is kept (/LoRA/style/anime_v1.safetensors)
unique_by_filename: False
→ Both files can be selected
→ May result in same LoRA applied twice with different strengths
```
**Log output when duplicates detected:**
```
[FilteredRandomLoRALoader] Duplicate filename detected: anime_v1.safetensors
Keeping: /LoRA/style/anime_v1.safetensors
Skipping: /LoRA/backup/anime_v1.safetensors
```
**Recommendation:** Keep default `True` to avoid unintentional duplicate applications.
### Metadata Search Performance
**Filename search (Default):**
@@ -779,6 +813,8 @@ Randomly selects 1 LoRA containing "anime" in filename
#### Chaining Multiple Instances
![Filtered Random LoRA Loader x2 Workflow](./images/filterd_final_double.webp)
```
[Filtered Random LoRA Loader A]
folder: /loras/all/
+33 -2
View File
@@ -9,6 +9,7 @@ ComfyUIでLoRAをランダムに選択・適用するカスタムノードパッ
![RandomLoRAloderワークフロー例](./images/RLL_final_single.webp)
![FilteredRandomLoRAloderワークフロー例](./images/filterd_final_single.webp)
---
## ノード概要
@@ -215,6 +216,7 @@ LoRA適用: フォルダ指定機能を使用 ✅
|------|------|------------|
| `lora_folder_path_X` | LoRAフォルダの絶対パス | (空) |
| `include_subfolders_X` | サブフォルダを含めるか | `true` |
| `unique_by_filename_X` | 重複ファイル名を除外 | `true` |
| `model_strength_X` | MODELへの適用強度 | `"1.0"` |
| `clip_strength_X` | CLIPへの適用強度 | `"1.0"` |
| `num_loras_X` | 選択するLoRA個数 | グループ1: `1`, グループ2/3: `0` |
@@ -714,6 +716,7 @@ LoRAを適用せず、単純にLoRA構文削除フィルタとしてこのノー
#### フォルダ設定
- `lora_folder_path` - フォルダパス(1つ)
- `include_subfolders` - サブフォルダを含む(デフォルト: True)
- `unique_by_filename` - サブフォルダ間の重複ファイル名を除外(デフォルト: True)
#### キーワードフィルタ
- `keyword_filter` - キーワード(カンマ区切り、例: "style, anime")
@@ -730,6 +733,7 @@ LoRAを適用せず、単純にLoRA構文削除フィルタとしてこのノー
#### 追加プロンプト
- `additional_prompt_positive` - 追加ポジティブプロンプト(入力接続 or 直接記述)
- `additional_prompt_negative` - 追加ネガティブプロンプト(入力接続 or 直接記述)
#### seed
- `seed` - ランダムシード
@@ -812,6 +816,35 @@ filter_mode: "OR"
→ "style" OR "anime" のいずれかを含むファイルにマッチ
```
### 重複ファイル名の処理
同じLoRAファイル名が複数のサブフォルダに存在する場合(例: オリジナルとバックアップ)、`unique_by_filename`オプションで同じLoRAが複数回選択されるのを防ぎます。
**例:**
```
フォルダ構成:
/LoRA/
├── style/anime_v1.safetensors
└── backup/anime_v1.safetensors
unique_by_filename: True(デフォルト)
→ anime_v1.safetensorsは1つだけ選択される
→ 最初に見つかったものを保持(/LoRA/style/anime_v1.safetensors)
unique_by_filename: False
→ 両方のファイルが選択される可能性あり
→ 同じLoRAが異なる強度で2回適用される可能性
```
**重複検出時のログ出力:**
```
[FilteredRandomLoRALoader] Duplicate filename detected: anime_v1.safetensors
Keeping: /LoRA/style/anime_v1.safetensors
Skipping: /LoRA/backup/anime_v1.safetensors
```
**推奨:** 意図しない重複適用を避けるため、デフォルトの`True`を維持してください。
### メタデータ検索のパフォーマンス
**ファイル名検索(デフォルト):**
@@ -875,8 +908,6 @@ filter_mode: "OR"
#### Wildcard Encodeとの連携
![Wildcard Encode+FilteredRandomLoRALoderワークフロー](./images/filterd_final_wce.webp)
```
[Wildcard Encode]
populated_text: "1girl, beautiful"