🧪 LoRa x Sampler x Scheduler Grid (Forge)
ファイルをダウンロード
このバージョンについて
⚙️ コアロジック
🛑 統合 state.interrupt()
停止ボタンが、XYグリッドおよびバッチグリッドの両モードで、安定して生成を停止するようになりました。
safe_processed()を使用して、if state.interrupted:のチェックを追加し、 Graceful な早期脱出を実装しました。中첩ループすべてを処理し、中断時にForgeがハングしないようにしました。
🧩 グリッドレイアウトのログ記録
生成前にコンソールに情報を追加:
🧩 XY グリッドレイアウト → rows=..., cols=..., samplers=..., schedulers=..., weights=...グリッド設定と合計反復回数を視覚化できます。
↕️ LoRAウェイトの向き修正
LoRAラベル位置が
⬅️ 左または➡️ 右のとき、
→ LoRAウェイトは下(最小) → 上(最大) と並べ替えられ、
直感的なY軸動作に一致します。XYグリッド生成前に
current_weightsリストを逆順にすることで実装しました。
🎨 プロンプト / LoRAの処理
🧠 再構築 apply_params()
weight == 0.0の場合、LoRAは完全にスキップされます。
→ プロンプトにLoRAタグやトリガー単語を追加しません。トリガー単語や
<lora:...>タグの重複を防止します。不要なコンマやスペースを削除し、プロンプトのフォーマットを一貫性を持たせます。
新しいプロンプト構築順:
[メインプロンプト], <lora:name:weight>, トリガーメタデータに不要な “, , , , ,” が含まれなくなりました。
🧩 XYグリッド
✅ 改善された生成ループ
縦方向と横方向のオーディエンスに適した正しい行・列インデックスを適用。
save_cells=Trueの場合、すべての生成セルを正しく保存します。すべてのラベル位置(
Top,Bottom,Left,Right)と互換性があります。
🧾 強化されたログ記録
各反復で詳細な進捗を出力:
🔄[7/36] Sampler='Euler a', Scheduler='Automatic', LoRA='Apone3d', Weight=0.50, Seed=...XYグリッドとバッチグリッドのログ形式を統一。
🧩 バッチグリッド
⚙️ 洗練された制御フロー
すべてのネストループに
state.interrupt()の安全チェックを追加。明確なログと共にクリーンな終了:
🛑 ユーザーが手動で生成を停止しました。LoRAウェイト = 0.0 の動作をXYグリッドと identical に統一 —
LoRAやトリガーは適用されません。
🧩 グリッド検証と保存
validate_cells_for_grid()の出力を改善:🚫 グリッド検証エラー: ❌ セル [1,2] が None ...空または無効なグリッドの保存を防止。
保存されるセルファイル名にすべての関連パラメータを含める:
LoRA_W0.50_S-Euler_SchAutomatic_1_2.webp
💬 ログとUX
一貫した絵文字コード化メッセージ:
🏁 開始 • 🔄 進行 • 💾 保存 • 🛑 中断 • ✅ 完了 • ❌ エラーすべての
print()呼び出しでflush=Trueを使用 → 即時ターミナル出力。グリッド生成後に
gc.collect()を追加し、メモリのクリーンアップを改善。
🧰 内部改善
重複する
build_grid_labels()呼び出しを削除。ネストループのロジックを簡略化し、命名を統一(
sampler_label,scheduler_label)。get_cell_indices()のパラメータとorientationの処理を標準化。明確性とForge UIの動作に合わせて微調整。
🧾 要約
🛑 停止処理:state.interrupt()を統合 → 予測可能な停止
↕️ 縦方向LoRA:ウェイトを反転 → 下=最小、上=最大
🧠 プロンプトロジック:apply_params()を再構築 → クリーンで重複のないプロンプト
🧩 XYグリッド:レイアウトログを追加 → グリッド構成の明確な概観
🧱 バッチグリッド:LoRAとトリガーのロジックを統一 → 一貫した出力
💬 ログ:絵文字+flush → 読みやすくリアルタイムのフィードバック
🧹 メモリ:gc.collect()を追加 → 残留メモリの蓄積を防止






