File size: 977 Bytes
0a1410b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from safetensors import safe_open
import re

path = "iska.safetensors"
with safe_open(path, framework="pt") as f:
    meta = f.metadata()
    rank = meta.get("ss_network_dim") or meta.get("lora_rank") or meta.get("r")
    if rank:
        print("rank:", rank)
    else:
        # Look for a typical LoRA up/down weight
        up = next((k for k in f.keys() if re.search(r"lora(_\w+)?\.up\.weight$", k)), None)
        down = next((k for k in f.keys() if re.search(r"lora(_\w+)?\.down\.weight$", k)), None)
        if up:
            s = f.get_tensor(up).shape
            r = s[1] if len(s) in (2,4) else min(s)
        elif down:
            s = f.get_tensor(down).shape
            r = s[0] if len(s) in (2,4) else min(s)
        else:
            # Fallback: smallest dimension of any lora weight tensor
            k = next(k for k in f.keys() if "lora" in k and k.endswith(".weight"))
            s = f.get_tensor(k).shape
            r = min(s)
        print("rank:", r)