LTX2.3-Studio / tools /refresh_models.py
techfreakworm's picture
ci: run unit tests + ruff lint on every push
3ea399a unverified
"""Materialize all LTX 2.3 model files for every mode by walking each template."""
from __future__ import annotations
import pathlib
import sys
# Ensure project root is on sys.path so `import models` / `import workflow` work
# when this script is invoked directly (e.g. `python tools/refresh_models.py`).
_PROJECT_ROOT = pathlib.Path(__file__).resolve().parent.parent
if str(_PROJECT_ROOT) not in sys.path:
sys.path.insert(0, str(_PROJECT_ROOT))
import models # noqa: E402
from workflow import VALID_MODES, load_template # noqa: E402
def main() -> int:
needed: set[str] = set()
for mode in VALID_MODES:
try:
wf = load_template(mode)
needed.update(models.walk_workflow_for_models(wf))
except FileNotFoundError:
print(f" WARNING: workflows/{mode}.json missing — run tools/extract_modes.py first")
if not needed:
print("Nothing to do.")
return 0
print(f"Materializing {len(needed)} model files...")
for event in models.ensure_models(needed):
marker = "OK" if event.mb_done >= event.mb_total else "DL"
print(f" [{marker}] {event.filename} {event.mb_done:.1f}/{event.mb_total:.1f} MB")
print("Done.")
return 0
if __name__ == "__main__":
sys.exit(main())