Files
Ethanfel 27482bb81a fix: restore inline loader parity and retire legacy nodes (1.8.6)
Track exact stock-loader calls across equal strengths, disjoint targets and MODEL/CLIP-only slots. Preserve captured CLIP biases and emit stock-loadable CLIP export aliases.

Remove the Legacy optimizer registration, both WanVideoWrapper-specific nodes, obsolete bridge UI and bundled legacy example. Document replacements and add stock-loader/file-stack/export parity checks to CI. Existing workflows using removed nodes require migration.

Validate the staged tree: 1064 Python tests and 69 subtests passed; 3 CUDA-only skipped; JS migrations and real ComfyUI round trips passed. Keep the rejected H3 search prototype and unrelated plans out of this release.
2026-09-09 12:45:10 +02:00

22 lines
1.1 KiB
Python

"""Retired nodes must not return to the menu or generated node schemas."""
from tests.test_lora_optimizer import lora_optimizer as m
def test_retired_nodes_are_not_registered():
removed = {"LoRAOptimizer", "WanVideoLoRAOptimizer", "MergedLoRAToWanVideo"}
assert removed.isdisjoint(m.NODE_CLASS_MAPPINGS)
assert removed.isdisjoint(m.NODE_DISPLAY_NAME_MAPPINGS)
assert set(m.NODE_CLASS_MAPPINGS) == set(m.NODE_DISPLAY_NAME_MAPPINGS)
assert not any("Legacy" in name or "WanVideo" in name
for name in m.NODE_DISPLAY_NAME_MAPPINGS.values())
def test_shared_engine_and_supported_nodes_remain_available():
assert m.NODE_CLASS_MAPPINGS["LoRAOptimizerSimple"] is m.LoRAOptimizerSimple
assert m.NODE_CLASS_MAPPINGS["LoRAOptimizerInline"] is m.LoRAOptimizerInline
assert m.NODE_CLASS_MAPPINGS["LoRAAutoTuner"] is m.LoRAAutoTuner
assert m.NODE_CLASS_MAPPINGS["LoRAMergeSelector"] is m.LoRAMergeSelector
assert issubclass(m.LoRAOptimizerSimple, m.LoRAOptimizer)
assert not hasattr(m, "WanVideoLoRAOptimizer")
assert not hasattr(m, "MergedLoRAToWanVideo")