※ 2024/04/07・・・アクセス制限が解除されたようなのでwgetによるダウンロード機能を復活させました。
※ 2024/04/01AM・・・現在、アクセスが集中してwgetによるダウンロードがけられているようです。面倒でもブラウザでダウンロードしてください。
※ 2024/03/31・・・Ver2.0にアップデート、多数の機能を追加
※ 2024/03/13・・・Navi22/23(RX6750XT/6700/XT/RX6650XT/RX6600/XT)動作手順を追加
※ 2024/03/13・・・バグフィックス版 全員差し替えしてください。
はじめに
話題のZLUDAを使用して、RX7900XTXでWindowsで動作させてみました。
おそらく、Radeonを使用した中ではWindowsで最速だと思います。
RDNA3以外のRadeonでも動くと思いますが、機材が手元にないので動作確認できているのはRX7900XTXのみとなります。
自分のRadeonで使えなくても泣かないこと。
重要
当サイトのZLUDAに対するスタンス
ZLUDAはライセンス違反の疑いがあるといわれていますが、その判断はgithubに任せています。
今回配布するスクリプトにはZLUDAのバイナリは含まれず、githubからダウンロードする形式になっています。
githubはライセンスに敏感な大企業Microsoftが運営しています。
問題がある場合はリポジトリが停止させられると思いますのでその時点まで使用できるという形になります。
もちろんですが、わたくしは法律の専門家ではありませんので、問題ないという判断になる可能性もわずかながらあるのかなと思います。
テスト環境
- CPU:Intel Core i7-13700K
- CPUクーラー:サイズ Big shuriken3 RGB
- マザーボード:Asrock Z690M-ITX/ax
- SSD:M2_2(チップセット側) Moment MT34 NVMe Gen3 SSD 256GB
- M2_1(CPU側) 未使用
- 電源:Corsair SFX 750W電源 SF-750
- メモリ:G Skill Trident Z DDR4-3600 OCメモリ16GB*2=32GB
- ケース:QDIY 0040-*PCJMK6-ITX(テストベンチ)
- OS:Windows11(最新までアップデート)
- GPU Sapphire Pulse Radeon RX7900XTX 24GB
いつも通りになります。
動作はHIP SDKのインストールが必須になるので、RDNA2とRDNA3のみになるのではないかと思います。
HIP SDKは一時期Windows版ROCmと名乗っていたものです。
実はredditでROCm6.1からWindowsに対応するのではないかという話が出ており、Radeon、WindowsでLLMを動作させるLLM StudioにもROCm テクニカルプレビューが含まれているようですので、本当にROCm6.1からWindows版が出るかもしれません。
今、MIOpenの3.1(=ROCm6.1)が94%まで来ていますので、出るとしたらあと2-4か月ほどでpytorchが出るところまで行くと思います。
なので今回のZLUDAは正式にWindowsでRadeonでStable Diffsuion WebUIが動作させられる前夜祭のようなものだと考えてください。
もちろん、伝聞や噂、憶測が入っていますので必ずROCmのWindows版が出るとは断言できませんが今のところ、その可能性は高いのかなと思います。
準備
最新盤・・・多数の機能を追加しました。
※ ダウンロード機能を復活させました。帯域制限とタイムアウトを設定しておりますので、時間がかかります。ご了承ください。
旧バージョン・・・シンプルなものが良い方のために旧いバージョンも残しておきます。
上のファイルをダウンロードして解凍すると\ai-appというフォルダが出てきますので、PC内のStable Diffusion WebUIを配置したいところにコピーしてください。
ai-appフォルダの中にいくつかのファイルとフォルダが含まれています。
AMD Radeon最新ドライバーのインストール
まず、AMDのRadeon用最新ドライバーをインストールします。
この記事を書いている現在の最新はAdrenalin Edition 24.2.1でした。
AMD HIP SDKのインストール
こちらもインストールが必要です。
この記事てテストしたのはHIP SDK 5.7.1です。
重要:新バージョンでは環境変数の登録は必要なくなりました。
すでに登録されている方で新バージョンを使いたい方は削除してください。
設定-システム-バージョン情報-システムの詳細設定-環境変数(N)-システム環境変数(S)-path
「システム環境変数path」の中に「%HIP_PATH%bin」がある場合は削除してください。
インストール
先ほどとダウンロードしたファイルの中から「zld.bat」ダブルクリックしてください。
インストールが始まります。
最初にセットアップのための環境構築をします。
途中で
上のようなWindowsが表示されます。
一番上に表示されない場合はタスクバーを見てマウスでクリックして一番上に表示させてください。
「はい」をクリックしてセットアップを進めてください。クリックしないとセットアップが進みません。
※ 設定によっては管理者のパスワードの入力が求められることがありますのでパスワードを入力してから「はい」をクリックしてください。
"SD v1.x/SD v2.x/SDXLのモデルデータやembeddingsなどをダウンロードします"
30-50GB程の容量を消費しますが、よろしいですか?"
[Y,N]?
初回のみ、上のようなメッセージが出ますので、データのダウンロードをされる場合は「Y」を希望されない場合は「N」キーを押してください。
以前のバージョンからのアップデートの方はここは必ず「N」を選んでください。
なお「N」キーを押した場合でも一つだけデータをダウンロードします。
後からメニューでダウンロードできます。
*** 現在のデータフォルダはSDXLです。 ***
希望する動作を選択してください。
1. Stable Diffusion WebUI ZLUDA セットアップ・起動
2. モデルデータ等ダウンロード
3. ZLUDAキャッシュバックアップ
4. ZLUDAキャッシュレストア
5. SDXLにデータフォルダ切替え
6. SD1Xにデータフォルダ切替え
7. SD2Xにデータフォルダ切替え
8. WebUIアップデート
9. コマンドプロンプト起動
* 環境変数PATH設定済 - Git/Pythonが使えます[1,2,3,4,5,6,7,8,9]?
上のようなメニューが出ます。
希望する処理の数字を押してください。
特に説明は必要ないと思いますので重要なところだけ説明します。
2番メニュー
モデルデータダウンロードは先ほどダウンロードしなかった方のためにいつでもダウンロードできるようにしています。
なお、すでに存在しているファイルはスキップします。
すでにダウンロードした方が再度間違って選択しても問題ありません。
5・6・7番メニュー
本スクリプトではSD V1.5とSD V2.1、SDXLのデータフォルダを分けています。
上のメニューでそれぞれ切り替えることができます。
処理が終わると再度メニューが表示され
*** 現在のデータフォルダはSDXLです。 ***
の部分が切り替わります。
1番メニューを選ぶと旧版と違って一度目で起動します。
起動したらなんでもよいので、画像を生成してください。
最初の1枚目だけ10-20分程度かかります。
これはZLUDAがRadeonで実行するための中間ファイルを作成するためです。
2度目からは普通に高速に実行できるようになります。
これで終了です。
お疲れさまでした。
技術的な解説など
今回はNavi22/23対応ファイルの「ROCmLib.zip」を自動でダウンロードして、自動でセットアップします。
前回までの手順は必要ありません。
インストールされる拡張機能一覧
- LCM Sampler・・・LCM LoRAを有効にしてステップ数を削減したい場合、LCM Samplerの使用が推奨されています。
- ControlNet・・・多数の機能を拡張する有名エクステンション
- Ragional Pronper・・・生成領域を分けてプロンプトを適用する拡張機能
- タグコンプリート・・・プロンプト欄に英語を入力すると、自動的にタグの候補がポップアップする
- Easy Prompt Selector・・・プロンプト入力を補助する拡張機能
- A Dtailer・・・手や顔の崩れを修正してくれる拡張機能。
- Aspect Ratio・・・縦横比設定の拡張機能
- Tiled Diffusion Upscaler・・・画像を分割して生成する拡張機能
- Civitai Helper・・・Stable Diffusion Web UI内に入れている各モデルのサムネイル画像を表示することができる拡張機能
- Prompt All in One・・・多数の機能を追加する拡張機能
- Model Toolkit・・・モデルデータの軽量化、VAEの抽出・埋め込みなどの拡張機能
- Image Browser・・・WebUI上から画像管理する拡張機能
- Canvas Zoom・・・InpaintやSketchに送った画像を拡大・縮小して修正できるようになる拡張機能
- Openpose Editor・・・Openposeの棒人間のポーズを編集する拡張機能
- PhotoPEA・・・Web対応の画像編集アプリをWebUIに内蔵する拡張機能
- Config Preset・・・設定を保存する拡張機能
- One Button Prompt・・・プロンプトをランダムに生成する拡張機能
- 日本語ローカライゼーション・・・WebUIを日本語対応にする拡張機能
有名なものは全て対応していると思います。
申し訳ありませんが、これだけの拡張機能の説明はできかねますので、「[拡張機能名] 使い方」などを検索してご自分で調べてください。
すべての拡張機能が正常に動くことまでは確認しておりませんのでご了承ください。
Zludaのキャッシュをバックアップできるようになりました。
Zludaは複数のアプリに対応していませんので、別のCUDA対応アプリを使うときはキャッシュを消去しないと正常動作しません。
キャッシュが破損したときのために念のためにバックアップを取っておくと安心です。
バックアップは「[インストールパス]\ai-app\misc\zbkup」にバックアップします。
すでにファイルが存在している場合は、上書きするかどうか聞かれます。
python embededとminGitの採用
組み込み用のPythonとGitを使用することによって、含まれるバイナリファイルを0にすることができました。
あとはバッチファイルが読める方ならば、スクリプトの有害性を簡単に判断することができます。
非常に安心できるのではないでしょうか。
データフォルダ切り替え
データフォルダは「[インストールパス]\ai-app\ai-dat」になります。
ここにデフォルトでは「\sd」「\sd1x」「\sd2x」が存在しています。
デフォルトではSDXLのデータを使う設定になってぃます。
SD V1.4/V1.5のデータを使うときは「\sd1x」を「\sd」に変更し、「\sd」を「\sdxl」に変更しています。
Stable Diffusion WebUIからは
- .\embeddings
- .\model\\ControlNet
- .\model\\ESRGAN
- .\model\Lora
- .\model\Stable-diffusion
- .\model\VAE
インストール時に上のフォルダを削除して「[インストールパス]\ai-app\ai-dat\sd」以下の対応フォルダにジャンクションを設定しています。
なお、インストールフォルダの移動を行っても「zld.bat」から起動する限りはパスの変更を検出すると自動でジャンクションを張り直しますので、インストール後もフォルダの移動は自由です。
ただし、ジャンクションはNTFS固有の機能ですから、exFATのドライブでは使えません。
exFATを使っているひねくれた人はあまりいないと思いますが念のためにお断りしておきます。
zld.batの動作は「.\msic」と「.\ai-dat」内にあるファイル・フォルダで判断していますので、これらのフォルダそのものや中身にあるファイル・フォルダは削除しないようにしてください。
パフォーマンス
では性能を見てみましょう。
ハローアスカベンチマーク512*512
数字が小さいほうが性能が良い
数字が大きいほうが性能が良い
ハローアスカベンチマーク768
数字が小さいほうが性能が良い
数字が大きいほうが性能が良い
性能を見ると、ROCmのStable Diffusion WebUI Forgeとほぼ同程度の結果になっています。
ただし、メモリの使用効率を含めた結果は検証していません。
HiresFixやControlnetがどうなるのかも確認していませんので自分で確認してみてください。
ライセンス的に怪しいところもありますが、基本的にはWindows版ROCmが出るまでのつなぎといってよいでしょう。
Windows版ROCmは最も早くても最低2か月はかかるので、それまでは問題なく使えると思います。
思ったよりも素晴らしい性能ですが、あまり過剰な期待はしないほうがよいでしょう。
冒頭でも説明した通り、ライセンスについての判断はgithub.comに従います。
ZLUDAのバイナリがダウンロードできなくなった時が本スクリプトの寿命になると考えてください。
RX6750XT/6700/XT/RX6650XT/RX6600/XT動作手順
この手順は必要なくなりました。
自動でセットアップします。
おまけ
ハローアスカベンチマーク512
ハローアスカベンチマーク768
すべてCUDA版と同じですので、画像の再現性はほぼ100%、プロンプトノウハウはそのまま使えます。
ZLUDAのアプリケーションキャッシュフォルダ
C:\Users\[ユーザー名]\AppData\Local
ZLUDAが変換するRadeonで動作するバイナリは上に格納されています。
調子の悪い時などはWebUIを終了してから削除してみるとよいでしょう。
ただし、また一から変換するため、最初の一枚を生成するのに10-15分程度の時間がかかります。
asrock japanさんにリツイートしていただいたので宣伝しておきます。
マザーボードも手掛けるAsrockは有力Radeon AIBです。