NPU モデル変換
独自の Stable Diffusion モデルを、Local Dream が Snapdragon デバイスでロードできる NPU 互換リソースに変換する方法を説明します。
いつ必要か
- ✅ NPU パスでカスタム SD1.5 または SDXL モデルを実行したい場合。
- ❌ CPU/GPU パスでカスタム SD1.5 モデルを実行したい場合 — アプリ内で直接対応しており、ホスト側の変換は不要です。
利用可能なワークフロー
| ワークフロー | ステータス | ガイド |
|---|---|---|
| SD1.5 → NPU | 安定 | SD1.5 変換ガイド |
| SDXL → NPU | 実験的 | SDXL 変換ガイド |
概要
- 変換はホスト側で行います。Linux または WSL マシンが必要です。
- パイプラインは W8A16 量子化 QNN バイナリを生成し、アプリでインポート可能な zip にパッケージングします。
- SD1.5 はチップティアごと(
_min/_8gen1/_8gen2)に zip を 1 つずつビルドします。SDXL は 1 ティア(_8gen3)のみです。 - 1 回の SD1.5 変換には 数時間 の CPU 時間がかかります。SDXL はさらに長くなります。
QNN SDK のバージョンが 2 つあるのはなぜ?
変換スクリプトは QNN SDK 2.28 を固定で使い、Android アプリ自体は QNN SDK 2.39 をランタイムとして同梱します。これは意図的です:2.28 は本ガイドの変換パイプラインで正しい量子化バイナリを出力できる既知のバージョンであり、ランタイムは新しい版を使い続けます。モデル変換に 2.39 は不要で、また 1 回の変換中に両バージョンを混在させないでください。
ハードウェア要件
| ワークフロー | メモリ + swap | ディスク | GPU |
|---|---|---|---|
| SD1.5 @ 512×512 | ~20 GB | ~30 GB | 任意 |
| SD1.5 @ より高い解像度 | 64 GB+ | 60 GB+ | 任意 |
| SDXL @ 1024×1024 | 64 GB+ | 60 GB+ | 任意 |
変換をスキップ
すぐに使えるモデルが欲しい場合は、まず事前変換済みコミュニティモデルコレクションを確認してください。