Commit Graph
4 Commits
Author SHA1 Message Date
EthanfelandClaude Opus 4.6 3342ca2264 fix: space created nodes by type to prevent overlap
Use running Y offset with per-type spacing: 150px for LoraLoader
nodes, 300px for LoRAStackDynamic nodes. Prevents solo loader
nodes from overlapping each other.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 22:00:53 +01:00
EthanfelandClaude Opus 4.6 e45ee8a44b fix: let ComfyUI handle report and heatmap display natively
Remove custom DOM widget for report text — rely on ComfyUI's
built-in ui.text and ui.images rendering instead. JS extension
now only handles node creation/cleanup logic.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 21:49:20 +01:00
EthanfelandClaude Opus 4.6 dd42043766 feat: Compatibility Analyzer solo LoRA nodes, create_nodes toggle, and settings cleanup
- Solo LoRAs now create LoraLoader/LoraLoaderModelOnly nodes (based on CLIP)
- Merge groups continue creating LoRAStackDynamic nodes
- Use original strengths instead of auto-strengths for created nodes
- Add create_nodes toggle to disable automatic node creation
- Move smooth_slerp_gate from AutoTunerSettings to shared MergeSettings
- Add smooth_slerp_gate to main LoRAOptimizer and _SIMPLE_DEFAULTS
- Add decision_smoothing (0.25) to _SIMPLE_DEFAULTS
- Remove output_mode from AutoTunerSettings (hardcode "merge")
- Rewrite all settings node tooltips for clarity
- Update tests for new settings structure

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 21:30:13 +01:00
EthanfelandClaude Opus 4.6 00f6f315d1 fix: SaveMergedLoRA produces correct rank and dtype for Z-Image/fused-QKV models
Three compounding bugs caused saved LoRAs to be 2.3GB (instead of ~350MB) and
produce absurd images:

1. QKV refusion expanded all SVD-compressed LoRAAdapters to full-rank float32
   diffs, destroying all compression. SaveMergedLoRA saw 0 low-rank patches.

2. With no surviving LoRAAdapters, auto-rank fell back to 128 — too low for
   a merge of two rank-128 LoRAs (needs sum_rank=256), losing ~50% of signal.

3. _compress_to_lowrank returned float32 tensors (SVD needs float32 internally
   but never cast back), doubling file size vs expected fp16.

Fixes:
- _compress_to_lowrank now preserves input dtype (also halves merge-time RAM)
- QKV refusion downcasts fused diffs back to original dtype
- Optimizer passes sum_rank in lora_data so SaveMergedLoRA uses correct rank
- SaveMergedLoRA detects native dtype and enforces it on all saved tensors

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 18:00:20 +01:00