Stable DiffusionでAI画像をつくるよん。GPUは AMD Radeonで。 (original) (raw)

NVIDIAのCUDAにあたるAMDROCmをwindowsで利用できないかと、画策をしていました。結果、UM790proの内蔵グラフィック780MはROCmに対してサポートしておらず、仮にlinuxUbuntu)を導入しても不具合などその先を自力で開拓しなければなりません。

Stable Diffusionを最大限活用したければ、NVIDIAのグラボを買え。

▼広告がでます。ごめんなさい▼

いろいろやってみて、そう感じました。

何故って? いろいろUM790proで試してみたらブルースクリーンが多発して、その度に強制再起動。

1.再インストール ⇒ 変わらずブルースクリーンが出る。

2.メモリチェック ⇒ 異常なし

3.ドライバーを削除し、最新(推奨)のドライバーをインストール ⇒ 症状なおらず。

4.管理者権限でコマンド # DISM /Online /Cleanup-image /CreanHealth

⇒ 正常に終わったが症状なおらず。

5.チェックディスク ⇒ 異常なし

6.ウイルス感染 ⇒ 異常なし

これはMINISFORUMさんに訴えて(クレーム?)初期不良でNG交換か……。

それでもどうにかならないかと再度ドライバーを削除し、今度は最新(推奨)でないものをインストール。

うん。ブルースクリーン無くなったよ。

おまえか!

VRAM 16GB 共有メモリ 23.9GB の環境で、Stable Diffusion にて再度画像生成。SD1.5系のモデルは 840×840 までメモリ不足にならず止まらずに生成ができる。SDXL系は 1440×1440 のサイズまで生成できた。

これでとりあえずはよしかな。

MINISFORUMのミニPCを(113,000円で)購入しました。内蔵グラフィックAMD780M(メモリ64GB、内16GBをVRAMに割り当て)がどのくらいの性能なのか、Hello Asuka Benchmarkを実施しました。

7 min. 26.4 sec. 【446.4 sec.】
7 min. 26.2 sec. 【446.2 sec.】
7 min. 26.9 sec. 【446.9 sec.】

▼広告がでます。ごめんなさい▼

3回の平均が7 min. 26.5 sec. 【446.5 sec.】となりました。

NVIDIAのグラボでいうところの、GTX 1650 Super(12GB)と同じような性能みたいです。

GTX 1650 Superの中古品が15,000yen - 60,000yenくらいなので、「Stable Diffusion」の設定の手間を考えると、自作でPCを組んだ方が良かったかもしれませんね。

そうなんです。Stable DiffusionはNVIDIAのグラボ(CUDAが優秀)で調整されているので、現状AMDのグラボRADEONではStable Diffusionの良さを最大限発揮するのは難しいと思います。

NVIDIAのCUDAにあたるAMDの**ROCが個人向けにも整備されればRADEONでもいかんなく性能が発揮できると思います。(まあ、情報がガンガンアップデートされるし、そのうちWindows上でROCm**が普通に動くときが来るだろう)

というわけでMINISFORUMのUM790pro(AMD780M)では、現状自分でチューニングする必要があります。(まあ、自分はそれが楽しいからいいけど)

じゃあ、NVIDIAのグラボが搭載可能なできるだけ小さなケースを探しているとサンドイッチ構造のケース Fractal Designの「Terra」がかなり良いなと感じました。

Terra — Fractal Design

ここからは妄想です。

極小PCケースは排熱が大事で、各パーツに熱がこもるとパーツの寿命が短くなります。そうなるとRTX3060(12GB)よりもRTX4060(性能が少し落ちるらしい)の方が良いのかなと。

GeForce RTX 4060 Ti & 4060 グラフィックス カード | NVIDIA

あれ? メーカーHPだとRTX4060の方が性能いいな。

マザーボードは170mm×170mmサイズのMini-ITX規格。

CPUはintel 第12世代 core i7AMD Ryzen 7。

メモリは Micron Technology の Crucial。ストレージは M.2 SSD

電源ユニットはしっかりしたものを選ぶ。電源ユニットが原因でクリティカルなダメージが他の各パーツにかかることがあるので。

うーん。

⇒これ組むなら、いっそのことゲーミングPCを買った方が良いのでは?

⇒ゲーミングPCを買うならミニPCを買った方がいいのでは?

⇒ミニPCだとNVIDIAのグラボが載せられないので、極小PCケースを買ってPC組のが良いのでは?

⇒これ組むなら、いっそのことゲーミングPCを買った方が良いのでは?

⇒(以下無限ループ)

「Stable Diffusion」の導入にあたって、ユーザーインターフェースが使いやすいAUTOMATIC1111を導入することにした。

1.Python 3.10.6 のインストール

2.git のインストール

▼広告がでます。ごめんなさい▼

【★★】ここで「Stable Diffusion」で使うモデルをダウンロード【例 Dreamshper(SD1.5系列)DreamshperXL(SDXL系列)】

3.Stable Diffusionを格納するフォルダを作る。【今回は「SD2024」というフォルダを作成】

※参考参照URL

Stable Diffusion Web UIのダウンロード方法と使い方を解説! - | 法人様向けパソコンならドスパラプラス

以下、動作環境によるので〔自己責任〕でお願いします。

[※NVIDIA GPUを使用の場合]

4.作った「SD2024」フォルダを開き、フォルダ内で右クリック「その他のオプションを確認」⇒「Open Git Bash here」を選択。

5.ターミナルにgit clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.gitとコマンド入力、エンター。

6.作成された「stable-diffusion-webui」のフォルダ内の「models」フォルダを開け、「Stable-Diffusion」フォルダを開けたところに【★★】でダウンロードしたモデルをコピー&ペーストする。

