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

59 lines
3.4 KiB
Markdown

# 1.8.6: Inline fix and node migration
Inline now records the exact patch tuples appended by each stock LoRA loader
call instead of guessing ownership from strength object identity. Equal
strengths, repeated cached files, disjoint/overlapping targets and branch-only
calls retain separate slots. Unsupported/order-dependent patches stay in place.
Upstream models and shared attachments are not mutated by the inline node;
captured source references are removed from its output clone after stripping.
Captured CLIP bias targets are retained rather than silently skipped when only
their sibling weight appears in the loader alias map. Inline CLIP exports use
verified loader aliases; previously bare targets could silently fail to reload.
Restart ComfyUI after installing the fix so loaders execute with tracking enabled.
Unstamped third-party loaders retain best-effort capture; check the report.
## Removed nodes
| Removed class / display name | Replacement |
| --- | --- |
| `LoRAOptimizer` / LoRA Optimizer (Legacy) | `LoRAOptimizerSimple` / LoRA Optimizer, plus Optimizer Settings and optional Merge Settings |
| `WanVideoLoRAOptimizer` / WanVideo LoRA Optimizer | Native WAN loader returning `MODEL`, then the regular optimizer |
| `MergedLoRAToWanVideo` / Merged LoRA → WanVideo | Native `MODEL` merge/application path; no supported wrapper bridge |
These registrations are removed, not hidden aliases. Existing workflows using
them will report missing nodes until migrated. No personal workflow is rewritten
or deleted. The shared Python merge engine remains for the supported nodes.
`WANVIDEOMODEL` cannot be converted to `MODEL` just by changing socket types.
For the old AutoTuner bridge, set AutoTuner to `tuning_only`. Connect its unchanged
MODEL/CLIP and `tuner_data` to the current optimizer, with the same stack on both.
Leave `settings` unconnected for replay; connected Settings take priority.
Use Merge Selector for another rank. Do not apply the same merge twice by passing
already-merged weights into another full application.
The obsolete frontend bridge and bundled legacy example are removed and remain
recoverable from Git history. Other functional utility nodes and native WAN
support remain.
## Validation scope
Regression tests reproduce equal-strength attribution failures. The separate CPU
integration test uses real stock Load LoRA / Model Only nodes, safetensors and
ComfyUI patch application. It compares inline with file-stack merging and
save/reload for weighted sum, weighted average, SLERP, TIES and per-prefix modes,
including disabling the middle MODEL-only call. These are numerical correctness
checks, not claims of better-looking renders for every merge.
Validation on September 9, 2026, against an isolated copy excluding the unrelated
F08 search prototype: **1,064 Python tests and 69 subtests passed**, three CUDA-only
tests skipped; three JavaScript migrations and all ten stock-loader parity cases
passed. The existing real ComfyUI H3/native-export round trip also passed. Tests
used the user's `13_env_py313` environment in CPU mode, without a server restart.
Optimizer source SHA-256 in that copy:
`54041a1c5c414b61a3c052f3349b8b3268abf122ccf3d181aa2f1fa54e2f36ca`.
The first isolated-copy setup had a patch-format error and left the old source
in place; its failing regressions are not counted as validation of the fix.
The counts above are from the completed rerun after correcting that setup.