{ "schema": "tokforge-sdxl-qnn-npu/manifest@1", "model": "realvisxl-v4.0-lightning", "variant": "fp16-encoders + TAESDXL", "scheduler": "EulerDiscrete", "native_steps": 6, "license": "openrail++", "license_note": "RealVisXL V4.0 Lightning is released under the CreativeML OpenRAIL++-M license. Commercial use permitted; no revenue cap (unlike the prior SDXL-Turbo Stability AI Community License). Use-based restrictions per the OpenRAIL++ schedule apply.", "generated": "2026-06-06T00:00:00Z", "repo": "darkmaniac7/TokForge-SDXL-QNN-NPU", "notes": [ "vc410: 'Faithful' NPU tier = RealVisXL-v4.0-Lightning, replacing cursed base SDXL-Turbo (few-step distillation -> fused heads / doubled bodies). Bin-only swap on the SAME W8A16 NPU recipe + IO contract; the driver default scheduler flips EulerAncestral -> EulerDiscrete (Lightning is distilled for deterministic few-step Euler) and native steps 4 -> 6.", "App reads the device Hexagon arch (dsp_arch) and picks the matching native set. Four native sets ship: v73/v75/v79/v81. Forward-compat still applies (a lower-arch bin runs on a higher-arch DSP) as a fallback.", "source=ours: clean-room RealVisXL -> W8A16 -> QAIRT 2.40 conversion, drop-in for our libsdxl_qnn_driver (graph name 'model', host combined-emb input).", "verified=true = run on real silicon and confirmed coherent (no body-horror). V75 (Lenovo .69) + V81 (RedMagic .82) device-verified. v73/v79 offline-validated, awaiting handsets.", "The 4 per-arch bins (unet/text_encoder_1_fp16/text_encoder_2_fp16/sdxl_emb_mlp) are the only RealVisXL swap; taesdxl_decoder.mnn (universal SDXL tiny-VAE) + the dual CLIP tokenizers + config are checkpoint-agnostic and byte-identical to the prior set." ], "arch_to_socs": { "73": { "name": "Hexagon V73", "socs": [ "SM8550 (Snapdragon 8 Gen 2)", "SM8635 (8s Gen 3)", "SM7475 (7+ Gen 3)" ] }, "75": { "name": "Hexagon V75", "socs": [ "SM8650 (Snapdragon 8 Gen 3)", "SM7675 (7 Gen 4)" ] }, "79": { "name": "Hexagon V79", "socs": [ "SM8750 (Snapdragon 8 Elite)", "SM8750-AB (8 Elite for Galaxy)" ] }, "81": { "name": "Hexagon V81", "socs": [ "SM8850 (Snapdragon 8 Elite Gen 5)" ] } }, "io_contracts": { "ours-sdxl-emb": { "graph_name": "model", "unet_inputs": { "sample": "[1,4,128,128] UFIXED16 (NCHW, raw scheduler latent)", "emb": "[1,1280] UFIXED16 host combined-emb = time_embedding(time_proj(t)) + add_embedding(cat(pooled, add_time_proj(time_ids))); computed host-side via sdxl_emb_mlp.bin", "text_embedding": "[1,77,2048] UFIXED16 = concat CLIP-L last_hidden[1,77,768] ++ bigG last_hidden[1,77,1280]" }, "unet_output": "output [1,4,128,128] UFIXED16", "text_encoder_1": "CLIP-L: in input_ids INT32 [1,77] -> out last_hidden [1,77,768] (penultimate, hidden -2)", "text_encoder_2": "OpenCLIP-bigG (+projection): in input_ids INT32 [1,77] -> out last_hidden [1,77,1280] + pooled [1,1280]", "vae": "TAESDXL CPU tiny-VAE (taesdxl_decoder.mnn), in latent [1,4,128,128] -> out [1,3,1024,1024]; CPU MNN path only (SDXL_VAE_BACKEND=cpu)", "scheduler": "EulerDiscrete (deterministic, sigma_up=0), trailing spacing, epsilon prediction, 6 steps native, guidance_scale 0 (NO CFG -> ONE UNet pass per step)", "vae_scaling_factor": 0.13025, "resolution": 1024, "driver": "libsdxl_qnn_driver.so (#51 ImageGenerationSdxlNpuCliHelper); flags --text_encoder_1/--text_encoder_2/--unet/--vae_mnn/--emb_mlp/--vocab_1/--merges_1/--vocab_2/--merges_2/--backend/--system_library; env SDXL_VAE_BACKEND=cpu" } }, "sets": { "ours/v73": { "source": "ours", "dsp_arch": 73, "representative_soc": "SM8550 (Snapdragon 8 Gen 2)", "soc_model": 43, "qairt_runtime_required": "2.40", "skel": "libQnnHtpV73Skel.so", "io_contract": "ours-sdxl-emb", "verified": false, "verify_note": "Native v73 bins produced from the same arch-agnostic W8A16 DLC as the device-verified V75/V81 sets (only dsp_arch/soc_model differ); offline-validated, awaiting a handset.", "files": { "unet.bin": { "path": "v73/unet.bin", "size": 2637426688, "md5": "704a3831c4b7b0307ebe6e09749e3116" }, "text_encoder_1_fp16.bin": { "path": "v73/text_encoder_1_fp16.bin", "size": 234770432, "md5": "52e4831a9d5cedb5ac5294048baeeb61" }, "text_encoder_2_fp16.bin": { "path": "v73/text_encoder_2_fp16.bin", "size": 1401405440, "md5": "0e007a1c5ea717e1cbd2a269b8551995" }, "sdxl_emb_mlp.bin": { "path": "v73/sdxl_emb_mlp.bin", "size": 29184000, "md5": "4716e990d5f83b194ebe90a0e695f3f5" }, "taesdxl_decoder.mnn": { "path": "v73/taesdxl_decoder.mnn", "size": 2464388, "md5": "bfbfb43faa70fc3885bfef24a60b8882" }, "tokenizer/vocab.json": { "path": "v73/tokenizer/vocab.json", "size": 1059962, "md5": "a3933521163a0e76cee6094f1d72a9cc" }, "tokenizer/merges.txt": { "path": "v73/tokenizer/merges.txt", "size": 524619, "md5": "d2bc10797e70c920c14c69729ecdab34" }, "tokenizer/special_tokens_map.json": { "path": "v73/tokenizer/special_tokens_map.json", "size": 586, "md5": "f1c97d73dc836331f2138893217d32d8" }, "tokenizer/tokenizer_config.json": { "path": "v73/tokenizer/tokenizer_config.json", "size": 704, "md5": "b0e83247e6c27802b6f2ccce2615e402" }, "tokenizer_2/vocab.json": { "path": "v73/tokenizer_2/vocab.json", "size": 1059962, "md5": "a3933521163a0e76cee6094f1d72a9cc" }, "tokenizer_2/merges.txt": { "path": "v73/tokenizer_2/merges.txt", "size": 524619, "md5": "d2bc10797e70c920c14c69729ecdab34" }, "tokenizer_2/special_tokens_map.json": { "path": "v73/tokenizer_2/special_tokens_map.json", "size": 460, "md5": "1f2ba80c3ba1db3a1729f82f0c2667ce" }, "tokenizer_2/tokenizer_config.json": { "path": "v73/tokenizer_2/tokenizer_config.json", "size": 855, "md5": "7a07b6cea8034258f7a153860e81bc41" }, "config.json": { "path": "v73/config.json", "size": 941, "md5": "cef955fa8c4175c7c4a540119507a35d" } } }, "ours/v75": { "source": "ours", "dsp_arch": 75, "representative_soc": "SM8650 (Snapdragon 8 Gen 3)", "soc_model": 57, "qairt_runtime_required": "2.40", "skel": "libQnnHtpV75Skel.so", "io_contract": "ours-sdxl-emb", "verified": true, "verify_note": "Device-verified coherent (no body-horror) on real SM8650 (Snapdragon 8 Gen 3)/v75 silicon, RealVisXL-v4.0-Lightning, 6-step EulerDiscrete, ~5s/1024px.", "files": { "unet.bin": { "path": "v75/unet.bin", "size": 2637357056, "md5": "b477ffaed6e507348dc4b4d450c32fdc" }, "text_encoder_1_fp16.bin": { "path": "v75/text_encoder_1_fp16.bin", "size": 234770432, "md5": "7be99090bfe35217bcb98afeb854c125" }, "text_encoder_2_fp16.bin": { "path": "v75/text_encoder_2_fp16.bin", "size": 1401405440, "md5": "8a0df4338971687307d7fd074e5546a4" }, "sdxl_emb_mlp.bin": { "path": "v75/sdxl_emb_mlp.bin", "size": 29184000, "md5": "4716e990d5f83b194ebe90a0e695f3f5" }, "taesdxl_decoder.mnn": { "path": "v75/taesdxl_decoder.mnn", "size": 2464388, "md5": "bfbfb43faa70fc3885bfef24a60b8882" }, "tokenizer/vocab.json": { "path": "v75/tokenizer/vocab.json", "size": 1059962, "md5": "a3933521163a0e76cee6094f1d72a9cc" }, "tokenizer/merges.txt": { "path": "v75/tokenizer/merges.txt", "size": 524619, "md5": "d2bc10797e70c920c14c69729ecdab34" }, "tokenizer/special_tokens_map.json": { "path": "v75/tokenizer/special_tokens_map.json", "size": 586, "md5": "f1c97d73dc836331f2138893217d32d8" }, "tokenizer/tokenizer_config.json": { "path": "v75/tokenizer/tokenizer_config.json", "size": 704, "md5": "b0e83247e6c27802b6f2ccce2615e402" }, "tokenizer_2/vocab.json": { "path": "v75/tokenizer_2/vocab.json", "size": 1059962, "md5": "a3933521163a0e76cee6094f1d72a9cc" }, "tokenizer_2/merges.txt": { "path": "v75/tokenizer_2/merges.txt", "size": 524619, "md5": "d2bc10797e70c920c14c69729ecdab34" }, "tokenizer_2/special_tokens_map.json": { "path": "v75/tokenizer_2/special_tokens_map.json", "size": 460, "md5": "1f2ba80c3ba1db3a1729f82f0c2667ce" }, "tokenizer_2/tokenizer_config.json": { "path": "v75/tokenizer_2/tokenizer_config.json", "size": 855, "md5": "7a07b6cea8034258f7a153860e81bc41" }, "config.json": { "path": "v75/config.json", "size": 941, "md5": "8781f507a014bf14d668a911e60345a5" } } }, "ours/v79": { "source": "ours", "dsp_arch": 79, "representative_soc": "SM8750 (Snapdragon 8 Elite)", "soc_model": 69, "qairt_runtime_required": "2.40", "skel": "libQnnHtpV79Skel.so", "io_contract": "ours-sdxl-emb", "verified": false, "verify_note": "Native v79 bins produced from the same arch-agnostic W8A16 DLC as the device-verified V75/V81 sets (only dsp_arch/soc_model differ); offline-validated, awaiting a handset.", "files": { "unet.bin": { "path": "v79/unet.bin", "size": 2636988416, "md5": "602f0e337957ffd3a96cea91d203ee25" }, "text_encoder_1_fp16.bin": { "path": "v79/text_encoder_1_fp16.bin", "size": 234754048, "md5": "9a2b348f99d3bb6a3780507a335c4370" }, "text_encoder_2_fp16.bin": { "path": "v79/text_encoder_2_fp16.bin", "size": 1401307136, "md5": "e412c07bf4fe1b1201173f77d856a26c" }, "sdxl_emb_mlp.bin": { "path": "v79/sdxl_emb_mlp.bin", "size": 29184000, "md5": "4716e990d5f83b194ebe90a0e695f3f5" }, "taesdxl_decoder.mnn": { "path": "v79/taesdxl_decoder.mnn", "size": 2464388, "md5": "bfbfb43faa70fc3885bfef24a60b8882" }, "tokenizer/vocab.json": { "path": "v79/tokenizer/vocab.json", "size": 1059962, "md5": "a3933521163a0e76cee6094f1d72a9cc" }, "tokenizer/merges.txt": { "path": "v79/tokenizer/merges.txt", "size": 524619, "md5": "d2bc10797e70c920c14c69729ecdab34" }, "tokenizer/special_tokens_map.json": { "path": "v79/tokenizer/special_tokens_map.json", "size": 586, "md5": "f1c97d73dc836331f2138893217d32d8" }, "tokenizer/tokenizer_config.json": { "path": "v79/tokenizer/tokenizer_config.json", "size": 704, "md5": "b0e83247e6c27802b6f2ccce2615e402" }, "tokenizer_2/vocab.json": { "path": "v79/tokenizer_2/vocab.json", "size": 1059962, "md5": "a3933521163a0e76cee6094f1d72a9cc" }, "tokenizer_2/merges.txt": { "path": "v79/tokenizer_2/merges.txt", "size": 524619, "md5": "d2bc10797e70c920c14c69729ecdab34" }, "tokenizer_2/special_tokens_map.json": { "path": "v79/tokenizer_2/special_tokens_map.json", "size": 460, "md5": "1f2ba80c3ba1db3a1729f82f0c2667ce" }, "tokenizer_2/tokenizer_config.json": { "path": "v79/tokenizer_2/tokenizer_config.json", "size": 855, "md5": "7a07b6cea8034258f7a153860e81bc41" }, "config.json": { "path": "v79/config.json", "size": 941, "md5": "833cad64ed3e35accaecb27c1dd53099" } } }, "ours/v81": { "source": "ours", "dsp_arch": 81, "representative_soc": "SM8850 (Snapdragon 8 Elite Gen 5)", "soc_model": 87, "qairt_runtime_required": "2.40", "skel": "libQnnHtpV81Skel.so", "io_contract": "ours-sdxl-emb", "verified": true, "verify_note": "Device-verified coherent (no body-horror) on real SM8850 (Snapdragon 8 Elite Gen 5)/v81 silicon, RealVisXL-v4.0-Lightning, 6-step EulerDiscrete, ~5s/1024px.", "files": { "unet.bin": { "path": "v81/unet.bin", "size": 2636988416, "md5": "602f0e337957ffd3a96cea91d203ee25" }, "text_encoder_1_fp16.bin": { "path": "v81/text_encoder_1_fp16.bin", "size": 234754048, "md5": "9a2b348f99d3bb6a3780507a335c4370" }, "text_encoder_2_fp16.bin": { "path": "v81/text_encoder_2_fp16.bin", "size": 1401307136, "md5": "e412c07bf4fe1b1201173f77d856a26c" }, "sdxl_emb_mlp.bin": { "path": "v81/sdxl_emb_mlp.bin", "size": 29184000, "md5": "4716e990d5f83b194ebe90a0e695f3f5" }, "taesdxl_decoder.mnn": { "path": "v81/taesdxl_decoder.mnn", "size": 2464388, "md5": "bfbfb43faa70fc3885bfef24a60b8882" }, "tokenizer/vocab.json": { "path": "v81/tokenizer/vocab.json", "size": 1059962, "md5": "a3933521163a0e76cee6094f1d72a9cc" }, "tokenizer/merges.txt": { "path": "v81/tokenizer/merges.txt", "size": 524619, "md5": "d2bc10797e70c920c14c69729ecdab34" }, "tokenizer/special_tokens_map.json": { "path": "v81/tokenizer/special_tokens_map.json", "size": 586, "md5": "f1c97d73dc836331f2138893217d32d8" }, "tokenizer/tokenizer_config.json": { "path": "v81/tokenizer/tokenizer_config.json", "size": 704, "md5": "b0e83247e6c27802b6f2ccce2615e402" }, "tokenizer_2/vocab.json": { "path": "v81/tokenizer_2/vocab.json", "size": 1059962, "md5": "a3933521163a0e76cee6094f1d72a9cc" }, "tokenizer_2/merges.txt": { "path": "v81/tokenizer_2/merges.txt", "size": 524619, "md5": "d2bc10797e70c920c14c69729ecdab34" }, "tokenizer_2/special_tokens_map.json": { "path": "v81/tokenizer_2/special_tokens_map.json", "size": 460, "md5": "1f2ba80c3ba1db3a1729f82f0c2667ce" }, "tokenizer_2/tokenizer_config.json": { "path": "v81/tokenizer_2/tokenizer_config.json", "size": 855, "md5": "7a07b6cea8034258f7a153860e81bc41" }, "config.json": { "path": "v81/config.json", "size": 941, "md5": "99a5de2749b967ba0880434c1fac6041" } } } }, "driver_required_files": [ "unet.bin", "text_encoder_1_fp16.bin", "text_encoder_2_fp16.bin", "sdxl_emb_mlp.bin", "taesdxl_decoder.mnn", "tokenizer/vocab.json", "tokenizer/merges.txt", "tokenizer_2/vocab.json", "tokenizer_2/merges.txt" ], "install_marker_files": [ "unet.bin", "text_encoder_1_fp16.bin", "text_encoder_2_fp16.bin", "taesdxl_decoder.mnn" ], "bundle_dir_name": "SDXL-QNN-NPU", "model_id": "image-sdxl-qnn-npu", "total_bytes": 17232519072, "total_human": "17.23 GB per arch set (17232519072 bytes summed across 4 sets)", "optional_files": [] }