Nishi Family › Compare › Image Generation
Nishi Compare · measured, not asserted
Image Generation
Nishi vs the field — every Nishi cell is measured against real organ source at emit time; each gap names the watch contract that will close it.
The sovereign Elder AI gen stack (nishifamily.com/gen: a NAS daemon dispatching to a 5080 worker, content-addressed gallery, companion identity and judges) measured against the local-UI field -- ComfyUI, SwarmUI, Forge, InvokeAI, Fooocus -- and Midjourney. The June-2026 look is the bar this board works back to: the trigger-first slot order landed 2026-08-27, the grammar port and the negative-capable model path are the next rungs, and every gap is a watched contract.
Where we are. Measured and working on 2026-08-27: the sovereign gen chain end to end (NAS gateway and orchestrator, OpenAI-shape dispatch to the 5080 worker, async batch, img2img, chat with photo-on-request, content-addressed gallery ingest with GENREC provenance, three sovereign judges, native GPU residency guard and self-healing keepers). The June-2026 look was traced to its record (seed 1480332350, 14 steps, 832x1088, the old Director's Shot-Sheet prompt) and its dominant missing term -- the realism trigger prefix in the leading slot -- was restored as data and shipped through ONE shared composer that the GPU-free probe now proves. Still open: the full prompt-grammar port, the negative-capable model path (the measured controllability wall), the batch board, ControlNet, inpaint, upscale, model acquisition, the LoRA training loop, the graph executor, and the external referee run. The counts sit below this line, measured at emit.
Where we need to go. Best of breed against ComfyUI and the local field on what they do (control, workflow, models) while keeping what none of them have (companion identity, pre-spend QC, judges, provenance-named assets, sovereign ELF control plane) -- and the Elder AI studio back to batch-to-gallery with the June realism, proven by rulers not by eye.
Research bar. Z-Image-Turbo model card is measured on steps and latency envelope of the base model. Theirs: 8 NFEs, sub-second on an H800, fits 16 GB consumer VRAM [@zimage]. Ours: measured through the live daemon on the 5080: 8 steps 12.0 s and 30 steps 25.0 s at 512x512 (gen_steps.conf, 2026-08-04); a cold offload render 167 s on 2026-08-27 with the card shared with a game.
Research bar. HPSv2 human preference benchmark is measured on human-preference score of generated images on the HPD v2 prompt set (798,090 choices over 433,760 pairs) [@hpsv2]. Theirs: the paper's own leaderboard, to be read from its tables when G5 runs. Ours: not yet benched -- G5 runs the published protocol and prints our row.
Research bar. PickScore / Pick-a-Pic is measured on CLIP-based preference scorer trained on real users' choices, recommended for model evaluation and ranking [@pickscore]. Theirs: the paper's own model rankings. Ours: not yet benched -- G5; also the candidate ranker beside nx_gen_rank for generate-N-keep-best.
Research bar. GenEval compositional benchmark is measured on object co-occurrence, position, count and color adherence via detectors [@geneval]. Theirs: the paper's open-model table. Ours: not yet benched -- G5; prompt adherence is the axis the companion lane cares least about and the studio lane most.
35 of 50 capabilities measured|14 of them measured exceeds|15 open|coverage 700/1000|adoption 27 full / 8 partial
Do this next — computed by the ranker, never chosen by a seat
Order from nx_compare_rank (nx_dr_ocm: (deficit + cost-of-delay + option + enables) x sponsor x self-sufficiency x momentum / cost). FINISH rows are rungs whose symbol is present but whose organ is short of full adoption: the cheapest closures on this board, listed before any new work. Stamp: # asof=1787883592 domain=gen target_version=0.1 rungs=15 done=1 open=14 finish=0 ranker=nx_dr_ocm
| # | Stage | Rung | Priority | Derivation |
|---|---|---|---|---|
| #1 | 0.1 | Negative-capable model path, selected by intent (G3) gw_model_select | 5250 | v=21 m=1 c=4 |
| #2 | 0.1 | Prompt-grammar port (nx_photo_grammar) (G2) pg_compose | 1000 | v=10 m=2 c=20 |
| #3 | later | Upscale on render (G8) gw_upscale | 25000 | v=25 m=1 c=1 |
| #4 | later | Hires and refiner pass (G14) gw_hires_pass | 20000 | v=20 m=1 c=1 |
| #5 | later | Mask inpaint and outpaint (G7) gw_inpaint_mask | 12000 | v=24 m=1 c=2 |
| #6 | later | ControlNet and pose conditioning (G6) gw_controlnet | 6500 | v=26 m=1 c=4 |
| #7 | later | Prompt weighting and wildcards (G13) cw_prompt_weight | 1600 | v=16 m=1 c=10 |
| #8 | later | Batch board (G4) go_batch_list | 1300 | v=13 m=1 c=10 |
| #9 | later | Model acquisition (G9) mg_fetch | 1300 | v=13 m=1 c=10 |
| #10 | later | Model swap with TTL (G12) mx_swap_ttl | 700 | v=7 m=1 c=10 |
| #11 | later | Workflow ingest and reproduce (G15) wi_reproduce | 500 | v=5 m=1 c=10 |
| #12 | later | Identity LoRA training loop (G10) lt_train_deploy | 450 | v=9 m=1 c=20 |
| #13 | later | Workflow graph executor (G11) gen_graph_exec | 233 | v=7 m=1 c=30 |
| #14 | later | External referee run (G5) gb_bench_run | 50 | v=1 m=1 c=20 |
Critical path — contract, done-rule, executor, cost
| Rung | Closes with | Definition of done (pre-declared) | Executor | Est. |
|---|---|---|---|---|
| Trigger-first slot order and ONE composer (G1) | go_load_trigger | elara_trigger.txt leads the prompt on both photo paths; the probe's T1 asserts trigger-then-camera against the live data; daemon rebuilt, content-diff read, deployed with the pre-change binary banked by hash | Organ | 1 u |
| Prompt-grammar port (nx_photo_grammar) (G2) after G1 | pg_compose | content.db vocabulary (zimage_reinforcements, realism_microdetails, photo_styles, lighting, expressions, prompt_fragments, quality_vocabulary) seeded as planes; slot-ordered composer replaces the hand tail; probe-gated; June-repro dhash against the original must not regress from the G1 baseline | Organ | 2 u |
| Negative-capable model path, selected by intent (G3) | gw_model_select | a non-distilled Z-Image checkpoint at cfg above 1 with a negative prompt, chosen by scene intent; 20 clothed-scene renders measure clothed by the wardrobe judge; explicit scenes keep the turbo path | Organ | 2 u |
| Batch board (G4) | go_batch_list | named jobs with a scene list, a row appended per render as it lands, list, status with progress, stop and resume; the UI polls the board; an interrupted batch keeps every finished cid | Organ | 1 u |
| External referee run (G5) after G2 | gb_bench_run | HPSv2, PickScore and GenEval protocols executed on our renders; our numbers published beside the papers' tables; the run is a gate with a negative control | Local model | 2 u |
| ControlNet and pose conditioning (G6) after G3 | gw_controlnet | pose and structure maps dispatched through the worker; the 3D lane's skeletons are the deterministic source | Organ | 2 u |
| Mask inpaint and outpaint (G7) | gw_inpaint_mask | mask rides the A1111 img2img shape the engine already serves; edited region judged by the coherence organ | Organ | 1 u |
| Upscale on render (G8) | gw_upscale | ESRGAN in-engine wired as a gen verb; upscaled cid ingested beside the source with a GENREC link | Organ | 0.5 u |
| Model acquisition (G9) | mg_fetch | HF, civitai and civitaiarchive pulls with an Authorization header, SHA256-verified by nx_vecfetch, registered in a model plane; a mismatch refuses | Organ | 1 u |
| Identity LoRA training loop (G10) after G9 | lt_train_deploy | favorites to dataset to train to deploy; the tuned model must EXCEED the baseline on the same prompts under the judge panel or it is not wired | Local model | 2 u |
| Workflow graph executor (G11) | gen_graph_exec | the pathway lib gains an executor whose cells are the existing organs; partial re-execution on unchanged upstream cells | Organ | 3 u |
| Model swap with TTL (G12) | mx_swap_ttl | LLM and diffusion time-share the 16 GB card under a residency TTL; VRAM per model measured and published | Organ | 1 u |
| Prompt weighting and wildcards (G13) after G2 | cw_prompt_weight | weights and wildcard expansion as data; a wildcard row that changes nothing is a defect to rewrite, never delete | Organ | 1 u |
| Hires and refiner pass (G14) after G8 | gw_hires_pass | two-pass render through the worker; latency published beside the single pass | Organ | 0.5 u |
| Workflow ingest and reproduce (G15) after G11 | wi_reproduce | a rival's PNG metadata or workflow reproduced on our engine; fidelity measured by the June-repro ruler (dhash and MAD) | Organ | 1 u |
Milestones
| Milestone | Rungs | Cumulative |
|---|---|---|
| M0 · The June look back | G1,G2,G3 | 5 u |
| M1 · Studio parity | G4,G7,G8,G13,G14 | 10 u |
| M2 · Control and models | G6,G9,G12 | 15 u |
| M3 · Referee and training | G5,G10 | 19 u |
| M4 · Graph parity | G11,G15 | 23 u |
comparewatch- plane row flips with it. The flip is necessary, not sufficient: it proves the symbol exists, never that the capability is good. The bar is the rung's pre-declared done-rule, proven by its gate — a symbol shipped without the behaviour behind it is a defect, and the flip is exactly what makes that defect visible instead of quiet. Competitor marks record documented capability presence — presence, not depth or scale. Adoption is measured too: every measured row carries where its organ stands on the estate's ladder (source → built → promoted → registered → invoked; libraries by importer reach minus validation importers; gates by the execution surfaces that run them). A row is fully adopted only at the top of its ladder; anything short is tagged partial with the exact remedy, so a build nobody promoted can no longer read as shipped. Census stamps: importers asof 1787849099, gate census asof 1787855507 (unix seconds; -1 = census absent).Capability matrix — measured against source
◉ leads / measured exceed● present◐ partial○ absent · click any capability for its evidence
| Capability | Nishi | ComfyUI | SwarmUI | Forge | InvokeAI | Fooocus | Midjourney |
|---|---|---|---|---|---|---|---|
| GEN | |||||||
text-to-image on the sovereign GPU worker -- OpenAI-shape dispatch, seed-deterministicMeasured:go_worker_dispatch exists in runtime/_hdl_build/nx_gen_worker.nx, verified at emit. Every local UI renders on the user's own GPU [comfyui] [swarmui] [forge] [invokeai] [fooocus]; Midjourney is cloud-only [midjourney]. Ours dispatches to elder-sdcpp (a stable-diffusion.cpp fork [sdcpp]) serving Z-Image-Turbo, an 8-NFE distilled DiT that fits 16 GB [zimage]; same prompt plus seed = same image. Adoption: LIB-WIRED importers=1 nonval=1 — fully adopted (top of its ladder). | ● | ◉ | ◉ | ◉ | ◉ | ◉ | ● |
async batch job -- submit returns a job id, the browser polls, any batch size survives the 15 s edge timeoutMeasured:go_handle_batch exists in runtime/_hdl_build/nx_gen_orchestrator.nx, verified at emit. ComfyUI queues asynchronously with partial graph re-execution [comfyui]; SwarmUI grids fan a batch across a swarm of GPUs [swarmui]. Ours forks a detached child per job and writes batchjob-id.json; the batch BOARD (named jobs, per-image progress, stop and resume) is the watch row below. Adoption: LIB-WIRED importers=5 nonval=1 — fully adopted (top of its ladder). | ● | ◉ | ◉ | ● | ◉ | ● | ● |
img2img on an existing gallery cid (sketch-to-art, refine)Measured:go_handle_img2img exists in runtime/_hdl_build/nx_gen_orchestrator.nx, verified at emit. All six rivals refine from an image; ours takes a gallery cid and re-ingests the result under a new cid. Adoption: LIB-WIRED importers=5 nonval=1 — fully adopted (top of its ladder). | ● | ◉ | ◉ | ◉ | ◉ | ◉ | ◉ |
the engine's prompt-embedded control block -- steps, cfg, size and seed ride INSIDE the promptMeasured:go_append_turbo_args exists in runtime/_hdl_build/nx_gen_orchestrator.nx, verified at emit. Midjourney's parameters also ride in the prompt text [midjourney]; the local UIs expose the same knobs as form fields. Ours measured the knob ARRIVES: 8 steps 12.0 s, 30 steps 25.0 s at 512x512 on the 5080 through the live daemon (gen_steps.conf, 2026-08-04). Adoption: LIB-WIRED importers=5 nonval=1 — fully adopted (top of its ladder). | ● | ● | ● | ● | ● | ● | ● |
default step count as DATA, re-read per request (gen_steps.conf carries the measured latency curve)Measured:go_default_steps exists in runtime/_hdl_build/nx_gen_orchestrator.nx, verified at emit. Rivals persist UI settings; ours re-reads a conf per request with the measurement written beside the number, so the quality-vs-latency knob is an operator edit with no rebuild. Adoption: LIB-WIRED importers=5 nonval=1 — fully adopted (top of its ladder). | ● | ● | ● | ● | ● | ● | ○ |
| PROMPT | |||||||
realism trigger prefix as data (elara_trigger.txt) -- the June slot order restored, trigger leads the promptMeasured:go_load_trigger exists in runtime/_hdl_build/nx_companion_identity.nx, verified at emit. LANDED 2026-08-27. The pre-docker gen-img composed every render as lora-tags, trigger words, prompt (svc-config default_loras row of 2026-04-25) and the sovereign path had dropped the trigger; the 2026-08-19 June-repro A/B measured it as the dominant term of the June look (dhash 74 to 48). Fooocus ships style presets with activation fragments [fooocus]; in the other UIs LoRA trigger words are typed by hand (Part). Adoption: LIB-WIRED importers=3 nonval=2 — fully adopted (top of its ladder). | ● | ◐ | ◐ | ◐ | ◐ | ● | ○ |
full prompt-grammar composer over the mined vocabulary planes (the 1,640-row content.db port)Open — watchingruntime/nx_photo_grammar.nx : pg_compose, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Watch G2: the old platform's Director's Shot-Sheet grammar (zimage reinforcements, microdetails, lighting, expressions) as sovereign planes plus a slot-ordered composer; Fooocus's preset library is the field's nearest analog [fooocus]. The ranker flagged this rung UNMAPPED on 2026-08-27 -- this row is the loop's own fix. | ○ | ● | ● | ● | ◉ | ● | ● |
ONE photo-prompt composer shared by the daemon and its GPU-free probe (trigger, camera, body)Measured exceed:go_compose_photo_prompt in runtime/_hdl_build/nx_companion_wardrobe.nx, verified at emit. EXCEED with the why: the slot order exists in exactly one function and nx_elara_prompt_probe proves it without a GPU (T1 trigger-then-camera, T7 non-vacuity). No rival ships a testable prompt composer; theirs is whatever the user typed. Adoption: LIB-WIRED importers=2 nonval=1 — fully adopted (top of its ladder). | ◉ | ○ | ○ | ○ | ○ | ○ | ○ |
data-driven companion identity anchor, front-loaded for the DiT's RoPE (elara_appearance.txt)Measured exceed:go_load_appearance in runtime/_hdl_build/nx_companion_identity.nx, verified at emit. EXCEED with the why: a persistent first-class identity object per companion, editable as data with no rebuild, Z-Image-counterbalanced (age and ethnicity drift measured and pinned). Midjourney's character reference is image-based consistency, not an editable genome (Part) [midjourney]. Adoption: LIB-WIRED importers=3 nonval=2 — fully adopted (top of its ladder). | ◉ | ○ | ○ | ○ | ○ | ○ | ◐ |
occlusion-aware wardrobe compiler -- per-zone clothed-or-bare with a positive fabric assertionMeasured:go_build_photo_prompt exists in runtime/_hdl_build/nx_companion_wardrobe.nx, verified at emit. Exists and is gated (T6 and T7), but the MEASURED wall stands: on a cfg-distilled NSFW-prior base with no negative prompt, clothing control is unreliable. Not claimed as an exceed until the negative-capable path (watch row below) lands and 20 clothed renders measure clothed. Adoption: LIB-WIRED importers=2 nonval=1 — fully adopted (top of its ladder). | ● | ○ | ○ | ○ | ○ | ○ | ○ |
camera and photographic style variety rotated by seed (elara_shots.txt)Measured:go_pick_shot exists in runtime/_hdl_build/nx_companion_identity.nx, verified at emit. Fooocus styles are the richest preset library in the field [fooocus]; Midjourney has stylize and style parameters [midjourney]; ComfyUI reaches variety through nodes [comfyui]. Adoption: LIB-WIRED importers=3 nonval=2 — fully adopted (top of its ladder). | ● | ● | ● | ● | ● | ◉ | ● |
quality tail measured against the 568,944-row beauty corpus, kept as data (elara_quality.txt)Measured exceed:go_load_quality in runtime/_hdl_build/nx_companion_identity.nx, verified at emit. EXCEED with the why: every term in the tail was tested for lift in the post-repair window of the old platform's scorer (a term present in 98 percent of a corpus cannot be measured by presence, so the baseline vocabulary is kept as baseline, not claimed as lift). Fooocus ships hand-curated quality presets [fooocus]. Adoption: LIB-WIRED importers=3 nonval=2 — fully adopted (top of its ladder). | ◉ | ○ | ○ | ○ | ○ | ● | ○ |
realism LoRA stack as data, applied as inline lora tags the engine parsesMeasured:go_load_loras exists in runtime/_hdl_build/nx_companion_identity.nx, verified at emit. Every local UI loads LoRAs [forge] [fooocus]; Midjourney has no LoRA surface. Ours reads elara_loras.txt per request. Adoption: LIB-WIRED importers=3 nonval=2 — fully adopted (top of its ladder). | ● | ◉ | ◉ | ◉ | ◉ | ◉ | ○ |
| QC | |||||||
pre-spend anatomy-risk score of the composed prompt (no GPU, factors named)Measured exceed:go_anatomy_risk in runtime/_hdl_build/nx_anatomy_risk.nx, verified at emit. EXCEED with the why: a mechanical refusal-with-remedy BEFORE GPU spend; the daemon appends risk, factors and scene to anatomy_audit.tsv so the rate is trackable. Nothing in the field surfaces a pre-spend verdict. Adoption: LIB-WIRED importers=4 nonval=4 — fully adopted (top of its ladder). | ◉ | ○ | ○ | ○ | ○ | ○ | ○ |
coherence repair of incoherent scene words before render (opt-in, flag-only by default)Measured exceed:go_coherence_repair in runtime/_hdl_build/nx_render_coherence.nx, verified at emit. EXCEED with the why: the render-bug register's top class (wet-without-context, 40 percent of bugs) is rewritten to a coherent descriptor; opt-in so the user's exact words are never silently overridden. Adoption: LIB-WIRED importers=2 nonval=2 — fully adopted (top of its ladder). | ◉ | ○ | ○ | ○ | ○ | ○ | ○ |
GPU-free composition probe -- eight teeth including a non-vacuity tooth on the opposite wardrobe branchMeasured exceed:compose in runtime/_hdl_build/nx_elara_prompt_probe.nx, verified at emit. EXCEED with the why: the composer is proven against the REAL data files in seconds; a prompt regression is caught before a single render. Re-based on the shared composer 2026-08-27 so it can no longer pass on an order the daemon does not use. Adoption: BUILT-UNPROMOTED — PARTIAL: compiled, never promoted to the serving root: /api/promote it. | ◉ | ○ | ○ | ○ | ○ | ○ | ○ |
| COMPANION | |||||||
chat and photo-on-request through one daemon -- the Qwen3 text encoder doubles as the companion LLMMeasured exceed:go_handle_chat in runtime/_hdl_build/nx_gen_orchestrator.nx, verified at emit. EXCEED with the why: dual use of the DiT's own text encoder [zimage] on one 16 GB card, so talk and render share a process; server-authoritative persona and memory ride the same route. No image UI in the field is a companion. Adoption: LIB-WIRED importers=5 nonval=1 — fully adopted (top of its ladder). | ◉ | ○ | ○ | ○ | ○ | ○ | ○ |
neuro-chemical state drives her voice and her body (expression tokens from affection, dopamine, cortisol, oxytocin)Measured exceed:go_state_update in runtime/_hdl_build/nx_companion_state.nx, verified at emit. EXCEED with the why: per-turn state persists across sessions and compiles into expression tokens on the photo prompt; a companion whose photos follow her mood. Adoption: LIB-WIRED importers=1 nonval=1 — fully adopted (top of its ladder). | ◉ | ○ | ○ | ○ | ○ | ○ | ○ |
character-card compiled persona SSOT (elara_card.json to persona, age fail-closed)Measured:ccm_json_str exists in runtime/_hdl_build/nx_card_compile.nx, verified at emit. The card is the byte-one persona source; the compiler refuses an under-18 card. Product-adjacent to the gen lane; no rival column has the concept. Adoption: REGISTERED-DARK — PARTIAL: callable, authorised, no MCP invocation on record (a direct fork logs the runner, so this is not proof it never ran); no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked). | ● | ○ | ○ | ○ | ○ | ○ | ○ |
| ASSET | |||||||
GENREC provenance written INTO the PNG (prompt, seed, model, steps, size, host as tEXt)Measured:png_insert_genrec exists in runtime/_hdl_build/nx_png_textw.nx, verified at emit. ComfyUI embeds the whole workflow in the PNG and reloads it [comfyui]; Forge, InvokeAI and Fooocus embed parameters [invokeai] [fooocus]; Midjourney images carry none. Ours is a sovereign PNG tEXt writer (CRC32) with the GENREC keys the cid canon hashes. Adoption: LIB-WIRED importers=4 nonval=2 — fully adopted (top of its ladder). | ● | ◉ | ◉ | ◉ | ◉ | ◉ | ○ |
content-addressed cid = hash of the GENREC factors, so a render is named by what produced itMeasured exceed:nx_store_ingest_compute_cid in runtime/_hdl_build/nx_store_ingest.nx, verified at emit. EXCEED with the why: two prompts at one seed can never collide (the prompt is a factor since 2026-06-28), duplicates dedupe by construction, and nx_gen_cid_gate referees the canon. Rivals name files by counter and timestamp. Adoption: LIB-WIRED importers=11 nonval=6 — fully adopted (top of its ladder). | ◉ | ○ | ○ | ○ | ○ | ○ | ○ |
ingest pipeline -- decode, inject GENREC, cid, blob, store, sidecar (idempotent, both response shapes)Measured:gp_response exists in runtime/_hdl_build/nx_gen_pipeline.nx, verified at emit. All rivals save renders with metadata to an output folder or board; ours lands in the gallery store the family gallery already serves. Adoption: LIB-WIRED importers=4 nonval=2 — fully adopted (top of its ladder). | ● | ● | ● | ● | ● | ● | ● |
O(1) cid-to-path index for serving (replaces a per-request flat scan)Measured:gs_cidindex_lookup exists in runtime/_hdl_build/nx_galx_cid_index.nx, verified at emit. Every rival serves its own outputs; the index is what makes ours serve 233k gallery rows without a scan. Adoption: LIB-WIRED importers=8 nonval=7 — fully adopted (top of its ladder). | ● | ● | ● | ● | ● | ● | ● |
any media file becomes a first-class gallery image with no restart (the save-to-gallery primitive)Measured:si_hex exists in runtime/nx_galx_saveimg.nx, verified at emit. InvokeAI boards are the strongest asset organiser in the field [invokeai]. Adoption: PROMOTED-UNREGISTERED — PARTIAL: a real binary nobody can call over MCP: /api/tools/register it; no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked). | ● | ● | ● | ● | ◉ | ● | ● |
| JUDGE | |||||||
full-population mechanical ranking of gallery rendersMeasured exceed:do_rank in runtime/_hdl_build/nx_gen_rank.nx, verified at emit. EXCEED with the why: every render in the store is scoreable by one organ, whole population and never a sample. No rival ships a ranker over its own outputs. Adoption: LIVE — fully adopted (top of its ladder). | ◉ | ○ | ○ | ○ | ○ | ○ | ○ |
bilateral-symmetry beauty score per cid (Q1000)Open — no implementing organ is measured for this axis yet. EXCEED with the why: a sovereign per-image score with a stated method; the old platform's 568k-row scorer is the calibration corpus. | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
mechanical character-image judge (identity axes per render)Measured exceed:cjc_hw in runtime/_hdl_build/nx_charjudge.nx, verified at emit. EXCEED with the why: the same organ that judges the whole estate's character renders judges these; its measuring range is written in its own debt row (eye-window literals) rather than hidden. Adoption: LIVE — fully adopted (top of its ladder). | ◉ | ○ | ○ | ○ | ○ | ○ | ○ |
external human-preference referee -- HPSv2, PickScore and GenEval run on OUR rendersOpen — watchingruntime/nx_gen_bench.nx : gb_bench_run, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Watch G5. The field's referees exist as papers [hpsv2] [pickscore] [geneval] and no rival column ships one either; running the published protocols on our renders and printing our numbers beside theirs is the grade-1 progress claim this board needs. | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
| WORKER | |||||||
non-blocking TCP health probe and failover across GPU workers (a powered-off worker never hangs a dispatch)Measured:np_probe_up exists in runtime/nx_netprobe_lib.nx, verified at emit. SwarmUI's founding feature is a swarm of GPU backends for one user [swarmui]; ComfyUI, Forge, InvokeAI and Fooocus are single-backend processes; Midjourney is a managed fleet. Adoption: LIB-WIRED importers=2 nonval=2 — fully adopted (top of its ladder). | ● | ○ | ◉ | ○ | ○ | ○ | ● |
role-to-address SSOT re-read per call (swarm_nodes.conf)Measured:se_addr exists in runtime/nx_swarm_endpoint_lib.nx, verified at emit. SwarmUI configures backends in its UI [swarmui]. Ours is a conf the whole swarm reads; the gen daemon's own cwd landmine (it cannot see the conf from /volume1/ai/gen and falls back to argv) is a filed defect, stated here rather than hidden. Adoption: LIB-WIRED importers=8 nonval=7 — fully adopted (top of its ladder). | ● | ○ | ◉ | ○ | ○ | ○ | ○ |
VRAM-budgeted placement scoring across the swarmMeasured:sp_pick exists in runtime/nx_swarm_place.nx, verified at emit. SwarmUI distributes grids across backends [swarmui]; ours scores candidates against a VRAM budget from the hub inventory. Adoption: REGISTERED-DARK — PARTIAL: callable, authorised, no MCP invocation on record (a direct fork logs the runner, so this is not proof it never ran); no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked). | ● | ○ | ◉ | ○ | ○ | ○ | ● |
| RESOURCE | |||||||
GPU residency guard -- restart-resident, busy, wait and start decided natively, thresholds as dataMeasured exceed:gg_decide in runtime/nx_gpuguard.nx, verified at emit. EXCEED with the why: the worker holds ZERO VRAM at idle (offload mode) and a native organ decides wedged-vs-loading from the service's OWN footprint, busy dominating every other rule; ComfyUI, Forge and Fooocus ship offload and low-VRAM modes [comfyui] [forge] [fooocus] but nothing decides for you. Cost named honestly: a cold offload render measured 167 s on 2026-08-27 while the card was shared with a game. Adoption: PROMOTED-UNREGISTERED — PARTIAL: a real binary nobody can call over MCP: /api/tools/register it; no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked). | ◉ | ● | ○ | ● | ○ | ● | ○ |
multi-model VRAM-LRU residency policy (the Triton model-management analog) -- a gated simulator, not yet wired to the workerMeasured:mx_run exists in runtime/nx_mesh_mux.nx, verified at emit. Honest: the policy is proven on a simulator with a fixture registry; the worker still serves one diffusion model plus its encoder. SwarmUI manages many models across backends [swarmui]. Adoption: REGISTERED-UNAUTHORISED — PARTIAL: registered, no cap ever minted; no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked). | ● | ● | ◉ | ● | ● | ● | ○ |
on-demand model swap with a TTL -- LLM and diffusion time-sharing one 16 GB cardOpen — watchingruntime/nx_mesh_mux.nx : mx_swap_ttl, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Watch G12: the llama-swap-class capability the Elara dual-use need names; the local UIs swap checkpoints on demand, none with a residency TTL policy. | ○ | ● | ◉ | ● | ● | ● | ○ |
| CONTROL | |||||||
negative prompt and CFG above 1 on a non-distilled model, selected by intent (the ER-8 keystone)Open — watchingruntime/_hdl_build/nx_gen_worker.nx : gw_model_select, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Watch G3, the measured controllability wall: the distilled turbo model takes no negative, so a positive covered assertion cannot beat an NSFW base prior. Every local UI runs negatives at cfg above 1 [forge] [fooocus]; Midjourney has a no parameter [midjourney]. cyberrealisticZImage_v40 and Realism_Engine_Klein_V2 are on disk for it. | ○ | ◉ | ◉ | ◉ | ◉ | ◉ | ● |
ControlNet and pose or structure conditioningOpen — watchingruntime/_hdl_build/nx_gen_worker.nx : gw_controlnet, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Watch G6. Forge integrates ControlNet natively [forge]; ComfyUI has ControlNet nodes [comfyui]; Fooocus ships ImagePrompt and structure modes [fooocus]; Midjourney's style and character references are the partial analog [midjourney]. | ○ | ◉ | ◉ | ◉ | ◉ | ◉ | ◐ |
mask-based inpaint and outpaintOpen — watchingruntime/_hdl_build/nx_gen_worker.nx : gw_inpaint_mask, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Watch G7. InvokeAI's unified canvas leads [invokeai]; Fooocus inpaints and outpaints [fooocus]; Midjourney varies a region and pans [midjourney]. The engine already serves the A1111 img2img shape the mask rides on. | ○ | ◉ | ◉ | ◉ | ◉ | ◉ | ◉ |
super-resolution upscale of a render (ESRGAN is in the engine, unwired)Open — watchingruntime/_hdl_build/nx_gen_worker.nx : gw_upscale, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Watch G8. The gallery serves an on-demand 2x upscale per asset today (media board); the gen lane's own upscale-on-render is the gap. | ○ | ◉ | ◉ | ◉ | ◉ | ◉ | ◉ |
prompt weighting, wildcards and embeddingsOpen — watchingruntime/_hdl_build/nx_companion_wardrobe.nx : cw_prompt_weight, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Watch G13. Fooocus wildcards and weights [fooocus]; Midjourney multi-prompts with weights [midjourney]. | ○ | ◉ | ◉ | ◉ | ● | ◉ | ● |
hires-fix and refiner two-pass renderingOpen — watchingruntime/_hdl_build/nx_gen_worker.nx : gw_hires_pass, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Watch G14. Fooocus refiner passes [fooocus]; Midjourney upscales variants [midjourney]. | ○ | ◉ | ◉ | ◉ | ◉ | ◉ | ● |
| WORKFLOW | |||||||
node-graph substrate -- a cell-graph manifest lib with typed cells and edges, NOT wired to genMeasured:nx_pathway_add_edge exists in runtime/nx_pathway.nx, verified at emit. Honest: the graph substrate exists (nx_pathway, the ComfyUI-node analogue) but no organ executes a gen graph over it. ComfyUI is the node graph [comfyui]; InvokeAI ships workflows and nodes [invokeai]; SwarmUI exposes the raw Comfy graph tab [swarmui]. Adoption: LIB-WIRED importers=6 nonval=1 — fully adopted (top of its ladder). | ● | ◉ | ● | ○ | ◉ | ○ | ○ |
execute a workflow graph over the gen worker (ComfyUI-class pipelines)Open — watchingruntime/nx_gen_graph.nx : gen_graph_exec, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Watch G11: the pathway lib gains an executor whose cells are the existing organs (compose, dispatch, judge, ingest); partial re-execution is the bar ComfyUI sets [comfyui]. | ○ | ◉ | ● | ○ | ◉ | ○ | ○ |
ingest a rival's workflow or PNG metadata and reproduce the renderOpen — watchingruntime/nx_workflow_ingest.nx : wi_reproduce, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Watch G15. ComfyUI reloads a workflow from a PNG [comfyui]; the others read their own parameter metadata. The June-repro ladder (h74 to h48) is the ruler already built for this. | ○ | ● | ● | ● | ● | ● | ○ |
| MODEL | |||||||
hash-verified acquisition from HF, civitai and civitaiarchive into the model registryOpen — watchingruntime/nx_model_get.nx : mg_fetch, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Watch G9. SwarmUI and InvokeAI ship model managers [swarmui] [invokeai]; Fooocus auto-downloads its presets [fooocus]. The civitai recipe is proven (a 223 MB LoRA pulled with an exact SHA256 match, 2026-07-20) and nx_vecfetch already verifies by hash -- the organ that composes them is the gap. | ○ | ● | ◉ | ● | ◉ | ◉ | ○ |
identity LoRA training loop -- favorites to dataset to train to judge-gated deployOpen — watchingruntime/nx_lora_train.nx : lt_train_deploy, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Watch G10. Training lives in extensions for ComfyUI and SwarmUI (Part); Midjourney personalisation is the cloud analog [midjourney]. Accept rule pre-declared: the tuned model must EXCEED the baseline on the same prompts under the judge panel or it is not wired. | ○ | ◐ | ◐ | ○ | ○ | ○ | ● |
| UI | |||||||
chat-first companion app -- presence and mood card, gallery and studio tabs, served from disk with no rebuildMeasured:go_serve_ui exists in runtime/_hdl_build/nx_gen_orchestrator.nx, verified at emit. SwarmUI's Generate tab, InvokeAI's canvas and Fooocus's one-page UI lead on generation ergonomics [swarmui] [invokeai] [fooocus]; Midjourney's web editor is polished [midjourney]. Ours is edit-and-push HTML. Adoption: LIB-WIRED importers=5 nonval=1 — fully adopted (top of its ladder). | ● | ● | ◉ | ● | ◉ | ◉ | ◉ |
batch BOARD -- named jobs, per-image progress as each render lands, list, stop and resumeOpen — watchingruntime/_hdl_build/nx_gen_orchestrator.nx : go_batch_list, re-measured on every compare beat. Ship that symbol and this mark flips itself; the comparewatch- plane row flips with it. Watch G4: the old platform's batch start, status, queue, stop, drain and resume surface, rebuilt on the async job files; a row appends per render so an interrupted batch keeps what it did. ComfyUI's queue view and SwarmUI's grid generator are the bars [comfyui] [swarmui]. | ○ | ◉ | ◉ | ● | ◉ | ● | ● |
| OPS | |||||||
MCP and REST tool surface for every gen verb (generate, batch, img2img, chat, recent, anatomy)Measured:g_render_body exists in runtime/_hdl_build/nx_gen.nx, verified at emit. ComfyUI and InvokeAI expose full APIs [comfyui] [invokeai]; ours is the nx_gen tool over /mcp, so a seat renders from a call and reads the cid back. Adoption: LIVE — fully adopted (top of its ladder). | ● | ◉ | ● | ● | ◉ | ● | ○ |
self-healing worker and daemon keepers (five-minute beats) with a banked-by-hash rollback binaryMeasured exceed:gg_probe in runtime/nx_gpuguard.nx, verified at emit. EXCEED with the why: the laptop engine and the NAS daemons relaunch themselves; the pre-change binary is banked and hash-verified before any deploy (2026-08-27 bank fd82c028). Midjourney is managed for you; the local UIs restart by hand. Adoption: PROMOTED-UNREGISTERED — PARTIAL: a real binary nobody can call over MCP: /api/tools/register it; no execution surface runs it either (clock, cron, daemon, roster, actlog and surfaced forks checked). | ◉ | ○ | ○ | ○ | ○ | ○ | ● |
| SOVEREIGNTY | |||||||
the gen control plane is sovereign ELF -- zero Python, zero Docker, zero node runtimeMeasured exceed:main in runtime/_hdl_build/nx_gen_orchestrator_daemon.nx, verified at emit. EXCEED with the why: gateway, orchestrator, pipeline, judges and tools compile with nx_cc to static ELFs; the engine beneath them is a ggml C++ fork [sdcpp], the one foreign component, named. Every rival is a Python stack [comfyui] [forge] [invokeai] [fooocus] or a C# host over one [swarmui]. Adoption: BUILT-UNPROMOTED — PARTIAL: compiled, never promoted to the serving root: /api/promote it. | ◉ | ○ | ○ | ○ | ○ | ○ | ○ |
Debt register
| Id | Sev | What it is | Unblock |
|---|---|---|---|
| gen-rigor-envelopenot in this scope | 6 | Every realism and referee number this board publishes (G5 HPSv2, PickScore, GenEval; the June-repro dhash) is a value with no n, no interval, no seed and no engine-config hash beside it, so two renders on different engines read as comparable when they are not (measured 2026-08-27: the same GENREC on the current engine breaks anatomy at dhash 95 to 98 while the June engine did not). | Publish through the shared rigor envelope gv_envelope that /compare/autodev rung AD1 names -- n, a Wilson interval, seed, engine-config hash -- or read REFUSED; G5 depends on it, and the operator made proven evidence mandatory on both boards. |
| gen-daemon-cwd-confnot in this scope | 5 | The gen daemon runs with cwd /volume1/ai/gen, so knowledge/swarm_nodes.conf (the role-to-address SSOT) is not visible and the worker address silently falls back to argv; deploy_verify.sh carried the laptop's OLD address (.193) until 2026-08-27 while gen_keeper.sh carried the current one (.192) -- two launchers, two answers. | Make the daemon read the conf by an estate-relative absolute path (ep_artifact_path) and retire the argv fallback to a loud refusal; one launcher. |
| offload-cold-rendernot in this scope | 4 | Offload mode (zero VRAM at idle) reloads 10.5 GB per job: a cold render measured 167 s and a warm one 221 s on 2026-08-27 with the card shared with a game, against 15 s warm on 2026-08-14 with the card free. The orchestrator's dispatch timeout is 180 s, so a cold render on a busy card can succeed on the GPU and be dropped by the daemon. | Measure duration-vs-cid over N cold and N warm renders (full population, never three), then make the photo dispatch async like the batch path rather than abandoning offload. |
Person · product · place — not yet measured for this domain
knowledge/compare/gen.ppp (rows surface|nishi or c1..c4|label|url|connect naming OUR live surface and each rival's front door), run nx_ppp_probe domain gen, and this section fills itself on the next beat: the same ruler on both sides — privacy and CX (third-party hosts, tracker classes, cookies, security headers), design and longevity (design hygiene, computed WCAG contrast, render-blocking resources, unsized media, script weight, theme and motion queries), findability (landmarks, skip link, on-site search, breadcrumb, headings, internal links).References
- [comfyui] ComfyUI README (comfyanonymous/ComfyUI, master): the node-graph engine -- asynchronous queueing, partial graph re-execution, smart VRAM and RAM management, model offloading, workflow embedded in and reloaded from PNGs. publisher · read in our library
knowledge/fetched/cmp_gen_comfyui.md· pinhd792c3aa57675e2677bb9fb149e651fef460a4ba4fa8f8ea1063538b951efa09· accessed 2026-08-27 · vendor-docGrounds: GEN: async batch job - [swarmui] SwarmUI README (mcmonkeyprojects/SwarmUI, master): a Generate tab over a Comfy workflow tab, a swarm of GPU backends for one user, grid generation, model management. publisher · read in our library
knowledge/fetched/cmp_gen_swarmui.md· pinh93851e61925c4d2a98c28b50ee83ab55e3e6fc730ad3ed49fdd94a512cfe393d· accessed 2026-08-27 · vendor-docGrounds: WORKER: non-blocking TCP health probe and failover across GPU workers - [forge] Stable Diffusion WebUI Forge README (lllyasviel, main): the A1111-lineage UI with native ControlNet integration, LoRA loading, offload modes and Flux support. publisher · read in our library
knowledge/fetched/cmp_gen_forge.md· pinhe99a0cdc5711816a3da4edb1d70f41dcf3396a6e1fd524f9dd236ce6b1a76cc0· accessed 2026-08-27 · vendor-docGrounds: CONTROL: ControlNet and pose or structure conditioning - [invokeai] InvokeAI README (invoke-ai/InvokeAI, main): the unified canvas with in- and out-painting, workflows and nodes, boards and model management, an API. publisher · read in our library
knowledge/fetched/cmp_gen_invokeai.md· pinh48293a6dbe76e2980f0532b64ee8bd2e236d48ff00c8601bc35c9e0bdf80646a· accessed 2026-08-27 · vendor-docGrounds: CONTROL: mask-based inpaint and outpaint - [fooocus] Fooocus readme (lllyasviel/Fooocus, main): the one-page UI with styles and presets, wildcards and weights, inpaint and outpaint, upscale, refiner passes, low-VRAM offload and auto-downloaded models. publisher · read in our library
knowledge/fetched/cmp_gen_fooocus.md· pinh89e1efb0ef1245a6b2abc4db41d5b76e3179656f875db99675900dc477e067bf· accessed 2026-08-27 · vendor-docGrounds: PROMPT: camera and photographic style variety rotated by seed - [sdcpp] stable-diffusion.cpp README (leejet, master): the ggml C++ inference engine our elder-sdcpp fork is built on -- the one non-sovereign component in the gen lane. publisher · read in our library
knowledge/fetched/cmp_gen_sdcpp.md· pinh258a8da1b214542f52937934bc97c06100b0b64bfb32f6516a3c04353b4b47f2· accessed 2026-08-27 · source-readGrounds: SOVEREIGNTY: the gen control plane is sovereign ELF - [zimage] Z-Image-Turbo model card (Tongyi-MAI, Hugging Face): the distilled single-stream DiT -- 8 NFEs, sub-second on an H800, fits 16 GB consumer VRAM, photorealism and instruction adherence, Qwen3 text encoder. publisher · read in our library
knowledge/fetched/cmp_gen_zimage.md· pinh87af5e1d7933dbfe091c4048a20805541130690ee813b8039b7f396b47e64338· accessed 2026-08-27 · vendor-docGrounds: GEN: text-to-image on the sovereign GPU worker - [hpsv2] Wu et al. Human Preference Score v2: A Solid Benchmark for Evaluating Human Preferences of Text-to-Image Synthesis. arXiv 2306.09341. publisher · read in our library
knowledge/fetched/cmp_gen_hpsv2.html· pinheb603c9e47e29126cce93eb981315b77f8fed06eef319d17d81e6a41c71320e7· accessed 2026-08-27 · published-paperGrounds: JUDGE: external human-preference referee - [pickscore] Kirstain et al. Pick-a-Pic: An Open Dataset of User Preferences for Text-to-Image Generation (PickScore). arXiv 2305.01569. publisher · read in our library
knowledge/fetched/cmp_gen_pickscore.html· pinh80a8945a13ac9404be47cfbc9d7d01dbaae828cc09e1f3b54f781e25a575f87b· accessed 2026-08-27 · published-paperGrounds: JUDGE: external human-preference referee - [geneval] Ghosh et al. GenEval: An Object-Focused Framework for Evaluating Text-to-Image Alignment. arXiv 2310.11513. publisher · read in our library
knowledge/fetched/cmp_gen_geneval.html· pinh71cb2deb745573e5acc3ad500ee3ae685e0bc4d836ccfdb0ee583caaca246571· accessed 2026-08-27 · published-paperGrounds: JUDGE: external human-preference referee - [midjourney] Midjourney documentation, Prompt Basics (the parameter-list article resolves here): prompt-embedded parameters, stylize and style, character and style references, region variation, personalisation. publisher · read in our library
knowledge/fetched/cmp_gen_midjourney.html· pinh2609fae5308a4f632014e438ffbc134414194ba8a45ae2d9a552b2a5d3d6423a· accessed 2026-08-27 · vendor-docGrounds: GEN: the engine's prompt-embedded control block
generated by nx_swcompare_matrix (sovereign NishiLang organ) from knowledge/compare/gen.matrix · every Nishi cell verified against organ source at emit time · watch cells re-measured on every compare beat · zero JS, zero trackers