| ---
|
| 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.
|
|
|