Files
ethanfel-ComfyUI-LoRA-Optim…/pyproject.toml
T
EthanfelandClaude Opus 4.8 cb1ac2dacc fix(svd): replace torch.svd_lowrank with torch.linalg.svd (GPU-stable)
A Krea 2 merge hard-crashed (Fatal Python error: Aborted / 'terminate
called') inside torch.svd_lowrank -> get_approximate_basis, called from
_compress_to_lowrank. It's a C++ abort, NOT a Python exception, so the
GPU->CPU try/except fallback can't catch it — the process dies.

Root cause is the randomized lowrank QR kernel on a bleeding-edge stack
(Blackwell + torch 2.12/cu130), not the data (both LoRAs are NaN/Inf-free)
and not Krea-specific: the user's usual low-rank weighted_average merges take
the exact-linear fast path (no SVD), while this 2-LoRA mixed-format merge
routes through dense merge + compression. Proof it's svd_lowrank-specific:
the extract feature runs torch.linalg.svd on the SAME cuda device fine.

Fix: route every svd_lowrank call through _svd_lowrank_safe (torch.linalg.svd,
truncated) — none are in the per-candidate hot loop. Also keep an opt-in
LORA_OPTIMIZER_SVD_DEVICE=cpu escape hatch + the existing svd_device=cpu
setting. 284 tests pass. Registry 1.7.13.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 22:27:08 +02:00

21 lines
594 B
TOML

[project]
name = "comfyui-lora-optimizer"
description = "Auto-optimizer node for combining multiple LoRAs via diff-based merging with TIES conflict resolution"
version = "1.7.13"
license = { text = "GPL-3.0-only" }
dependencies = [
"scikit-learn>=1.3",
]
[project.urls]
Repository = "https://github.com/ethanfel/ComfyUI-LoRA-Optimizer"
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "--import-mode=importlib"
[tool.comfy]
PublisherId = "ethanfel"
DisplayName = "LoRA Optimizer"
Icon = "https://raw.githubusercontent.com/ethanfel/ComfyUI-LoRA-Optimizer/main/assets/banner.svg"