sd15-npu-8gen2 / README.md
latentdivergence's picture
Add files using upload-large-folder tool
a0012ac verified
|
Raw
History Blame Contribute Delete
1.75 kB
---
license: creativeml-openrail-m
base_model: stable-diffusion-v1-5/stable-diffusion-v1-5
tags:
- stable-diffusion
- qnn
- hexagon
- npu
- snapdragon
- text-to-image
pipeline_tag: text-to-image
---
# sd15-npu-8gen2
Stable Diffusion 1.5 compiled to **Qualcomm Hexagon NPU context binaries** for the
**Snapdragon 8 Gen 2**, via Qualcomm AI Hub (w8a16: int8 weights, int16 activations).
Generates a 512x512 image in **~7 seconds** fully on the NPU (no CPU fallback).
## Chip-specific — read this
QNN context binaries are compiled **per chip generation and will not load on another**.
Pick the build matching your Snapdragon:
| Repo | Chip | SoC | Hexagon |
|---|---|---|---|
| `sd15-npu-8elite` | Snapdragon 8 Elite | SM8750 | v79 |
| `sd15-npu-8gen3` | Snapdragon 8 Gen 3 | SM8650 | v75 |
## Layout
```
unet.onnx + unet_qairt_context.bin # EPContext wrapper + Hexagon binary
text_encoder.onnx + text_encoder_qairt_context.bin
vae.onnx + vae_qairt_context.bin
quant.txt # w8a16 scales, read at load
tokenizer/{vocab.json, merges.txt}
soc_model.txt, htp_arch.txt, kind.txt
```
The `.onnx` files are tiny EPContext wrappers carrying the quantize/dequantize nodes;
the weights live in the `_qairt_context.bin` Hexagon binaries. Load them with ONNX
Runtime's **C++** API — the Java API cannot express the uint16 tensors these require.
`quant.txt` holds the w8a16 quantization scales, read at load rather than hardcoded,
so one engine can drive any chip's build.
## License
Derived from Stable Diffusion 1.5 (**CreativeML OpenRAIL-M**); the Attachment A
use-restrictions travel with these weights. Compiled with Qualcomm AI Hub.