nx_workflow_knobs.nx source
↩ module page · 104 lines · 4248 B
1// nx_workflow_knobs.nx -- SOVEREIGN workflow -> clean capability card (piece 2 of the anti-ComfyUI ingest).
2//
3// Reads the extracted ComfyUI workflow JSON and DISTILLS the 68-node graph into the few knobs that matter:
4// model(gguf), loras(safetensors), and feature flags (audio / face-consistency / super-res / upscale).
5// This is the "collapse the node-soup into what it actually does" step -- the LLM understander generalizes
6// it later; this deterministic pass handles the known node families sovereignly. No 3rd party.
7// license_tier: ORIGINAL
8import "nx_syscalls.nx"
9import "nx_le.nx"
10import "nx_strconv.nx"
11const K_MAGIC_2097152: i64 = 2097152
12
13func wk_find(buf: *u8, len: i64, needle: *u8, nlen: i64, start: i64) -> i64 {
14 var i: i64 = start
15 while i <= len - nlen {
16 var j: i64 = 0
17 var ok: i64 = 1
18 while j < nlen { if buf[i + j] != needle[j] { ok = 0; j = nlen } else { j = j + 1 } }
19 if ok == 1 { return i }
20 i = i + 1
21 }
22 return 0 - 1
23}
24
25func wk_count(buf: *u8, len: i64, needle: *u8, nlen: i64) -> i64 {
26 var c: i64 = 0
27 var at: i64 = wk_find(buf, len, needle, nlen, 0)
28 while at >= 0 { c = c + 1; at = wk_find(buf, len, needle, nlen, at + nlen) }
29 return c
30}
31
32// 1 if `needle` occurs within `back` bytes before pos (used to skip URL-embedded matches in doc notes)
33func wk_near(buf: *u8, pos: i64, needle: *u8, nl: i64, back: i64) -> i64 {
34 var start: i64 = pos - back
35 if start < 0 { start = 0 }
36 let f: i64 = wk_find(buf, pos, needle, nl, start)
37 if f >= 0 { if f < pos { return 1 } }
38 return 0
39}
40
41// pos is inside a JSON quoted string; emit "prefix<value>\n" IFF the value is a plausible filename
42// (3..120 chars) -- skips giant MarkdownNote strings that also contain .gguf/.safetensors in URLs.
43func wk_emit_quoted(fd: i64, prefix: *u8, pl: i64, buf: *u8, pos: i64) -> i64 {
44 var a: i64 = pos
45 while a > 0 { if buf[a] == 0x22 { a = 0 - a } else { a = a - 1 } }
46 if a >= 0 { return 0 }
47 a = 0 - a
48 var b: i64 = pos
49 while buf[b] != 0x22 { b = b + 1 }
50 let vlen: i64 = b - a - 1
51 if vlen < 3 { return 0 }
52 if vlen > 120 { return 0 }
53 sys_write(fd, prefix, pl)
54 sys_write(fd, ((buf as i64) + a + 1) as *u8, vlen)
55 sys_write(fd, "\n" as *u8, 1)
56 return vlen
57}
58
59func wk_flag(fd: i64, buf: *u8, len: i64, label: *u8, ll: i64, needle: *u8, nl: i64) -> i64 {
60 let n: i64 = wk_count(buf, len, needle, nl)
61 sys_write(fd, label, ll)
62 if n > 0 { sys_write(fd, "= YES (" as *u8, 7) } else { sys_write(fd, "= no (" as *u8, 6) }
63 let dec: *u8 = sys_mmap(16)
64 let nd: i64 = nx_strconv_format_i64(n, dec)
65 sys_write(fd, dec, nd)
66 sys_write(fd, " nodes)\n" as *u8, 8)
67 return 0
68}
69
70func main() -> i64 {
71 let fd: i64 = sys_openat_rd("/tmp/extracted_workflow.json" as *u8)
72 if fd < 0 { return 30 }
73 let CAP: i64 = K_MAGIC_2097152
74 let buf: *u8 = sys_mmap(CAP)
75 var total: i64 = 0
76 var go: i64 = 1
77 while go == 1 { let r: i64 = sys_read(fd, ((buf as i64) + total) as *u8, CAP - total); if r <= 0 { go = 0 } else { total = total + r; if total >= CAP { go = 0 } } }
78 sys_close(fd)
79 if total < 100 { return 31 }
80
81 let ofd: i64 = sys_openat_wr("/tmp/capability_card.txt" as *u8, 0x1a4)
82 if ofd < 0 { return 32 }
83 sys_write(ofd, "=== CAPABILITY CARD (distilled from the workflow) ===\n" as *u8, 54)
84
85 // model(s): .gguf
86 var g: i64 = wk_find(buf, total, ".gguf" as *u8, 5, 0)
87 while g >= 0 {
88 wk_emit_quoted(ofd, "model : " as *u8, 8, buf, g)
89 g = wk_find(buf, total, ".gguf" as *u8, 5, g + 5)
90 }
91 var s: i64 = wk_find(buf, total, ".safetensors" as *u8, 12, 0)
92 while s >= 0 {
93 wk_emit_quoted(ofd, "weight: " as *u8, 8, buf, s)
94 s = wk_find(buf, total, ".safetensors" as *u8, 12, s + 12)
95 }
96 // feature flags
97 wk_flag(ofd, buf, total, "audio " as *u8, 9, "LTXVAudio" as *u8, 9)
98 wk_flag(ofd, buf, total, "face-lock" as *u8, 9, "Likeness" as *u8, 8)
99 wk_flag(ofd, buf, total, "super-res" as *u8, 9, "SuperResolution" as *u8, 15)
100 wk_flag(ofd, buf, total, "upscale " as *u8, 9, "Upsampler" as *u8, 9)
101 wk_flag(ofd, buf, total, "img2vid " as *u8, 9, "ImgToVideo" as *u8, 10)
102 sys_close(ofd)
103 return 0
104}