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>
21 lines
594 B
TOML
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"
|