- nodes/shared/{paths,metadata,routes}.py: single copies of
_sort_paths_newest_first, _strip_counter, _safe_json_loads, plus a
guarded register_get_route helper.
- wan22/latent_io.py: lift triplicated _coerce_enum, duplicated
_strip_counter and the two ~120-line _extract_sd3_shift methods to
module level (~180 duplicated lines removed).
- All five /mxd/* routes now register through the guarded helper, so a
missing PromptServer can no longer break node registration
(wan22 previously accessed PromptServer.instance.routes unguarded at
module scope).
- loraloader_mxd/server/utils_server.py: drop the never-called rgthree
/rgthree/ static-page routes and is_param_truthy; keep get_param /
is_param_falsy which routes_model_info.py imports.
- Delete inert web/addons/zip_loader/__init__.py.
Schema harness: 68 nodes identical to baseline.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Add integrated Lora Loader MXD support and frontend. Introduces a new loraloader_mxd package (constants, logging, power node, prompt utils, server API routes, model info utils, server helpers, general utils, and userdata migration/IO). Adds many web frontend files for the MXD UI and registers the node in the top-level __init__.py. Updates README with merge/migration notes and adds userdata/ to .gitignore. Also includes minor comment/tuning change in maxedoutnodes.py and small updates to existing web/index.js and project metadata.