Files
ethanfel-ComfyUI-LoRA-Optim…/assets/key-normalization.svg
T
EthanfelandClaude Opus 4.6 811b6872f4 fix: update SVGs with missing features and outdated info
- optimizer-pipeline: add consensus/orthogonal/SLERP to auto-select,
  update architecture list, add disabled compress_patches option
- merge-strategies: add consensus merge mode as 5th row
- key-normalization: add ACE-Step architecture, fix normalize_keys
  default text (now enabled by default)
- merge-use-cases: fix misleading "TIES trims 50%" claim

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

98 lines
7.9 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 340">
<defs>
<linearGradient id="knbg" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#0f172a"/>
<stop offset="100%" style="stop-color:#1e1b4b"/>
</linearGradient>
</defs>
<rect width="900" height="340" rx="12" fill="url(#knbg)"/>
<text x="450" y="28" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#22c55e" text-anchor="middle" font-weight="700" letter-spacing="2">ARCHITECTURE-AWARE KEY NORMALIZATION</text>
<!-- Problem: different trainer formats -->
<rect x="30" y="46" width="260" height="160" rx="10" fill="#1e293b" stroke="#e94560" stroke-width="1.5"/>
<rect x="30" y="46" width="260" height="26" rx="10" fill="#e94560" opacity="0.12"/>
<rect x="30" y="62" width="260" height="10" fill="#1e293b"/>
<text x="160" y="64" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#e94560" text-anchor="middle" font-weight="700">PROBLEM: Key Mismatch</text>
<text x="48" y="88" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#f87171" font-weight="600">Kohya:</text>
<text x="95" y="88" font-family="monospace, Consolas" font-size="9" fill="#94a3b8">lora_unet_down_blocks_0_...</text>
<text x="48" y="106" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#c084fc" font-weight="600">AI-Toolkit:</text>
<text x="115" y="106" font-family="monospace, Consolas" font-size="9" fill="#94a3b8">transformer.transformer_...</text>
<text x="48" y="124" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#3b82f6" font-weight="600">LyCORIS:</text>
<text x="105" y="124" font-family="monospace, Consolas" font-size="9" fill="#94a3b8">lycoris_unet_blocks_0_...</text>
<text x="48" y="142" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#22c55e" font-weight="600">Diffusers:</text>
<text x="110" y="142" font-family="monospace, Consolas" font-size="9" fill="#94a3b8">unet.down_blocks.0.attn...</text>
<line x1="45" y1="154" x2="275" y2="154" stroke="#334155" stroke-width="0.5"/>
<text x="160" y="172" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#e94560" text-anchor="middle">Same weights, different names</text>
<text x="160" y="186" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#e94560" text-anchor="middle">= keys don't overlap = no merge</text>
<!-- Arrow -->
<line x1="290" y1="126" x2="328" y2="126" stroke="#94a3b8" stroke-width="1.5"/>
<polygon points="328,121 338,126 328,131" fill="#94a3b8"/>
<!-- Auto-detect + normalize -->
<rect x="340" y="46" width="230" height="160" rx="10" fill="#1e293b" stroke="#22c55e" stroke-width="1.5"/>
<rect x="340" y="46" width="230" height="26" rx="10" fill="#22c55e" opacity="0.1"/>
<rect x="340" y="62" width="230" height="10" fill="#1e293b"/>
<text x="455" y="64" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#22c55e" text-anchor="middle" font-weight="700">AUTO-DETECT + NORMALIZE</text>
<text x="358" y="88" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#ccd6f6">1. Detect architecture from keys</text>
<text x="358" y="106" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#ccd6f6">2. Apply format-specific remap</text>
<text x="358" y="124" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#ccd6f6">3. Unified canonical format</text>
<line x1="355" y1="134" x2="555" y2="134" stroke="#334155" stroke-width="0.5"/>
<text x="455" y="152" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#22c55e" text-anchor="middle">All keys now match</text>
<text x="455" y="168" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#64748b" text-anchor="middle">Proper overlap detection</text>
<text x="455" y="184" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#64748b" text-anchor="middle">Correct conflict analysis</text>
<!-- Arrow -->
<line x1="570" y1="126" x2="608" y2="126" stroke="#94a3b8" stroke-width="1.5"/>
<polygon points="608,121 618,126 608,131" fill="#94a3b8"/>
<!-- Result -->
<rect x="620" y="46" width="250" height="160" rx="10" fill="#1e293b" stroke="#a78bfa" stroke-width="1.5"/>
<rect x="620" y="46" width="250" height="26" rx="10" fill="#a78bfa" opacity="0.1"/>
<rect x="620" y="62" width="250" height="10" fill="#1e293b"/>
<text x="745" y="64" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#a78bfa" text-anchor="middle" font-weight="700">MERGE CORRECTLY</text>
<text x="638" y="88" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#ccd6f6">Keys aligned across trainers</text>
<text x="638" y="106" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#ccd6f6">Full overlap detected</text>
<text x="638" y="124" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#ccd6f6">Per-prefix analysis works correctly</text>
<line x1="635" y1="134" x2="855" y2="134" stroke="#334155" stroke-width="0.5"/>
<text x="638" y="152" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#a78bfa">Z-Image: QKV split + re-fuse</text>
<text x="638" y="168" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#64748b">FLUX: AI-Toolkit/Kohya unified</text>
<text x="638" y="184" font-family="Segoe UI, Arial, sans-serif" font-size="10" fill="#64748b">Wan: LyCORIS/diffusers unified</text>
<!-- Supported architectures row -->
<text x="450" y="232" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#94a3b8" text-anchor="middle" font-weight="600">Supported Architectures</text>
<rect x="30" y="246" width="95" height="28" rx="14" fill="#22c55e" opacity="0.12"/>
<text x="77" y="264" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#22c55e" text-anchor="middle" font-weight="600">Z-Image</text>
<rect x="133" y="246" width="70" height="28" rx="14" fill="#a78bfa" opacity="0.12"/>
<text x="168" y="264" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#a78bfa" text-anchor="middle" font-weight="600">FLUX</text>
<rect x="211" y="246" width="65" height="28" rx="14" fill="#f59e0b" opacity="0.12"/>
<text x="243" y="264" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#f59e0b" text-anchor="middle" font-weight="600">Wan</text>
<rect x="284" y="246" width="70" height="28" rx="14" fill="#e94560" opacity="0.12"/>
<text x="319" y="264" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#e94560" text-anchor="middle" font-weight="600">SDXL</text>
<rect x="362" y="246" width="90" height="28" rx="14" fill="#3b82f6" opacity="0.12"/>
<text x="407" y="264" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#3b82f6" text-anchor="middle" font-weight="600">LTX Video</text>
<rect x="460" y="246" width="90" height="28" rx="14" fill="#38bdf8" opacity="0.12"/>
<text x="505" y="264" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#38bdf8" text-anchor="middle" font-weight="600">ACE-Step</text>
<rect x="558" y="246" width="110" height="28" rx="14" fill="#c084fc" opacity="0.12"/>
<text x="613" y="264" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#c084fc" text-anchor="middle" font-weight="600">Qwen-Image</text>
<rect x="676" y="246" width="115" height="28" rx="14" fill="#64748b" opacity="0.12"/>
<text x="733" y="264" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#64748b" text-anchor="middle" font-weight="600">SD 1.5 / others</text>
<!-- Bottom notes -->
<text x="450" y="300" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#94a3b8" text-anchor="middle">Enabled by default (<tspan font-family="monospace" fill="#22c55e">normalize_keys: enabled</tspan>). Essential when mixing LoRAs from different trainers.</text>
<text x="450" y="320" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#64748b" text-anchor="middle">Auto-detects architecture from LoRA key patterns. No manual configuration needed.</text>
</svg>