Backfill missing default keys into sequences on JSON load

Ensures all sequences have required keys like mode, cfg, etc.
from DEFAULTS via setdefault so they persist on next save.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-18 23:24:34 +01:00
parent 82e4ba526c
commit c880c16865
+10
View File
@@ -144,6 +144,15 @@ def save_snippets(snippets):
json.dump(snippets, f, indent=4)
os.replace(tmp, SNIPPETS_FILE)
def _ensure_default_keys(data: dict) -> None:
"""Ensure all sequences have required keys from DEFAULTS."""
for item in data.get(KEY_BATCH_DATA, []):
if not isinstance(item, dict):
continue
for k, v in DEFAULTS.items():
item.setdefault(k, v)
def _migrate_lora_keys(data: dict) -> None:
"""Split legacy <lora:name:strength> values into separate name/strength keys in-place."""
for item in data.get(KEY_BATCH_DATA, []):
@@ -180,6 +189,7 @@ def load_json(path: str | Path) -> tuple[dict[str, Any], float]:
try:
with open(path, 'r') as f:
data = json.load(f)
_ensure_default_keys(data)
_migrate_lora_keys(data)
return data, path.stat().st_mtime
except Exception as e: