File size: 2,581 Bytes
39ae3a9
3d10b66
39ae3a9
 
3d10b66
 
63eca1b
39ae3a9
63eca1b
39ae3a9
 
 
 
63eca1b
39ae3a9
 
 
3d10b66
39ae3a9
3d10b66
 
 
 
 
 
 
 
39ae3a9
63eca1b
 
3d10b66
 
39ae3a9
63eca1b
39ae3a9
3d10b66
 
39ae3a9
63eca1b
39ae3a9
63eca1b
3d10b66
 
 
 
 
 
39ae3a9
63eca1b
 
3d10b66
 
 
 
 
 
39ae3a9
3d10b66
 
39ae3a9
3d10b66
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
---
license: openrail++
tags:
  - stable-diffusion-xl
  - realvisxl
  - lightning
  - qualcomm
  - hexagon
  - qnn
  - npu
  - text-to-image
  - tokforge
library_name: qnn
pipeline_tag: text-to-image
inference: false
---

# TokForge — RealVisXL V4.0 Lightning (Qualcomm Hexagon NPU)

**RealVisXL V4.0 Lightning** image generation for the **Qualcomm Hexagon NPU (HTP)**, packaged for
**on-device** image generation in the **TokForge** Android app (`dev.tokforge`). This is the
higher-quality **1024×1024** "Faithful" tier alongside the SD1.5 NPU bundle.

vc410: this repo replaces the previous **SDXL-Turbo** bins (few-step distillation gave fused heads /
doubled bodies / extra limbs) with **RealVisXL V4.0 Lightning**, which is adversarially distilled for
**deterministic few-step Euler** and renders clean, photoreal people. The W8A16 NPU quant is
unchanged — the checkpoint was the cure.

The model is quantized to **W8A16** (8-bit weights, 16-bit activations) and compiled to **QNN HTP
context binaries** that run on the phone's Hexagon DSP. The pipeline uses **fp16 text encoders** and a
**TAESDXL** tiny-VAE decoder, runs **6-step EulerDiscrete**, and is **guidance-free** (one UNet pass
per step).

## Based on

[`SG161222/RealVisXL_V4.0_Lightning`](https://huggingface.co/SG161222/RealVisXL_V4.0_Lightning) —
CreativeML OpenRAIL++-M license (commercial use permitted, no revenue cap).

## Format

**QNN HTP context binaries** (W8A16), native **1024px** (128×128 latent). These are compiled for the
Hexagon DSP and are **not** a portable format like GGUF. The repo ships **native sets for V73 / V75 /
V79 / V81**; the app reads the device Hexagon arch (`dsp_arch`) and downloads the matching set.
Forward-compatibility (a lower-arch binary also runs on a higher-arch DSP) still applies as a
fallback. Device-verified clean on **V75** (Lenovo SM8650) and **V81** (RedMagic SM8850).

## Pipeline

| Stage | File |
|-------|------|
| CLIP-L text encoder (fp16) | `<arch>/text_encoder_1_fp16.bin` |
| OpenCLIP-bigG text encoder (fp16) | `<arch>/text_encoder_2_fp16.bin` |
| Combined-emb MLP (host CPU) | `<arch>/sdxl_emb_mlp.bin` |
| UNet (W8A16, DSP) | `<arch>/unet.bin` |
| TAESDXL tiny-VAE (CPU MNN) | `<arch>/taesdxl_decoder.mnn` |
| Dual CLIP BPE tokenizers | `<arch>/tokenizer/`, `<arch>/tokenizer_2/` |

Scheduler: **EulerDiscrete** (deterministic), trailing spacing, epsilon prediction, **6 steps**,
guidance_scale 0. Runs via the license-clean `libsdxl_qnn_driver` in the TokForge app.

See `manifest.json` for the per-arch file list, sizes, and md5 checksums.