onwx-Image

日本語 | English

画像生成 AI Z-Image-Turbo を AMD Ryzen AI の XDNA2 NPU だけで動かすデスクトップアプリです。テキストエンコーダー(Qwen3)、画像を作る DiT、画像に戻す VAE の 3 つとも NPU で計算します。onwx の仲間です。

onwx-Image の画面
雪の降る京都の寺、赤い傘をさした人、浮世絵風 a red fox in a snowy birch forest, morning mist, photo 夕暮れの港町、石畳の坂道、水彩画風

速さ

Ryzen AI 9 HX 370(メモリ 32 GB)、9 ステップ、新しいプロンプトで 1 枚あたり:

サイズ 時間
768×768 約 56〜60 秒
1024×1024 約 99 秒

起動して最初の 1 枚は、モデルの読み込みのぶん 15 秒ほど長くかかります。同じプロンプトを続けるときは、テキストエンコーダーを使わないぶん少し速くなります。

しくみ

  • OpenVINO、ONNX Runtime、Vitis AI EP、DirectML、GPU は使いません。NPU の計算はすべて、mlir-aie の IRON で書いた自前のカーネルで、XRT から直接動かします。
  • DiT とテキストエンコーダー:重みと入力をどちらも INT8 にします(W8A8)。入力は 256 ごとの Hadamard 回転をかけてから量子化し、回転は重みに畳み込んであります。行列積は NPU の 32 コア全部で計算します。アテンションは NPU 上の flash attention で、L×L のスコアはコアの外に出しません。
  • VAE:ブロック浮動小数点(bfp16)の行列積と NPU の行カーネルで、画像全体をタイルに分けずに一度に復元します。diffusers(CPU)の結果との差は約 50 dB(PSNR)で、見た目では区別できません。
  • CPU が受け持つのは、トークン化、Euler スケジューラ、埋め込みなどベクトルの大きさの小さな計算だけです。
  • モデルは Tongyi-MAI/Z-Image-Turbo を NPU カーネルが読む形に変換したもの(ryugyosoft/Z-Image-Turbo-onwx-npu)です。原本から自分で作るときは python -m onwx_image.fetch_model --from-original。

必要なもの

  • XDNA2 NPU 搭載の AMD Ryzen AI PC(Ryzen AI 300 / Strix、Ryzen AI Max / Strix Halo)
  • Windows 11 x64、Python 3.13、Visual Studio 2022 の C++ ビルドツール
  • AMD NPU ドライバー(xrt-smi examine で NPU が見えること)
  • メモリ 32 GB 以上
  • ディスク約 16 GB(NPU 用に変換済みのモデル 11 GB、Python と NPU コンパイラ、NPU カーネル)
  • 初回のモデル・コンパイラ・XRT SDK のダウンロード用のインターネット接続

インストール

PowerShell で次を実行します。

irm https://huggingface.co/ryugyosoft/onwx-image/resolve/main/install.ps1 | iex

%LOCALAPPDATA%\onwx-Image に入り、スタートメニューの名前は onwx-Image です。セットアップは次を行います。

  1. Python の依存関係と NPU のコンパイラ(mlir-aie、llvm-aie。版を固定しています)、XRT 2.21.75 SDK を入れます
  2. NPU 用に変換済みの Z-Image-Turbo(ryugyosoft/Z-Image-Turbo-onwx-npu、約 11 GB)を取得します。PC での変換はありません
  3. すべての画像サイズの NPU カーネルを作ります(初回は約 30 分。もう一度実行したときは確認だけで 1〜2 分)

もう一度実行すると更新になります。

使い方

  • スタートメニューの「onwx-Image」または start.bat
  • ブラウザで開く:.venv\Scripts\python.exe -m onwx_image --browser
  • 画面だけ確かめる(NPU を使わない):.venv\Scripts\python.exe -m onwx_image --mock

プロンプト(日本語・英語)、サイズ、ステップ数、枚数、シードを選んで「生成」を押します。生成中のプレビュー、連続生成、履歴、PNG へのプロンプト・シードの保存ができます。画像は ピクチャ\onwx-Image に保存されます。NPU やモデルが足りないときはエラーになり、CPU や GPU に切り替えて動くことはありません。

メモリ 48 GB 未満の PC では、テキストエンコーダーは画像を 1 枚作るたびに手放し、画像を見ている間に裏で読み込み直します(ONWX_IMAGE_KEEP_TEXT_ENCODER=1 で常に保持、0 で常に手放す)。

診断

.venv\Scripts\python.exe -m onwx_image.xdna_setup
.venv\Scripts\python.exe -m onwx_image.doctor
.venv\Scripts\python.exe -m onwx_image.fetch_model --validate models\Z-Image-Turbo-onwx-npu
.venv\Scripts\python.exe -m onwx_image.prebuild

アンインストール

%LOCALAPPDATA%\onwx-Image フォルダー、スタートメニューの onwx-Image、NPU カーネルのキャッシュ %USERPROFILE%\.cache\onwx-image を削除します。設定は %APPDATA%\onwx-Image にあります。作った画像(ピクチャ\onwx-Image)は残ります。

ライセンス

アプリは Apache License 2.0 です。Z-Image-Turbo、mlir-aie、XRT などにはそれぞれのライセンスが適用されます。変更点は CHANGELOG.md にあります。

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support