7.「stable-diffusion-webui」のフォルダに戻り、中にある「webui-user.bat」をダブルクリックして、Stable Diffusion Web UIのダウンロードを開始する。

8.「AUTOMATIC1111」が起動する。以降「webui-user.bat」をダブルクリックで起動するが、ショートカットを作成して、任意の場所【例 デスクトップ】に貼っておく。

[※AMDGPU RADEONを使用する場合]

※参考参照URL

A friendly guide to running Stable Diffusion at home • The Register

3.AMDのホームページからドライバーをダウンロード。

4.Microsoft Visual C++ Redistribuable(x64)をインストール。

5.作った「SD2024」フォルダを開き、フォルダ内で右クリック「その他のオプションを確認」⇒「Open Git Bash here」を選択。

6.ターミナルに【AUTOMATICのフォーク版である】

git clone https://github.com/lshqqytiger/stable-diffusion-webui-directml

とコマンド入力、エンター。

7.作成された「stable-diffusion-webui-directml」のフォルダ内の「models」フォルダを開け、「Stable-Diffusion」フォルダを開けたところに【★★】でダウンロードしたモデルをコピー&ペーストする。

8.「stable-diffusion-webui」のフォルダに戻り、中にある「webui-user.bat」を右クリック。編集をクリック。

9.ファイルの中の「set COMMANDLINE_ARGS=」を

set COMMANDLINE_ARGS= --use-directml --opt-sdp-attention

と書き足す(--opt-sdp-attentionは高速化のコマンドなので環境によっては無くてよい)

※環境によって「set COMMANDLINE_ARGS= --use-zluda」としてよいらしいが、筆者の環境ではエラーが出て導入できず。

10.「webui-user.bat」をダブルクリックでインストール開始。以降「webui-user.bat」をダブルクリックで起動するが、ショートカットを作成し、活用するとよい。

【自分用MEMO】

windowsとONNXを使いZLUDA環境(ROCm?)を作ることができるようだ。その際Minicondaなどのツールを使う模様。

ただ、RADEONを使い、ROCmをwindows上で動かそうとすると「HIP SDK」が必要になってくるみたい。

AMD HIP SDK for Windows

「HIP SDK」がサポートしているグラボは限られていて、残念ながら内蔵グラフィック780Mはサポートから外れている。linux上で「Stable Diffusion」をROCmで高速化できると思っていたが、それは一部の(サポートされている)グラボのみの話の様だ。

thinkpad x390でStable Diffusionを試してみたのですが、1枚画像生成するのに約20分。遅いな。

ガンガンに回して作っていたらthinkpad x390君が、「熱っ!」これthinkpadおしゃかになるぞ。

と新しくパソコンを買うことを決意。自作を検討しPCケースを見るが、

「高いな」

グラボが搭載できて、できるだけコンパクトなケースを探しましたが、お気に召さず。

▼広告がでます。ごめんなさい▼

ミニPCにドッキングステーションをかましNVIDIA RTX のグラボの構成を計画していましたが、電源供給がよくわからなかったので、計画練り直し。thinkpadに外付けグラボもありじゃんと。それならもっと小さいミニPCでもいいな。

自作PC
thinkpad+eGPU(外付けグラボ)
⇒ミニPC+eGPU(外付けグラボ)

(。´・ω・)ん? これミニPCの内蔵グラボの性能を上げる方向でいいんじゃん?

いろいろ調べて、MINISFORUMのUM790proを買いました。(9/27に注文)

AMD内蔵グラフィックが評判のイイ、ADM780。どのくらい早くなるかワクワクしていました。10/5に到着、早速使ってみる。

ネットの情報を参考に、webui-user.batファイルの中を、

set COMMANDLINE_ARGS=--skip-torch-cuda-test --no-half

と編集。実行!

(。´・ω・) あれ? GPU使用率1%?

Stable Diffusion Web UIのダウンロード方法と使い方を解説! - | 法人様向けパソコンならドスパラプラス

の導入方法ではGPUは上手く働かず(NVIDIAなら余裕で動くみたい)
いくつか試してみました。

stable-diffusion-webui-directml 版を入れたり、
ComfyUIを入れてみたり、
英語でコマンド手順を解説している

https://www.youtube.com/watch?v=mKxt0kxD5C0

を参考にコマンドを打ってみたり、

(。´・ω・) うーん、うまくいかない。

CPUが100%でGPUは1%。Windowsのみの活用をやめ、(ROCmを使う為)Ubuntuを導入しようかと。いや、まだ道はあるはず。で、いろいろやって

A friendly guide to running Stable Diffusion at home • The Register

の手順で【自己責任】やってみたら――、

キタァ ――(゚∀゚)――!!

GPU100%、CPU2%。よし!

AMDRADEONは手間がかかるね。(そこが面白いんだけど)

10/6 細かい調整を行う。高速化のため、

webui-user.batファイルの中を

set COMMANDLINE_ARGS= --use-directml -–opt-sdp-attention

と編集する。

このとき画像サイズを1024×1024にするとランタイムエラーが発生。サイズを小さくすることで解決。

10/7 さらに生成速度を高めるためにネットで情報を収集。Loraを導入することで速くなるとの情報、

https://www.youtube.com/watch?v=aT7X3yuOdeg

を見つけ、動画を参考にlcm-lora-sdv1-5をダウンロード。(使用モデルがDreamshperのため、SD1.5対応)ファイルを所定の場所に置く。

Sampring methodは「Euler a」

Sampring stepsは「8」

CFG Scaleは「1.5」

で設定。

これでだいぶ速く生成できるようになりました。