nx_safetensors_gate.nx source
↩ module page · 95 lines · 6336 B
1// nx_safetensors_gate.nx -- sovereign SAFETENSORS reader: load real SD model weight METADATA, the next
2// sdcpp-path rung (you cannot race sdcpp without reading its weights). Format: [u64 LE header-length N]
3// [N bytes JSON: {"name":{"dtype":..,"shape":[..],"data_offsets":[start,end]}, ...}] [raw tensor bytes].
4// BOUNDED read (sys_openat_rd + sys_read of just 8+N bytes -- NEVER the multi-GB body) so it scales to any
5// model. Runs against a REAL diffusion safetensors: enumerates tensors, extracts the first tensor's dtype +
6// data_offsets, and verifies the data region matches the file (8 + N + data == file size). Sovereign parse,
7// no python/no HF libs. No hw writes (Rule 26). expect_exit: 0 license_tier: ORIGINAL
8import "nx_syscalls.nx"
9import "nx_gate_verdict.nx"
10
11func sf_puts(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
12func sf_num(v: i64) -> i64 { let b: *u8=sys_mmap(28); var m: i64=v; if m<0{m=0-m;sys_write(1,"-" as *u8,1)} let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=48 as u8;k=1} while m>0{t[k]=(48+(m%10)) as u8;m=m/10;k=k+1} var i: i64=0; while i<k{b[i]=t[k-1-i];i=i+1} sys_write(1,b,k); return 0 }
13func sf_eq(buf: *u8, pos: i64, len: i64, pat: *u8, pl: i64) -> i64 { var j: i64=0; while j<pl { if pos+j>=len { return 0 } if buf[pos+j]!=pat[j] { return 0 } j=j+1 } return 1 }
14func sf_find(buf: *u8, len: i64, start: i64, pat: *u8, pl: i64) -> i64 { var i: i64=start; while i+pl<=len { if sf_eq(buf,i,len,pat,pl)==1 { return i } i=i+1 } return 0-1 }
15func sf_count(buf: *u8, len: i64, pat: *u8, pl: i64) -> i64 { var c: i64=0; var i: i64=0; while i+pl<=len { if sf_eq(buf,i,len,pat,pl)==1 { c=c+1; i=i+pl } else { i=i+1 } } return c }
16func is_dig(c: i64) -> i64 { if c>=48 { if c<=57 { return 1 } } return 0 }
17func is_up(c: i64) -> i64 { if c>=65 { if c<=90 { return 1 } } return 0 }
18func next_digit(buf: *u8, p: i64, len: i64) -> i64 { var q: i64=p; while q<len { if is_dig(buf[q] as i64)==1 { return q } q=q+1 } return len }
19func next_upper(buf: *u8, p: i64, len: i64) -> i64 { var q: i64=p; while q<len { if is_up(buf[q] as i64)==1 { return q } q=q+1 } return len }
20func read_int(buf: *u8, p: i64, len: i64, outv: *i64) -> i64 { var q: i64=p; var v: i64=0; while q<len { let c: i64=buf[q] as i64; if is_dig(c)==1 { v=v*10+(c-48); q=q+1 } else { outv[0]=v; return q } } outv[0]=v; return q }
21
22func main() -> i64 {
23 sf_puts("SOVEREIGN safetensors reader: enumerate real SD weights (bounded header read, no python/HF)\n\n" as *u8)
24 let path: *u8 = "/mnt/c/Users/elder/elder-ai-platform/models/unified/diffusion/Realism_Engine_Klein_V2.safetensors\x00" as *u8
25 let fd: i64 = sys_openat_rd(path)
26 if fd < 0 { sf_puts("RED: cannot open file\n" as *u8); sys_exit(1); return 1 }
27
28 let fsize: i64 = sys_lseek(fd, 0, 2) // SEEK_END
29 sys_lseek(fd, 0, 0) // SEEK_SET
30
31 let hdr8: *u8 = sys_mmap(16)
32 sys_read(fd, hdr8, 8)
33 var N: i64 = 0
34 var i: i64 = 0
35 while i<8 { N = N | ((hdr8[i] as i64) << (8*i)); i=i+1 }
36
37 let json: *u8 = sys_mmap(N+32)
38 var got: i64 = 0
39 var reading: i64 = 1
40 while reading==1 { let r: i64 = sys_read(fd, (json + got) as *u8, N-got); if r<=0 { reading=0 } else { got=got+r; if got>=N { reading=0 } } }
41 sys_close(fd)
42
43 let ntensors: i64 = sf_count(json, N, "dtype" as *u8, 5)
44
45 // first tensor dtype = first UPPERCASE-starting token after the first "dtype"
46 let di: i64 = sf_find(json, N, 0, "dtype" as *u8, 5)
47 let dt: *u8 = sys_mmap(16)
48 var dl: i64 = 0
49 if di>=0 {
50 var q: i64 = next_upper(json, di+5, N)
51 var go: i64 = 1
52 while go==1 { if q>=N { go=0 } else { let c: i64=json[q] as i64; if is_up(c)==1 { dt[dl]=json[q]; dl=dl+1; q=q+1 } else { if is_dig(c)==1 { dt[dl]=json[q]; dl=dl+1; q=q+1 } else { go=0 } } } }
53 }
54 dt[dl]=0 as u8
55
56 // first data_offsets [start,end]
57 let oi: i64 = sf_find(json, N, 0, "data_offsets" as *u8, 12)
58 let ov: *i64 = sys_mmap(16) as *i64
59 var o_start: i64 = 0
60 var o_end: i64 = 0
61 if oi>=0 {
62 let d1: i64 = next_digit(json, oi+12, N)
63 let p1: i64 = read_int(json, d1, N, ov)
64 o_start = ov[0]
65 let d2: i64 = next_digit(json, p1, N)
66 read_int(json, d2, N, ov)
67 o_end = ov[0]
68 }
69
70 let data_size: i64 = fsize - 8 - N
71
72 sf_puts(" file size = "); sf_num(fsize); sf_puts(" bytes ("); sf_num(fsize/1024/1024); sf_puts(" MB)\n");
73 sf_puts(" JSON header N = "); sf_num(N); sf_puts(" bytes\n");
74 sf_puts(" tensors enumerated = "); sf_num(ntensors); sf_puts("\n");
75 sf_puts(" first tensor dtype = "); sf_puts(dt); sf_puts(" data_offsets = ["); sf_num(o_start); sf_puts(", "); sf_num(o_end); sf_puts("]\n");
76 sf_puts(" raw data region = "); sf_num(data_size); sf_puts(" bytes (file - 8 - N)\n\n");
77
78 var pass: i64=0
79 var ttl: i64=0
80 ttl=ttl+1; sf_puts(" T1 opened + bounded-read a REAL multi-MB safetensors (fsize>0, N>0): "); if fsize>0 { if N>0 { pass=pass+1; sf_puts("PASS\n") } else { sf_puts("FAIL\n") } } else { sf_puts("FAIL\n") }
81 ttl=ttl+1; sf_puts(" T2 tensors enumerated from the JSON header (>0): "); if ntensors>0 { pass=pass+1; sf_puts("PASS\n") } else { sf_puts("FAIL\n") }
82 ttl=ttl+1; sf_puts(" T3 first tensor metadata parsed (dtype non-empty + end>start): "); if dl>0 { if o_end>o_start { pass=pass+1; sf_puts("PASS\n") } else { sf_puts("FAIL\n") } } else { sf_puts("FAIL\n") }
83 ttl=ttl+1; sf_puts(" T4 INTEGRITY: data region positive + first offsets within it (end <= data_size): "); if data_size>0 { if o_end<=data_size { pass=pass+1; sf_puts("PASS\n") } else { sf_puts("FAIL\n") } } else { sf_puts("FAIL\n") }
84
85 sf_puts("NX-SAFETENSORS-GATE passed "); sf_num(pass); sf_puts("/"); sf_num(ttl)
86 // MIGRATED onto nx_gate_verdict by nx_gate_dry_apply (D001, minimal form): every check
87 // row above is untouched, so the PASS/FAIL vector cannot change; only the hand-rolled
88 // verdict emission is replaced by the ONE shared base class. Proven by nx_gate_migrate verify.
89 let ctr__dry: *i64 = gv_ctr()
90 ctr__dry[0] = pass
91 ctr__dry[1] = ttl
92 let rc__dry: i64 = gv_verdict("SAFETENSORS-GATE" as *u8, ctr__dry, "sovereign safetensors reader works on a REAL SD model -- weights are now loadable)" as *u8)
93 sys_exit(rc__dry)
94 return rc__dry
95}