zero0303's picture
Add files using upload-large-folder tool
23c283a verified
Raw History Blame Contribute Delete
1.15 kB
"""Load the exported weights (models/maya2, written by export/export_weights.py)."""
import json
import os
import mlx.core as mx
MODELS = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "models")
# the dynamic 8-bit weights (the published model); the 16-bit export (models/maya2, made by export_weights.py) when
# only that one is present
DEFAULT_DIR = next((os.path.join(MODELS, d) for d in ("maya2-8bit", "maya2") if os.path.isdir(os.path.join(MODELS, d))),
os.path.join(MODELS, "maya2-8bit"))
RELEASE_16BIT = os.path.join(MODELS, "maya2")
def load_meta(path=DEFAULT_DIR):
return json.load(open(os.path.join(path, "meta.json")))
def load(names, path=DEFAULT_DIR):
"""Merge the given safetensors files into one dict of mx arrays (dtypes as stored)."""
out = {}
for n in names:
part = mx.load(os.path.join(path, n))
dup = set(part) & set(out)
if dup:
raise RuntimeError(f"{n}: duplicate tensors {sorted(dup)[:4]}")
out.update(part)
return out
def backbone_files(meta):
return [f for f in meta["files"] if f.startswith("backbone-")]