nx_face_novelty.nx source
↩ module page · 95 lines · 4078 B
1// nx_face_novelty.nx -- MEASURED face-diversity / repetition meter over the
2// sovereign descriptor store (knowledge/status/galx_face_descr.bin). Answers
3// the "FLUX-face" question by MEASUREMENT, not guess: are our GENERATED faces
4// diverse, or is the model emitting the same face repeatedly?
5//
6// Reads the {cid(72)+16384 i64} records, computes pairwise chi-square distances
7// (reusing nx_lbp_core chi2_at), and reports the distance distribution + how
8// many DISTINCT-face clusters survive at a sweep of thresholds. Many near-dup
9// pairs / few clusters = repetition (flag the recurring synthetic face); wide
10// spread / many clusters = healthy generation diversity.
11//
12// IDENTITY-FREE: this only measures self-similarity within OUR OWN content.
13// No naming, no external lookup. Naming is the operator DATA layer
14// (galx_models.tsv), attached separately -- never inferred from a face here.
15//
16// genealogy_id: lbp_chi2_self_similarity + generation_mode_collapse_detection
17// lineage_id: pairwise_chi2_distribution + threshold_sweep_cluster_count
18// Build/run: ./_offc/nx_sov_build_run.elf nx_face_novelty license_tier: ORIGINAL
19import "nx_syscalls.nx"
20import "nx_lbp_core.nx"
21const K_MAGIC_500000: i64 = 500000
22const K_MAGIC_1000000: i64 = 1000000
23const K_MAGIC_2000000: i64 = 2000000
24const K_MAGIC_4000000: i64 = 4000000
25const K_MAGIC_8000000: i64 = 8000000
26const K_MAGIC_16000000: i64 = 16000000
27
28const REC: i64 = 131144
29const D: i64 = 16384
30
31func main() -> i64 {
32 let szp: *i64 = sys_mmap(16) as *i64
33 let store: *u8 = sys_read_file("knowledge/status/galx_face_descr.bin" as *u8, szp)
34 if (store as i64) == 0 { lp("FACE-NOVELTY FAIL: no descr store\n" as *u8); sys_exit(1); return 1 }
35 let M: i64 = szp[0] / REC
36 if M < 2 { lp("FACE-NOVELTY: need >=2 descriptors, have " as *u8); ln(M); lp("\n" as *u8); sys_exit(1); return 1 }
37
38 let descrs: *i64 = sys_mmap(8 * M * D) as *i64
39 var r: i64 = 0
40 while r < M {
41 let dsrc: *i64 = ((store as i64) + r * REC + 72) as *i64
42 var k: i64 = 0
43 while k < D { descrs[r * D + k] = dsrc[k]; k = k + 1 }
44 r = r + 1
45 }
46
47 let scale: i64 = 1000
48 let taus: *i64 = sys_mmap(64) as *i64
49 taus[0] = K_MAGIC_500000; taus[1] = K_MAGIC_1000000; taus[2] = K_MAGIC_2000000; taus[3] = K_MAGIC_4000000; taus[4] = K_MAGIC_8000000; taus[5] = K_MAGIC_16000000
50 let bcnt: *i64 = sys_mmap(64) as *i64
51 var b: i64 = 0
52 while b < 6 { bcnt[b] = 0; b = b + 1 }
53
54 var mn: i64 = 0 - 1
55 var mx: i64 = 0
56 var sum: i64 = 0
57 var cnt: i64 = 0
58 var i: i64 = 0
59 while i < M {
60 var j: i64 = i + 1
61 while j < M {
62 let dd: i64 = chi2_at(descrs, i, j, D, scale)
63 if cnt == 0 { mn = dd; mx = dd }
64 if dd < mn { mn = dd }
65 if dd > mx { mx = dd }
66 sum = sum + dd
67 cnt = cnt + 1
68 var b2: i64 = 0
69 while b2 < 6 { if dd < taus[b2] { bcnt[b2] = bcnt[b2] + 1 } b2 = b2 + 1 }
70 j = j + 1
71 }
72 i = i + 1
73 }
74
75 lp("FACE-NOVELTY M=" as *u8); ln(M); lp(" pairs=" as *u8); ln(cnt); lp("\n" as *u8)
76 lp(" chi2 dist: min=" as *u8); ln(mn); lp(" mean=" as *u8); ln(sum / cnt); lp(" max=" as *u8); ln(mx); lp("\n" as *u8)
77 lp(" near-duplicate pairs under tau (repeated face):\n" as *u8)
78 var b3: i64 = 0
79 while b3 < 6 {
80 lp(" tau=" as *u8); ln(taus[b3]); lp(" -> " as *u8); ln(bcnt[b3]); lp(" pairs (" as *u8); ln(bcnt[b3] * 100 / cnt); lp("%)\n" as *u8)
81 b3 = b3 + 1
82 }
83 let assign: *i64 = sys_mmap(8 * M) as *i64
84 let reps: *i64 = sys_mmap(8 * M) as *i64
85 lp(" distinct-face clusters vs threshold:\n" as *u8)
86 var t: i64 = 0
87 while t < 6 {
88 let nc: i64 = cluster_greedy(descrs, M, D, taus[t], scale, assign, reps)
89 lp(" thresh=" as *u8); ln(taus[t]); lp(" -> " as *u8); ln(nc); lp(" clusters\n" as *u8)
90 t = t + 1
91 }
92 lp("FACE-NOVELTY: low min + many near-dup = model repeats faces (flag); wide spread + many clusters = diverse.\n" as *u8)
93 sys_exit(0)
94 return 0
95}