techfreakworm commited on
Commit
c397c07
·
unverified ·
1 Parent(s): 3d485ad

feat(tools): refresh_models materializes every required model

Browse files
Files changed (1) hide show
  1. tools/refresh_models.py +37 -0
tools/refresh_models.py ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Materialize all LTX 2.3 model files for every mode by walking each template."""
2
+ from __future__ import annotations
3
+
4
+ import pathlib
5
+ import sys
6
+
7
+ # Ensure project root is on sys.path so `import models` / `import workflow` work
8
+ # when this script is invoked directly (e.g. `python tools/refresh_models.py`).
9
+ _PROJECT_ROOT = pathlib.Path(__file__).resolve().parent.parent
10
+ if str(_PROJECT_ROOT) not in sys.path:
11
+ sys.path.insert(0, str(_PROJECT_ROOT))
12
+
13
+ import models # noqa: E402
14
+ from workflow import VALID_MODES, load_template # noqa: E402
15
+
16
+
17
+ def main() -> int:
18
+ needed: set[str] = set()
19
+ for mode in VALID_MODES:
20
+ try:
21
+ wf = load_template(mode)
22
+ needed.update(models.walk_workflow_for_models(wf))
23
+ except FileNotFoundError:
24
+ print(f" WARNING: workflows/{mode}.json missing — run tools/extract_modes.py first")
25
+ if not needed:
26
+ print("Nothing to do.")
27
+ return 0
28
+ print(f"Materializing {len(needed)} model files...")
29
+ for event in models.ensure_models(needed):
30
+ marker = "OK" if event.mb_done >= event.mb_total else "DL"
31
+ print(f" [{marker}] {event.filename} {event.mb_done:.1f}/{event.mb_total:.1f} MB")
32
+ print("Done.")
33
+ return 0
34
+
35
+
36
+ if __name__ == "__main__":
37
+ sys.exit(main())