Radeon ZLUDA

Last-modified: 2025-04-15 (火) 23:46:16
 

Radeon ZLUDA

 

Radeonでは、2024年の2月にZLUDAが公開されて以降、状況がガラリと変わってて、
もうwindowsで普通に使えてるよ。
AMD Radeonで Stable Diffusion webui A1111をwindows10直起動で使ってるよ (初版: 2024年6月)

 

本記事は、既にRadeonを持っていて Stable Diffusion をwindowsでちょっとやってみよう、という
お手軽ライトユーザー向けね。
本格派ガチ勢向けではないよ。またこれからVGAを買おうという人向けでもないからね。

まず現在のAI対応Radeon GPU一覧はココ
https://rocm.docs.amd.com/projects/install-on-windows/en/develop/reference/system-requirements.html
Windows-supported GPUsのタブがAMD Radeon PROタブになっていてその脇のAMD Radeonタブのところ。
RX7000シリーズ、および、RX6950XT, RX6900XT, RX6800XT, RX6800 これらが公式対応GPU。
#なお公式では非対応な扱いのGPUでも別途ライブラリを投入すればいけるらしいGPUのリスト(後述あり)
#gfx900(VEGA56, VEGA64), gfx906(RadeonVII), gfx1010(RX5700, RX5700XT), gfx1032(RX6600), gfx1031(RX6700)

 

Radeonでは、2024年の2月にZLUDAが公開されて以降、状況がガラリと変わってて、
もうwindowsで普通に使えてるよ。
2024年2月以前の情報は無視してOK。
それ以降も相変わらず的外れな情報が氾濫しているけど、それらは古い情報の受け売りだから、
あまり真に受けないように。AI関連では半年前の情報ですら既に古くて役に立たないどころか
害悪ですらあるからね。
特に、生成スピードとインストールの難易度がZLUDAで断然良くなったから。
生成スピードについては、wikiの グラボについて のZLUDA使用時の値と 5-3生成時間 を参考に。

インストールについては、下記長々と書いてるけど手数はNvidiaのときと基本変わらなくて、
Pythonのインストール、gitのインストール、AI開発キットのHIP SDKのインストール、
そしてA1111のインストールだ。

 

1. 準備 (Nvidiaと共通)
  ストレージ、SDXLモデルの用意, Python, git, Visual C++ Runtime, VGAのドライバ更新

2. AMDのAI用開発キット HIP の導入(AMD Radeon限定)

3. A1111のZLUDA版のインストール、起動 (Forgeも基本的に同じ)

4. APU機にVGAを挿して使っている場合限定の追加設定

つづく5, 6, 7, 8, 9 10 11 は おまけ

5. トラブルシューティング

6. ComfyUI ZLUDA版

7. SD.Next

8. おススメは

9. ZLUDAとは
  自力ZLUDA化方法など。A1111 dev版、reForgeのインストール。

10. kohya_ss GUIでLoRA学習

11. Forge ZLUDA版

 

ストレージ、SDXLモデルの用意, Python, git, Visual C++ Runtime, VGAのドライバ更新

 

なんだかんだで100GBくらい消費するので空きを用意しておく。
Pythonがらみのファイルが数十GBと、結構消費する。

 

SDXLモデルをひとつ、あらかじめダウンロードしておく。
ファイルサイズは7GBくらいある。
事前にモデルをダウンロードしておかないとどうなるかというと、
A1111などはインストール処理の途中でモデルの有無をチェックしていて、
モデルが無い場合は自動でモデルをひとつ、ダウンロードする。
そしてなぜかこういうときに限ってネットワークやサーバーが遅くなるもんで
、GB級のダウンロードで数時間待たされたあげく、最後の最後でダウンロードが
切れて失敗なんてことに。

モデル選びは、最初は流行りのモデルにしとけ。
いま2024年春なら、

昼向け: animagineXLV31_v31.safetensors
(SHA256: 1449E5B0B9DE87B0F414C5F29CB11CE3B3DC61FA2B320E784C9441720BF7B766)
昼夜兼用: ebara_pony_2.1.safetensors
(SHA256: cc6db13c9135afbb75df7cfed4fa99208a510da7c3d2d8bf9634e5576e6f1532)

これら2つはVAE内蔵なので初に使うのに向いている。
(2025年1月追記: 2024年は様々なモデルが出たが、扱うには癖のあるものがけっこうあるので、
最初の生成には現在もこの2つがおススメ。)

なお最初が実写系だといきなりトラウマレベルの絵が生成されたときのショックが
おおきいから最初はやめとけ。

次に進む前に、
モデル配布元にはSHA256などのhash値が書かれているので、
ダウンロードしたモデルのhash値があっているか確認しておく。
#microsoft純正だとfcivというツールがいちおうあるが、hash値が出せればなんでもよい。
hashの確認は、ファイル破損のほかにセキュリティの意味がある。
実際、つい最近(2024年6月)も、ComfyUIのとあるcustom nodeにmalicious codeが仕組まれていて
PCがhackされることが起こってる。
どこもhashを載せてるのはそういうこと。

 

Pythonhttps://www.python.org/ から入手する。
Microsoft WINDOWS STOREにもPythonがあったりするが、それは使ってはいけない。
必ずpython.orgから入手する。
旧バージョンの、Python 3.10.6の64bit版をインストールする。
Windows installer (64-bit) とある、python-3.10.6-amd64.exe これ。
新しいバージョンの3.12などではなく、3.10.6をインストールする。
なおインストールの際、インストーラーのデフォルトのままどんどん進めると

Add Python 3.10 to PATH

のチェックボックスが非チェックになっているので、
ここをチェック済みにしてインストールを進める。
インストール後、PCを再起動。

* 注: この時点では、Python3.10.11は使わないこと。どこかでPython3.10.11でも動くと
* 書かれたいたり、また3.10.11でインストールしろと書かれていたりしてもそららは無視すること。
Python3.10.11でインストールするのは、一度インストールがうまくいった場合の、2回目以降に
* おこなうことだ。初回はPython3.10.11でインストールしてはいけない。
* 初回は必ず公開元が指定しているバージョンを使うこと。A1111Python 3.10.6指定だ。
* 上記でPython3.10.6としているのはちゃんと理由がある。ミスや更新漏れではないよ。

次に進む前に一旦確認したい場合、コマンドプロンプトを開き、

python -V

と入力し(ここのVは、小文字のvではなく大文字のV。)、

Python 3.10.6

と表示されればOK。
エラーになったらそれは先のチェックボックスのチェックを
忘れてる。Pythonの再インストールだ。

 

https://git-scm.com/
インストーラーでデフォルトのままどんどん進めるだけでOK。
途中で

Git from the command line and also from 3rd-party software

これ大事で、デフォルトだとこれが選択されている。
(将来的にもデフォルトで選択されてるかはわからん)

次に進む前に一旦確認したい場合、コマンドプロンプトを開き、

git -v

と入力し、

git version (バージョン番号)

と表示されればOK。
エラーになったらそれは先のGit from the command line …が選択され
てない。gitの再インストールだ。

 

通常は既にPCにインストールされているので、わざわざ再インストールする必要はない。
ただ、新品PCやOS再インストール直後だとこのRuntimeが入っていないので、下記をインストールする。
*インストールした記憶が無いなら入れとけ。
https://learn.microsoft.com/ja-jp/cpp/windows/latest-supported-vc-redist
ここのx86用とx64用の2つ。コレら。
https://aka.ms/vs/17/release/vc_redist.x86.exe
https://aka.ms/vs/17/release/vc_redist.x64.exe
インストールはデフォルトのままどんどん進めるだけでOK。

 

すでに最新にしているのなら、そのままでよい。(追記: RX7000でHIP571の組合せだと25.3.1はダメかも?)
最新以外なら、Radeon, Nvidiaともに適切なバージョンのドライバに更新する。
Radeonの場合は、2023年の30週以降のドライバにする。2023年11月以降ならOKなのは確認済み。
Nvidiaの場合は、バージョンによって出来ることと出来ないことが変わるので、
wikiの GeForceドライバ を参考にバージョンを選ぶ。
なお、公開から日が浅いドライバ(2週間が目安)は、更新する前に情報を収集すること。
RadeonもNvidiaもどちらもやらかすことがある。
このやらかしとは過電圧過電流ドライバで物理破損なんてのも含まれるので公開直後は要注意だ。
やらかし放題の業界だからしょうがない。

 

AMDのAI用開発キット AMD HIP SDK for Windows をインストールする。
https://www.amd.com/en/developer/resources/rocm-hub/hip-sdk.html
ここの

5.7.1のHIP SDK
AMD-Software-PRO-Edition-23.Q4-Win10-Win11-For-HIP.exe

もしくは

6.2.4のHIP SDK
AMD-Software-PRO-Edition-24.Q4-Win10-Win11-For-HIP.exe

旧版5.7.1にするか、新版6.2.4にするか

AMD曰く、6.xは後方互換性は無い、とのことで、6.xにすると動かなかったりする恐れがある。

アプリ側は6.xへの対応は進んでおり、A1111-ZLUDA, Forge-ZLUDA, SD.Nextは既に6.xと5.7.1の両方に対応しているので、どちらでも大丈夫。残るComfyUI-ZLUDAはpatchファイルでユーザーに丸投げだが、6.x化は簡単である(やりかたはComfyの項で後述)。

となると、どれでもよさそうではあるのだが、、、


-まず最新の6.2.4

VGAが新型のgfx1151(RDNA3.5 Strix Point Radeon 880M, 890M, Ryzen AI Max)の場合は6.2.4からの対応なので、6.2.4にする。

他のVGAだと、6.2.4にAMD公式で対応しているVGAなら、

6.2.4の利点としては、安定性は高いまま速度が2%向上している。20steps程度だとこの速度差はわからないが、99stepsで確認するとわかる。

あと6.2.4での旧型VGAの場合だが、

そもそも旧型VGAの場合、5.7.1であろうと6.xであろうとどちらであっても後述のROCmLibsライブラリの入替をしなければならないのだが、6.xは後方互換性が無いので、ROCmLibsライブラリも6.x用のにしなければならない。旧型VGA向けの5.7.1のライブライは入手が容易であったが、6.1.2のはそうではなかった。

ここで6.2.4は幸いにも、後述のように旧型VGA用のはkoboldcpp-rocmでROCm6.2.0用のライブライが公開されており、どうやらこれが使えるようだ。

一方、6.2.4の欠点としては、まぁ欠点とは違うのだけど、次の、RX9000対応のHIPが出たら、6.2.4用のZLUDAはDiscontinueになりそう……。


-続いて5.7.1

旧型VGAの場合、ROCmLibsライブラリが入手できるのは5.7.1版だけだったりするので、そういう旧型VGAは5.7.1一択。あとは、ComfyUIでの追加作業を嫌うなら5.7.1か。

ZLUDAの対応も、5.7.1は一旦サポート外とされたが復活したのと、逆に6.1.2はサポート外になったし、6.2.4も次の6.3.xが出た後はサポート外になりそうなので、いま(2025年3月)は5.7.1が無難といえば無難である。

だたし、AI界隈でのROCmの状況をみるに6.xへの移行がすすんでいるのと、VGAの最新型モデルgfx1201 (RX9070/XT) は5.7.1は非対応なことから、今後の5.7.1対応はどうなることやら。


-最後に6.1.2

6.2.4が出た今となっては、あえて6.1.2にする理由はない。

6.1.2用のZLUDAはDiscontinueとなり、2024年9月11日のZLUDAv3.8.4が最終版。

その後の2024年12月18日のZLUDAv3.8.4は6.2.4用なので動かない。同じv3.8.4で紛らわしい。

また各アプリも、2025年3月の更新で6.1.2は全自動インストールの対象外となった。

そのため、6.1.2で使う場合、後述のpatchzluda6.batなどを使って各自でzludaの入れ替えを行うことになる。


なお、既にA1111などを使っていて、HIPを新しいものに更新する場合、新しくA1111のフォルダ造ってインストールし直すのがおススメなのだが、既存のを継続して使いたい場合は、

- アプリのバージョンが新しめでそのまま起動すると全自動で対応されればそのままでよい

- アプリのバージョンが古い場合は、それにこだわるなら後述の patchzluda6.bat を参考にzludaの入れ替えとなるが、そうでないなら下記の手順でgit pullで最新版に更新とともにZLUDAを入れ替えさせる。


1. コマンドプロンプトを開き、git pullにてアプリを更新する

2. .zludaフォルダ、またはzludaフォルダ(_zludaフォルダ?)、とにかくzludaのフォルダを削除

3. venvフォルダを中身ごとゴッソリ削除 (注: 必須ではないが推奨)

4. zluda.dbファイルを削除 (注: 必須ではないが強く推奨)

  zluda.dbはC:\Users\(ユーザー名)\AppData\Local\ZLUDA\ComputeCacheフォルダ内にある

5. webui-user.batなどで起動。(初回起動時のzluda.db構築10分+10分待ちアリ)


ちなみにアプリ側いわく、上記の1,2,5でよい、とのことだが、ここでは特に4にあるzluda.db削除を強く推奨しておく。
* それ以前のこととして、HIPを更新する際はwindows OSのアプリ機能でHIP SDKすべてを
* ちゃんとアンインストールしてから新しいHIPをインストールすること。
* 上書きインストールやアップグレードインストールなどは無いよ。

 

HIP SDKのインストールは、インストーラーでデフォルトのままどんどん進めるだけでOK。
インストール時、ほとんどのチェックボックスは最初からチェック済みになってるが、
ディスプレイドライバーのところだけは未チェックになっている。先にVGAドライバの更新を済ませて
あるので、ここではディスプレイドライバーのチェックボックスは未チェックのままで先にすすめる。

ネット上の情報だとこれをインストール後にPATHの設定するなどとあるが、
インストールの際にデフォルトのままどんどん進めるとインストーラーが自動的にPATHを設定
するので、この点も大丈夫。
HIP SDKインストール完了後、ここでPCを再起動しておく。

* PATHの設定 *
いちおう念のためにここにPATH追加の設定方法も記しておく。
ただ、名残みたいなものなので、PATH追加をするのはおすすめはしない。アプリ側の自動処理に
任せたほうが良い。PATHの設定をしてしまうとむしろトラブルの元になる。やめたほうがよい。

PATH追加の設定方法

PATH追加の設定方法
#PATHの設定は、windows使ってると見たことがあるそれそのもの。

windows10の設定にて

設定 - システム- 詳細情報 から[システムの詳細設定]

とクリック。
すると、 システムのプロパティ というwindowが詳細設定タブで開くので、そこにある[環境変数]をクリック。
環境変数 というwindowが新たに開くので、
上段と下段の2つの枠うち下の段の、システム環境変数のところにある、
Path
をダブルクリック。(Pathは枠内を下にスクロールすると、真ん中くらいにある。)
新たに 環境変数名の編集 というwindowが開くので、
そこで右側の[新規]をクリック。
枠内に入力できるようになるので、

%HIP_PATH%bin

としてOK。
Pathが通ってるかの確認方法は、
コマンドプロンプトを開いて、

hipinfo

と入力すると、
device
から始まってずらずらとGPU情報が表示されればPathは通ってる。



対応GPUについて

AMD公式での対応GPUは、RX7000シリーズ、RX6950XT, RX6900XT, RX6800XT, RX6800。

でも、これら以外のGPUでも非公式ながら別途ライブラリを投入すればいけるらしい。

ライブラリはソースから自ビルドするのが基本。
ネット上だと下記にビルド済み追加ライブラリがある。
なお、HIPは5.7と6.1と6.2とでは互換性が無いので、それぞれに対応したライブラリを使う。


https://github.com/brknsoul/ROCmLibs

RX6600 (5.7用): Optimised_ROCmLibs_gfx1032.7z

RX6700 (5.7用): Optimised_ROCmLibs_gfx1031.7z

それ以外(旧々型やAPU付属GPUなど): ROCmLibs.7z

ROCmLibs.7zの中身の一部を紹介すると、gfx900(VEGA56, VEGA64), gfx906(RadeonVII), gfx1010(RX5700, RX5700XT)。またNewer ROCmLibs.rarではこれらに加えてさらにgfx803(GCN4.0 Baffin Ellesmere Polaris RX460, RX470, RX480, RX560, RX570, RX580, RX590, MI6, MI8)が加わったようだ。


HIP SDKをインストールののち、

ROCm HIP SDK ライブラリフォルダ

C:\Program Files\AMD\ROCm\5.7\bin\rocblas\library

ここにライブラリを投入する。

6.1の場合は6.1用のライブラリをこちらに。

C:\Program Files\AMD\ROCm\6.1\bin\rocblas\library


また、VGAによってはrocblas.dllも入れ替える必要があるものもある。

配布ファイルにrocblas.dllが含まれている場合、先のlibraryフォルダへの投入のほかに、

C:\Program Files\AMD\ROCm\5.7\bin\rocblas.dllも入れ替える必要がある。

6.1の場合はココ C:\Program Files\AMD\ROCm\6.1\bin\rocblas.dll


ライブラリなどを入れ替えたら、PCを再起動する。


HIP6.2.x用koboldcpp-rocm配布版

https://github.com/YellowRoseCx/koboldcpp-rocm/releases/tag/deps-v6.2.0

rocblas6.2.0-library.7zがライブラリだが、一部VGAで不具合があったそうで、現在(2025年1月)の最新はrocblasDec02.7z。

rocblas-6.2.0.dll.7zがrocblas.dllで、必要であればこれも入れ替える。


gfx1201(RX9070 / XT)に限り、ライブラリとrocblas.dllを入れ替えても動かない場合は、
C:\Windows\System32
にある
amdhip64.dll

C:\Program Files\AMD\ROCm\6.2\bin
の中にコピーする。注釈を読み返すこと。

##これは私見だが、
##いまはAIの過渡期なのでこのようにAI用の開発キットを別途インストールしなければ
##ならないけど、そのうちVGAドライバに含まれるようwindowsOS標準になると思う。

次に進む前に一旦確認したい場合、コマンドプロンプトを開き、

"%HIP_PATH%bin\hipInfo.exe"

と入力。
*コマンドプロンプトへ貼り付ける際は、前後のダブルクォーテーションが付いたままで貼ること*
(もし前後のダブルクォーテーションが無いと、Program Filesの部分にある半角スペースのせいで
コマンドが無いというエラーになる。)
このコマンドを入力すると、ずらずらと情報が出てきて、
先頭付近にある Name のところに

Name: AMD Radeon RX なんとか

のようにPCに挿したVGA名が表示され、そして最後あたりに

gcnArchName: gfx10xx

のようにVGAのアーキテクチャ名が表示されてればOK。
もし先頭付近のNameのところが挿したVGA名ではなく

AMD Radeon(TM) Graphics

などと表示されてたらそれはAPU内蔵GPUなので、この場合は別途設定が必要。
後述する、 4. APU機にVGAを挿して使っている場合限定の追加設定 を参照のこと。

 

方法はNvidiaのときとさほど変わらない。相違点は3つ。
ひとつ、ZLUDA用に別のフォルダに新規にインストールすること。
ふたつ、A1111の入手元をZLUDA Frok版にすること。
みっつ、起動オプションに --use-zluda を加えること。

 

A1111のZLUDA Fork版のgithub
https://github.com/lshqqytiger/stable-diffusion-webui-amdgpu

インストール方法が書いてあるのでそれに従うだけ。
軽く書いておくと、
まず、インストールしたいフォルダを新規に作る。たとえば C:\A1111
全角文字はやめとけ。
かならず新規にフォルダを作ること。既にDirectMLなど他の方法でインストールしている場合、
手を抜いて使いまわそうとすると失敗するのでかならず新規にフォルダを作ること。
次に、新規に作ったフォルダでコマンドプロンプトを開く。
そして下記gitコマンドでA1111のZLUDA Fork版をダウンロード(clone)する。

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

git cloneするとフォルダ内にmodelsフォルダが出来、その中にStable-diffusionフォルダがあるので、

models\Stable-diffusion

このフォルダにあらかじめダウンロードしておいたSDXLモデルをコピーする。

 

ZLUDAを使うべく、起動オプションを設定する。
ファイルwebui-user.batの一部をメモ帳などで編集。
うっかりダブルクリックするとA1111が起動してしまうので、ダブルクリックはいまはしてはいけない。
メモ帳を開いてそこにドラッグアンドドロップ。
全部で数行しかなくて、そのなかで

set COMMANDLINE_ARGS=

とあるところを、

set COMMANDLINE_ARGS=--use-zluda

に書き換えてwebui-user.batを上書き保存。これによりZLUDAを使うようになる。
A1111の初回起動時に自動的にZLUDAのファイルがダウンロードされ、ZLUDAの設定も自動的に行われるようになる。
なお、ネット上の情報では、ZLUDAのインストールや設定を別途行うなどとあるが、それはZLUDA登場当時の話。
すぐに全自動化されたんだけども、古い話が拡散され続けてしまっている。
いちおう既に別途ZLUDAをインストールしてある場合も考慮されていて、既にZLUDAがインストール済みの場合、
それが最新版かチェックされ、最新版の場合はそのままインストール済みのZLUDAを使うようにもなっている。

あと起動オプションだが、定番オプションのうち、実際に使うのは少VRAM機で--medvram程度。
VRAMが16GB以上であればmedvramは必要ないが、RX7700XTなど12GBや8GB機だとmedvramが要るので、

set COMMANDLINE_ARGS=--use-zluda --medvram

と記述する。
他のオプションは、搭載VRAM量によって効果あったり無かったり、逆に悪化するものもある。
Nvidiaの際にみられる--xformersは動かないのと、(いちおうLinuxでROCm6.xならxformersは動く)
仮にxformersが動いたとしても昔はともかく今はxformersは不要。
torchが1.x代の頃は、xformersによってわずかな品質劣化で大幅に速度が向上したが、
#現在のtorch2.xではtorch自体が速度向上したため、xfromersの効果はそれなりなんだけど、
#いまだにtorch1.x時代の古い情報が拡散され続けてる。

 

*必ずSDXLモデルを投入してから起動すること*

webui-user.batをダブルクリックして起動。
するとコマンドプロンプトが開いて処理内容がずらずらと表示されていく。
このコマンドプロンプトだが、これはたんなるコンソール表示窓ではなくむしろこちらが
いわゆる本体といえば本体なので、このコマンドプロンプトは閉じないこと。
起動すると各種ファイルのダウンロードが始まり、ざっと3GBくらいダウンロードするので、時間がかかる。
A1111はいろんな外部モジュールを使っており、それらの影響で初回のwebui-user.batは途中でコケることがある。
#でもすぐに再度webui-user.batをおこなうとアッサリうまくいったりする。そういうものだ。
しばらくすると自動的にWebブラウザにwebUIが開くが、この時点ではまだ初回起動処理中。
OSのタスクマネージャーで軽いCPU負荷(シングルタスクにつきCPU1コア相当)が見えているあいだは
初回起動処理中である。
この状態でもgenerateボタンは押せるんだけど、生成プログレスバーは初回起動処理が終わるまでは出現しない。
この状態で10分くらい待たされる。
一見止まっているように見えるので不安になるかもしれないが、初回起動処理の進み具合が気になるのなら、
間接的に、zluda.dbのファイルサイズでわかる。

C:\Users\(ユーザー名)\AppData\Local\

ここに
ZLUDA\ComputeCacheフォルダが造られていて、その中に

zluda.db

があるので、そのファイルサイズを見る。
ゼロから徐々にサイズが大きくなっていって、45MBくらいになると、初回起動処理が終わる。
CPU負荷が無くなり、zluda.dbの肥大化もひとまず止まって、コマンドプロンプト

calculate empty prompt(...)

と表示が出る。
ここまでの待ち時間はPCスペック次第だが、ダウンロード時間に加え10分くらいといったところ。

 

まずはgenerateボタンを押す。
特になにも設定せずにいきなりgenerateボタンを押す。512x512サイズの生成が開始される。
先の初回起動処理がおわっていれば、今度は初回起動とはまた別の、初回生成処理が始まる。
これまた一見止まっているように見えるが、zluda.dbが肥大化し始める。
しばらくするとコマンドプロンプト内に生成プログレスバーが出現するも、
プログレスバーは0のままで全く進まず、そのあいだzluda.dbが肥大化し続ける。
この初回生成処理もたいだい10分くらいかかり、おわるとプログレスバーが動き出す。
zluad.dbファイルサイズが45MBから徐々に大きくなっていって、たいだい90MBくらいになると
プログレスバーが動き出し生成が始まる。
512サイズの絵が生成が出来たら、次はサイズを1024x1024にしてgenerate。

このような時間がかかるのはA1111インストール後の最初の1回目の生成のときだけ。(理屈は続くZLUDAに記述)
次回以降はすんなり始まる。
ただし、なんらかのバージョンアップをすると、再度初回処理が始まることがあり、そのときはまた待たされる。
AI関連のバージョンはもちろん、GPUドライバのバージョンなんかも変わればもう別物なのだからそういうものだ。
追記1:
  初回起動処理中および初回生成処理中は、以前はコンソールには何もメッセージが出なくてまるで
  止まったかのように見えたのだが、その後ログメッセージが実装され、現在はこれら処理中は
  Compilation is in progress. Please wait...
  というメッセージがコンソールに30秒毎に表示されるようになった。
追記2: 慣れてきた人向け
  2025年3月に、核となるTorchのバージョンが2.3.1から2.6.0になったことにより、各種パラメーターの
  最適値が従来とは異なるようになった。
  この影響は特に大きな画を出す際に著しく、パラメーターの違いによって、生成速度、VRAM消費量、
  メインメモリー消費量がかなり違う。
  A1111の設定のOptimizationsにある、
Cross attention optimization
  には選択肢が8種あるが、どれにするかでかなり違う。
  生成速度が速くなるものもあれば、VRAM消費量が少なくなるものもある。
  Torchの更新により最適解はPCによって異なり、構成の違う他人のPCの話は参考にならなくなったため、
  各自で一通り試す。
  *かなり違うので、これは試す価値がある。*

  また、VRAMはもちろんメインメモリーが少ないPCだと生成最後のVAE処理でメモリー不足になるので、
  拡張機能でTiledVAEを用いるか、またはA1111の設定のVAEの設定で、
  VAE type for decode (method to decode latent to image)
  を、初期値のFullではなくTAESDに変更するとメモリー使用量を少なく出来る。TAESDなら速くもなる。
  だたしどちらも画への影響が少々ある。VAE TAESDは試す価値アリ。

 

v_predモデルが2024年の秋くらいから広がり始めており、それらv_predモデルはSDXLモデルにV-Prediction技術を
用いたもので、従来のSDXLモデルと同じSDXLといえばSDXLなわけだけど、ちょっと違う。
それで、A1111でのV-Predictionの対応は、V-Prediction自体はSD2からの技術(SD2は2022年)なので
既に実装されているのだけれども、それより後の「SDXLのV-Prediction」には追加の対応が必要な状態。
#いちおうA1111でもdev版ならSDXLの部分が修正されており、「SDXLのV-Prediction」は対応済み。dev版のインストール方法は後述。

ここではdev版ではなくてもV-Predictionを使えるようにする。
まず、A1111本家のdev版のconfigsの中、
https://github.com/AUTOMATIC1111/stable-diffusion-webui/tree/dev/configs
ここにある

sd_xl_v.yaml

これをダウンロード。sd_xl_v.yamlをクリックすると中身が表示されるので、そこの右上にある下向きの矢印の
マークでダウンロードか、もしくは右上の三点リーダーのメニューからDownloadを選ぶ。
ダウンロードしたsd_xl_v.yamlをモデルがあるフォルダにコピーして、そのv_predモデルと同じ名前に揃える。
例えばV-Predictionのモデル名が
foo-v_pred.safetensorsなら、sd_xl_v.yamlファイルの名前を
foo-v_pred.yaml にする。
モデルをダウンロードする際はモデルがv_predモデルならyamlファイルもコピーして名前をそろえておくわけ。
これでA1111でv_predモデルが使えるようになる。
なおA1111dev版の場合はSDXLモデルでもv_predは自動判別されるので、このsd_xl_v.yamlの作業は不要だ。
ただ、どうやら初心者はv_predモデルが自動判別ミスでV-Prediction処理されていないかもと不安になるようなので、
初心者の場合はむしろこのsd_xl_v.yamlのやりかたのほうがよいのではないかと思われる。確実で安心できるからね。
#ちなみにv_predモデルの配布元には、説明文に「A1111にはconfigファイルを投入すべし」と書かれていたりして、
#そこにはconfigファイルとして拡張子yamlなファイルがダウンロードできるようになっているんだけれども、
#実は中身は上記sd_xl_v.yamlと全く同じ。yamlのファイル名をモデル名にあらかじめ揃えてあるだけだ。
#(ダウンロード方法の違いでyaml内の改行コードが違うことはあるが、改行コードはどちらでも大丈夫。)

またモデルによってはA1111の設定のZero Terminal SNRを有効にする。場所は

Settingsタブ - Sampler parameters
Noise schedule for sampling (for use with zero terminal SNR trained models)
Default . Zero Terminal SNR

Default から Zero Terminal SNR にする

使うV-Predictionモデル毎に試しにDefaultとZero Terminal SNRを切り替えて出力画を比較し、
この設定が必要か否か確認をする。出力画に違いが無ければDefaultでよいということ。

 

作法としてはコマンドプロンプト内でCtrl-Cののち n を入力して終了させるのだが、
いきなりコマンドプロンプトのwindowを閉じても強制終了はする。
強制終了しても特に不具合は起きないので、いきなりwindowを閉じて強制終了しても大丈夫。
ただし、強制終了だと生成時につくられた一時ファイルのゴミが大量に残る場合がある。
このゴミ、A1111のバージョンによって一時ファイルの削除の仕方が異なり、起動時に削除するのも
あれば、終了時に削除するのもある。
なので、終了時に削除するのだと、いきなりwindowを閉じて強制終了した場合はこの削除処理が
されないので、ゴミが残ったままとなる。
一方、起動時に削除されるのだと、次の起動時までゴミが残ったままになる。このゴミを見られて
困る場合は、削除のためだけに起動をしてなにも生成せずに終了させる。
この手のは一時ファイルやログを誰かに見られると大変なことになったりするので、一時ファイルや
ログのありかは確認しておいたほうがよい。一括削除用のbatファイルを作っておくと楽。
とりあえず、まず画像の生成をスタートし、途中でストップさせて、下記のフォルダを覗いてみよう。

C:\Users\(ユーザー名)\AppData\Local\Temp\gradio

またSettingsでこのあたりを設定する手もある。

Settingsタブ - Saving images - Saving images/grids

ここのコレと、

Directory for temporary images; leave empty for default

続くコレ。

Cleanup non-default temporary directory when starting webui
 

APU機にVGAを挿しているPCでは、AI用途がAPU内蔵GPU側に固定されてしまう場合がある。
その場合の選択肢は2つ。

APU内蔵GPUを無効化する。当然APU内蔵GPUは使えなくなる。
内蔵GPUを無効化するにはPCのBIOS設定でAPU内蔵GPUをdisableにする。
BIOSでdisableにせずにwindows OS上のデバイスマネージャーでAPU内蔵GPUを無効にする方法も
あるが、OSが勝手に復活させることがあるらしい?また無効ではなく削除だとOSは確実に勝手に
復活させるので削除は無意味。

OSの環境変数でVGAを指定する。windows10の設定にて

設定 - システム- 詳細情報 から[システムの詳細設定]

とクリック。
すると、システムのプロパティというwindowが詳細設定タブで開くので、そこにある[環境変数]をクリック。
環境変数というwindowが新たに開くので、
上段と下段の2つの枠うち上段[ユーザー環境変数]のところの[新規]をクリック。
新しいユーザー変数というwindowが開き、そこで

変数名 HIP_VISIBLE_DEVICES
変数値 1

としてOK。そしてここでかならずPCを再起動する。

上記を設定してもAI用途にAPU内蔵GPUが使われてしまっている場合は、変数値を1ではなく

変数値 0

にしてPCを再起動。
ネット上の情報では、変数値は1にするとあるが、実際は個々のPCで異なり、
変数値は0, 1, 2のどれかが当たりなので、ひととおり試す。
いちど当たりを見つけさえすれば、PCを再起動してもコロコロと変わることは無いが、
マザーボードのBIOSを更新したら変わることもある。
いちおう確認方法はあり、
コマンドプロンプトを開いて、

"%HIP_PATH%bin\hipInfo.exe"

*コマンドプロンプトへ貼り付ける際は、前後のダブルクォーテーションが付いたままで貼ること。*
ここで表示されているデバイスが、AI用に認識されるデバイス。
先頭付近にある Name のところに

AMD Radeon RX なんとか

という具合にPCに挿したVGAが表示されてればOK。
ここが

AMD Radeon(TM) Graphics

などと表示されてたらそれはAPU内蔵GPU。

上級者であれば、コマンドプロンプトでsetコマンド使って

set HIP_VISIBLE_DEVICES=0

"%HIP_PATH%bin\hipInfo.exe"

で当たりを探るのはもちろん、HIPが認識するGPUを切り替えてA1111を起動させたりもできるぞ。

 

A1111Forgeに限らず、この手のいろんな外部モジュールを使っているのは、それら外部モジュール側で
仕様変更があると動かなくなることが多々ある。
実際A1111でもForgeでもSD.Nextでもしょっちゅうある。
たいていは2,3日くらいで作者側で対応されるのだが、対応までに時間差があるので、たまたまそういうときに
あたると、当然うまく動かない。そういうものだ。
対応されるまで待つのもよいが、
その外部モジュールの旧バージョンを明示的に指定してやると動くようになるので、配布元のgitのdiscussionsや
Issuesのほか、fork元のおおもとのA1111のgitのdiscussionsやIssuesで話題になっていないか見てみよう。
#たとえば2024年春頃のpydantic関連ではこんな感じ。(本件は既に対処済み)
https://github.com/AUTOMATIC1111/stable-diffusion-webui/discussions/15557
あと特にForgeが顕著だが、どれもこれもいろんなモジュールてんこ盛りなので初回のwebui-user.batはよくコケる。
でもすぐに再度webui-user.batをおこなうとアッサリ起動したりする。そういうものだ。

windowsのタスクマネージャーだとそうなる。
一昔前の、DirectMLの場合はGPU負荷が見えるのだが、ZLUDAはちょっと違う。
OSのタスクマネージャーは、GPUの負荷のうち3Dの処理負荷を表示していて、
ゲームなどでは3Dの処理に負荷がかかるからそれでよいんだけれども、
Stable Diffusionでの生成は、
Nvidia機や、RadeonでもDirectMLのときは3D処理なので負荷が見えるが、
ZLUDAの場合は3D処理ではないので、3D負荷はゼロだからGPU負荷がゼロに見えてしまう。
タスクマネージャーでZLUDAでの負荷を見るには、GPUの3DではなくCompute負荷を見る。
負荷表示グラフのうちどれかをプルダウンしてComputeに変更すると、生成時に負荷のグラフが現れる。
ComputeにはCompute 0 や Compute 1 など複数あって、どれか1つが当たりなので全部試す。
生成時にComputeの負荷がずっと99%前後になっていれば正常。もしグラフが大きく波打ってたら
たいていはVRAM不足でメモリスワップが発生している。

それはGPU生成ではなくCPUで生成している。ネット上でもみかける。そこではRadeon遅いなどと
あるが、生成所要時間をみるにそれはCPUで生成している。
ネット上のあちこちの古い情報をごちゃまぜでやってるとそういう状況に陥りやすい。
githubにある一次情報を見ることを心掛けよう。

生成時間については、生成速度はあるていど推測が可能で、
GPUのTFLOPS値(単精度浮動小数点演算性能)に連動している。(SDXLの場合はFP16値を参考に)
https://ja.wikipedia.org/wiki/AMD_Radeon

RadeonVRAMTFLOPS(=FP32)FP16(換算値)FP8備考
RX 9070XT16GB48.7194.8(dense)
389.6(sparse)
389.6(dense)
779.2(sparse)
RDNA4機*
RX 907016GB36.1144.4(dense)
288.8(sparse)
288.8(dense)
577.6(sparse)
RDNA4機*
RX 7900XTX24GB61(122)
RX 7900XT20GB52(104)
RX 7900GRE16GB46(92)
RX 7800XT16GB37(74)
RX 7600XT16GB22.57(45.14)
RX 6950XT16GB23.65(47.30)
RX 6900XT16GB23.04(46.08)
RX 6800XT16GB20.74(41.48)
RX 680016GB16.17(32.34)
(W6800)32GB19.25(38.50)VRAM32GB最安VGA(最安値8万円)

*RDNA4機:演算ユニット数当たりのFP16の値が従来RDNA3比でdenseで2倍, sparseで4倍, またFP8はそれらの2倍
**VRAM容量が8GBや12GBのはメモリスワップが発生するので除外

VRAM容量が16GB以上であれば、TFLOPS値やFP16値が倍なら生成速度はだいたい倍になると考えてよい。
よって自分のRadeonでの生成速度は他のRadeonの速度とTFLOPSの比から推測可能である。
Radeonの場合はZLUDA登場以前と以後では状況が大きく異なるので、速度を推測する際は、
ZLUDA使用の速度を元に計算すること。
そしてもしその推測値に比べ4倍くらい時間がかかっているのなら、それはZLUDAではなく
ひと昔前のやりかたのDirectMLにて生成している。
4倍どころか10倍などあまりにも長く時間がかかっている場合は、それはGPUではなく
CPUで生成している。タスクマネージャーでCPUとGPUの負荷をみればわかる。

Forgeで拡張機能が動かないのなら、それはForgeの問題。Radeonの問題ではない。
wikiのForgeのページ参照のこと。

あとありがちなのは、PonyやPony系モデルに非Pony系のを使ったり、その逆の
非Pony系モデルにPony用のを使ってると、それはうまく動かない。
またSD1.5専用の拡張機能をSDXLに使っていると、それもまともに動かない。
それはそういうものなので、Radeonの問題ではない。Pony系モデルにはPony用のをと、
それぞれのモデルに対応したのを使わなくてはならない。
特にPony系は、Pony公開当時はSDXLとして分類されていて、しばらくしてからPonyは
独自扱いになったので、その当時は混乱していたのと、いまだその名残が一部残って
いるので、良く調べる必要がある。
ネット上の情報にはSD1.5時代の古い情報がそのままになっているのが多いので、そういう
古い情報を参考にするとこういうことがおこりがち。

また古い情報ではRadeonでは動かないとあるのは、それはZLUDA登場以前の話。
たとえば学習は、DirectMLの頃は可能といってもとてもじゃないけど実用的ではなかったが、
ZLUDAで状況は変わった。
それでもZLUDAでもうごかないものはある。A1111ではあまりないのだが、ComfyUIだと
古い(2022年頃の)カスタムノードのなかには動かないのがある。ZLUDAではたとえば
Flash Attentionはサポートしていないので、Flash Attention必須のは動かない。
でも実際はそういう古いのはより高性能な新しいのに置き換わっているのがほとんど。
xformersもうごかないのだが、昔はともかく現在はxformersは必要としないし、xformersが
なくても問題なく動く。Nvidiaだってみんながみんなxformers有効にしているかというと
そんなことはないわけで、それでNvidiaで問題がおこっているかというとそんなことないし。
ただし、ComfyUIのカスタムノードでxformers必須のものは動かないので、それが絶対に
必要となればそれは大規模機械学習であろうからそれほどのヘビーユーザーならNvidiaの
最上位モデルへ。一方、ヘビーユーザーでなければ、
そこらへんはあきらめて大容量VRAMが手に入るRadeonか、
VRAM容量はがまんしてNvidiaか、
どちらにしても大規模機械学習だけクラウド使うのが非ヘビーユーザーには合理的。

そういうのとは別に、なにか微妙に違う、というのはありえる。推測だが、浮動小数点の
演算において速度のために演算精度を端折ってたりすると、その端折り方の違いで、
演算結果にわずかな違いが生じる。RadeonとNvidiaではその端折り方が違うし、
またどちらも世代が変わると端折り方を変えてくるので、その違いによって
結果にわずかな違いが生じても不思議ではない。たとえばNvidiaどうしでも
世代が違うと微妙に違うからね。

同じモデルを使っていてプロンプトも同じ、サンプラーもLoRAも拡張機能もなにもかも同じに
しているのにあまりにも違う絵が生成された場合は、設定で異なる部分がある。
たいていは、ENSDとかEta(2種類ある), Clip skipの値を合わせ忘れてる。これらは
設定する場所が違うので見落としやすい。txt2imgタブではなくSettingsタブの中にある。

もしモデル配布元のサンプルと同じ絵を生成しようとしているのなら、

あれは広告

広告なのだから、絵の加工やすり替えがされていると、同じ絵が生成されないのはそりゃそう。

自分がNvidiaで生成した絵との比較でRadeonで生成したら似たような絵が生成されたが
細部が少し違う、というのなら、それはそういうもの。
これはNvidiaのGPUどうしでもGPUのコアチップが異なるモデルで生成した絵どうしで比較すると
細部が変わってたりするので、細部が少し違くなるのは、そういうもの。
またA1111などのバージョンが違う場合も細部が変わることがあり、そういうもの。
先と同じ推測だが、浮動小数点の演算において速度のために演算精度を端折ってたりすると、
その端折り方の違いで、演算結果にわずかな違いが生じる。
乱数生成にもGPUで違いがあるのでこれが原因でも違いが生ずる。これは乱数生成方法を
試しに変更してみるとわかる。
A1111の設定の、

Settingsタブ - Stable Diffusion - Stable Diffusion

ココ。

Random number generator source.
GPU / CPU / NV

デフォルトはGPUになっているが、いちどはCPUに変えて絵の変化をみておくとよい。
というか、デフォルトを当初からCPUにしておけばよかったのになぁと思うのだが。

なんだかよくわからないけど不具合があるっぽい、というときはA1111の再インストールでスッキリ。
でもたいていはvenvの再構築で直る場合が多いので、再インストールするまえに一度venvの再構築を
試すのがおススメ。簡単だし設定は残ったままなので再設定しなくても良いから。
venvフォルダはgit clone時にはまだ無くて、A1111初回起動時に自動的に造られるフォルダ。
これvenvフォルダを中身ごとごっそり削除し、先の
3-4 A1111初回起動
をおこなうと、venvが再構築され、たいていの場合は直る。
それでも直らない場合はA1111の再インストールをするわけだけど、綺麗にインストール
しなおしたい場合は、python pip のキャッシュをクリアしてから再インストールを
おこなう。コマンドプロンプトで、

pip cache purge

これをやっておかないと、A1111インストール時のpythonがらみのファイルはこのキャッシュを使ってしまうので、
キャッシュファイルに不具合があった場合はキャッシュをクリアしない限り不具合は解決しない。
同様に、zluda.dbも削除する。再構築にまた時間がかかってしまうけれども。

2024年から2025年への年を跨いだgit pull更新でコケた場合は、
一旦 .zludaフォルダを削除してから起動する。原因はzludaの更新方法に変更があったためらしい。
なお、10分+10分待ちがあるかもしれず、せっかくなのでzluda.dbの削除をし、一度スッキリさせて
おくのをおススメしておく。

 

まず、ComfyUI ZLUDAは6.xのHIPへの対応はおこなうつもりは無いらしい。
でも突然5.x系HIPを切って6.x系HIPのみ対応になりそうでもある。
仕方がないのでここに6.x系の手抜きインストールの方法も一緒に書いておく。

github
https://github.com/patientx/ComfyUI-Zluda

ComfyUIとは。

The most powerful and modular stable diffusion GUI and backend.

最強、とのこと。
実例として、最新のSD3の公開の際は初日から対応していた。

 

事前にやることはA1111とだいたい同じ。
ただし、Pythonのバージョンが少し違う。
READMEにPython (3.10.11 or 3.11 from the official website) と明記されている。
ここで困ったことに、先のA1111では

>旧バージョンの、Python 3.10.6の64bit版をインストールする。

とあるので、A1111ComfyUIの両方をインストールするにはどうしたものか。
いちおう、A1111のZLUDA Fork版も、おおもとのA1111も、どちらも公式で
Python 3.10.6をインストールしろ
と明記されているわけだが。

解決方法はいくつかあり、一番簡単な方法は、
A1111は3.10.11でも動くので、3.10.11をインストールしてしまう。
既にPython 3.10.6をインストール済みなら3.10.11でアップグレードインストール。

 

まず、インストールしたいフォルダを新規に作る。たとえば C:\ComfyUI
全角文字はやめとけ。
次に、新規に作ったフォルダでコマンドプロンプトを開く。
そして下記gitコマンドでComfyUIのZLUDA Fork版をダウンロード(clone)する。

git clone https://github.com/patientx/ComfyUI-Zluda .
 

モデルの自動タウンロードは、A1111とはちがって、ComfyUIではされない。(2024年6月現在)
モデルのフォルダ名もA1111とは違って、

models\checkpoints

ココ。ここにダウンロードしておいたSDXLモデルをコピーする。

 

HIPが5.7.1系の場合は、install.batをダブルクリックでインストール。7GBくらいダウンロード
するので時間がかかる。(上級者であれば、install.batの中身を見れば3GBに半減出来るぞ。)
ダウンロードが終わると自動的にwindowが閉じる。(PC設定によってはそのままComfyUIが起動する)
なお、HIPが6.x系の場合は、install.batとpatchzluda.batをそれぞれinstall6.batとpatchzluda6.batという
名前にコピーし、それぞれ下記の編集をしたのち、install6.batをダブルクリックでインストールする。

install.batとpatchzluda.batを編集 (HIPが6.x系の場合限定)

HIPが6.x系の場合、install.batがそのままだと5.xのHIP用のZLUDAがダウンロードされてしまい、
その5.x用ZLUDAは6.x系HIPでは動かないので、6.x用のZLUDAをダウンロードするように編集する。
まず、install.batをinstall6.bat名にコピーし、コピーしたinstall6.batの編集をする。
全部で100行は無いんだけれども、その 真ん中から終わりくらいのココ にある、

curl -sL --ssl-no-revoke https://github.com/lshqqytiger/ZLUDA/releases/download/rel.c0804ca624963aab420cb418412b1c7fbae3454b/ZLUDA-windows-rocm5-amd64.zip > zluda.zip

の部分のZLUDAダウンロードURLを書き換える。HIPが6.1.2の場合は下記にする。(rocm5をrocm6にする)

curl -sL --ssl-no-revoke https://github.com/lshqqytiger/ZLUDA/releases/download/rel.c0804ca624963aab420cb418412b1c7fbae3454b/ZLUDA-windows-rocm6-amd64.zip > zluda.zip

HIPが6.2.4の場合は、下記にする。(URL全体を書き換え)

curl -sL --ssl-no-revoke https://github.com/lshqqytiger/ZLUDA/releases/download/rel.dba64c0966df2c71e82255e942c96e2e1cea3a2d/ZLUDA-windows-rocm6-amd64.zip > zluda.zip
 

続いて、フォルダにあるpatchzluda.bat。
これpatchzluda.batがZLUDAダウンロードしてZLUDAライブラリ3つの入替をやって
くれるbatファイルなので、まずはpatchzluda.batをpatchzluda6.batにコピー。
そしてpatchzluda6.batを編集。ZLUDAダウンロード用URLを、先と同様に書き換える。
全部で10行程度のpatchzluda6.batファイルの中の、

curl -sL --ssl-no-revoke https://github.com/lshqqytiger/ZLUDA/releases/download/rel.c0804ca624963aab420cb418412b1c7fbae3454b/ZLUDA-windows-rocm5-amd64.zip > zluda.zip

の部分のURLを書き換える。HIPが6.1.2の場合は下記にする。(rocm5をrocm6にする。install6.batと同じ。)

curl -sL --ssl-no-revoke https://github.com/lshqqytiger/ZLUDA/releases/download/rel.c0804ca624963aab420cb418412b1c7fbae3454b/ZLUDA-windows-rocm6-amd64.zip > zluda.zip

HIPが6.2.4の場合は、下記にする。(URL全体を書き換え。install6.batと同じ。)

curl -sL --ssl-no-revoke https://github.com/lshqqytiger/ZLUDA/releases/download/rel.dba64c0966df2c71e82255e942c96e2e1cea3a2d/ZLUDA-windows-rocm6-amd64.zip > zluda.zip

あとは通常手順に戻る。

 

A1111では起動にはwebui-user.batだけど、ComfyUIではcomfyui.bat(以前はstart.batだった)、けれども、
なんと2024年6月末にcomfyui.batに強制更新(git pull)が仕込まれた。これ、ろくなことがない。
これの対策も兼ねて、
comfyui.batをwebui-user.batという名前のにコピーし、そのwebui-user.batを編集して、
起動はwebui-user.batを使うようにする。(comfyui.batを編集してもgit pullで上書きされてダメだ)
#ちなみに更新はComfyUI Managerにupdateボタンがあるので、それが楽。

ファイルwebui-user.batを2か所、編集する。
全部で数行しかなくて、まず、3行目に下記1行を追加する。

set PATH=%~dp0zluda;%~dp0.zluda;%HIP_PATH%bin;%PATH%

つまり最初の数行はこうなる。

@echo off

set PATH=%~dp0zluda;%~dp0.zluda;%HIP_PATH%bin;%PATH%
set PYTHON="%~dp0/venv/Scripts/python.exe"
なんたらー
かんたらー

次に、git pullを削除。

git pull

とあるところを削除(空行にすればOK)し、webui-user.batを上書き保存。
いちおうset COMMANDLINE_ARGSという行があるが、ここは編集しなくてOK。一度画が生成できたらあとはお好みでCOMMANDLINE_ARGSにいろいろパラメーター入れたりとご自由にどうぞ。

 

さきに用意したwebui-user.batをダブルクリックしてComfyUIを起動する。
初回起動時のみ、ComfyUI ManagerComfyUI-Impact-Packなどの便利機能や
各種モジュールの追加インストールがある。
WebブラウザにUIが起動したら最初からt2iが出来るようになっているので、
Modelのところでモデルを選択し、Promptのところになにかプロンプトを書いて、
画面下端にある Queue を押すと生成開始。(旧UIでは画面右端にある Queue Prompt )(また最近 Run に変わったか?)

初見でとまどうところは、生成開始ボタン。generateではなくQueue (Runかも?)(日本語UI版では「実行」)
もしQueueボタン(実行ボタン)が見当たらない場合は、webブラウザを一旦全画面にすると出てくる。

インストール後の最初の生成時のみ、A1111と同様、数十分待つ。
ただしComfyUIの場合、待ちのタイミングがA1111とはちょっと違って、
最初の Queue を押してからコマンドプロンプトwindow内にプログレスバーが出るまで10分、
そしてプログレスバ-が0%から動き始めるまで10分。
zluda.dbのファイルサイズを見ながら待とう。

最後にComfyUI終了方法
ComfyUI Managerを開き、restartボタンを押すと終了する。再起動せずに終了するのだが、
本当に再起動した場合は、コマンドプロンプトにてCtrl-cののちnでwindowを閉じて終了。

ComfyUIは、t2iの簡単な生成だけなら難しくない。
高度なことをやろうとするとハードルは高くなるが、それでも高度なことをするのならComfyUIだそうだ。

基本的な使い方は、
一度画が生成出来たなら、まずはモデルフォルダをA1111と共有させる。
フォルダ内にある extra_model_paths.yaml.exampleファイルをextra_model_paths.yamlにコピーし編集、
base_pathのところをA1111のフォルダにする。
たとえば C:\A1111なら、

base_path: c:/A1111/

とする。書き方に注意。extra_model_paths.yamlでは / を使う。
#実はおススメなのは、ComfyUIのフォルダをベースにするのが良い。
#A1111やForgeなどはwebui-user.batのオプションでフォルダの指定が出来るので、そこでComfyUIのにする。
#オプションの記述方法は、Forgeならwebui-user.batに@REMで書いてある。
#A1111の記述方法もForgeのそれと似たようなもの。

次にやることは、
まずはComfyUI本家のサンプルページを見る。
https://comfyanonymous.github.io/ComfyUI_examples/
いろいろとサンプルがあるので、それらのページを見る。するとサンプル画像など、ページ内に画像がある。
この画像、画像内部のメタデータComfyUIのworkflowやPromptが入っていたりするので、そこの画像を
ダウンロードし、ブラウザのComfyUIの画面にドラッグアンドドロップすると、workflowが現れる。
#たまにメタデータが入っていないハズレもある。
workflowが現れた場合は、そのまま使える。
画面にドラッグアンドドロップした際、ポップアップ画面にエラーメッセージが現れたり、
workflowが赤く染まっている場合は、必要なノード(拡張機能)が不足している。
その場合は、まずmanagerを開き、
Install Missing Custom Nodes
をクリックすると、不足しているノードが自動検索され、簡単にインストールできるようになっている。
(たまに検索に漏れるハズレもあるので、そういうときはSearchのところで検索してノードを見つける)
installしたらrestartを促されるのでComfyUIを再起動。
するとworkflow上の赤い色が消え、使えるようになっている。
このように簡単にノードをインストール出来るので、ComfyUIユーザーの間では画像のやりとりでworkflowの
やりとりをおこなっている。

それでここからが大事なことだけど、
あまりにも簡単にカスダムノードを導入出来るので、そこを狙われてなにか仕組まれていると、PCに
変なコードを入れられかねない。
これは別にComfyUIに限ったことではなく、A1111Forgeなどでも拡張機能を入れるときには気を付けなければ
ならないことなのだが、特にComfyUIは拡張機能(=カスタムノード)の導入があまりにも簡単に出来てまたそれを
日常的に頻繁におこなったりするので、より注意が必要。
#PC乗っ取りのほか、GPU能力を狙われてcryptocurrencyをマイニングさせられてしまうぞ。

度重なる事態を受けてかComfyUI側も深刻に考えていたようで、セキュリティ面での新たな取組みもみられており、
たとえば先のmanagerでカスタムノードをインストールする際にバージョンが選べたとおもうが、これらのうち、
公開元から直接ダウンロードするのは nightly を選んだ時だけ。
それ以外の1.0や2.0などはComfyUI manager側にて一旦確認したものをダウンロードするようになっている模様。
なので、managerでカスタムノードをダウンロードする際の選択肢は、このことをよく考えてね。
公開元乗っ取り後、コード仕込んで「スゲーよくなった」などと宣伝されたりしても、うかつに飛びつかないように。

 

github
https://github.com/vladmandic/sdnext

SD.Nextとは。

Stable Diffusion implementation with advanced features

高機能、とのこと。
当初はA1111の多機能版Forkとして登場した。
機能が豊富ながらComfyUIとは違ったA1111系のわかりやすさがある。
開発は意欲的で、例えば最新のSD3への対応もSD3公開24時間以内にまずdev版で対応され、
翌日には正式版も対応していた。ZLUDAの実装が一番早かったのもこのSD.Next。
SD.Next登場時はA1111のFork版であったが、2024年の5月28日に

SD.Next is no longer marked as a fork of A1111 and github project has been fully detached

というわけで、Fork版ではなく完全に別プロジェクトとなった。

SD.NextをZLUDAで動かす場合のインストール方法はココ
https://github.com/vladmandic/sdnext/wiki/ZLUDA

インストールにあたり、事前にやることはA1111ComfyUIとだいたい同じ。
Pythonは、先のComfyUIと同様、Python 3.10.11 64bit。

#確信はないのだが、2024年の夏か秋の更新で、Python3.10だと生成が遅くなったような気がする。

#一方、Python3.11だと速いような。上級者なら、Pythonのembed (ポータブル版)でも使って

Python3.11でインストールして試すと違いがわかるとおもう。

SD.Nextのインストール方法もA1111とほぼ同じ。
まず、インストールしたいフォルダを作る。たとえば C:\sdnext
全角文字はやめとけ。
次に、そのフォルダでコマンドプロンプトを開き、下記gitコマンドでSD.Nextをダウンロード(clone)する。

git clone https://github.com/vladmandic/automatic .

clone直後だとmodelフォルダ内にはまだStable-diffusionフォルダが無い。(2024年6月現在)
続いて、SD.Nextの起動コマンドで初回インストールを実行させる。
SD.Nextの起動コマンドはA1111とは少し違って、下記のコマンドをコマンドプロンプト内で実行する。
#SD.Nextもいろんなモジュールてんこ盛りなので初回のwebui.batはコケることアリ。

webui.bat --use-zluda --debug --autolaunch

注: SD.Nextにはwebui-user.batは無いよ。(2024年6月現在)

正直面倒なので、先のA1111 ZLUDAからwebui-user.batをコピー拝借して、webui-user.bat

set COMMANDLINE_ARGS=

とあるところを

set COMMANDLINE_ARGS=--use-zluda --debug --autolaunch

に編集して流用しちゃいましょう。

初回インストール時のモデルの自動ダウンロードは無い。(2024年6月現在)
起動するとmodelsフォルダが出来、その内に各種フォルダも出来て、それらフォルダのうち
Stable-diffusionフォルダの中に事前に用意しておいたSDXLモデルをコピーする。

ここでちょっと先に書いておくと、SD.Nextには終了方法がある。

Systemタブ(日本語UI: システム)の中の
Shutdown server (日本語UI: サーバーをシャットダウン)

を押す。
それともう一点、SD.Next使うときはタスクマネージャーなどでGPUのVRAM使用量を監視すること。

無事に起動しwebブラウザにUIが現れたら、最初の生成をする前に、一番最初にVAE tilingの設定をおこなう。

Systemタブ - Settings - Variable Auto Encoder の中の VAE tiling をチェック
システム - 設定 - 可変オートエンコーダー の中の VAEタイリング (日本語UI)

Apply settings (設定を適用)を押したのち、
一旦SD.NextをShutdown server(サーバーをシャットダウン)で終了させる。
なぜVAE tilingを有効にするのかというと、
SD.NextはVRAMが過剰に溢れるとVRAMの空きの回復がうまくいかなくなることが多々あり、そのような状態に
なるとSD.NextをRestart serverボタンで再起動してもダメで、一旦SD.NextでShutdown serverして終了し
また起動をしなければならない。
以前からずっとそうで、2024年6月現在のでも相変わらずであった。
VRAMが過剰に溢れるのは生成の一番最後のVAE処理時なので、そこでVAE tilingによりこの状態を回避する。
他の方法でも回避は可能だが、とりあえずはこれで。

SD.Nextもインストール直後の最初の生成時のみ、A1111と同様、数十分待たされる。
ただしSD.Nextの場合、待ちのタイミングがA1111とはちょっと違って、
最初のGenerate(生成)を押してからコマンドプロンプト内にプログレスバーが出るまで10分、
そしてプログレスバ-が0%から動き始めるまで10分。
その間の進行状況はzluda.dbのファイルサイズを見ながら待とう。

生成が進行しはじめると、プレビューに生成途中の絵が映し出され、生成が完了する。
ここで、生成途中のプレビューではそれっぽい絵が出ているのにもかかわらず最終的に
生成された画が真っ黒だったり、はたまた生成の最後の最後にエラーになった場合は、
たいていはVAEがらみ。VAEや、またmodel内蔵のVAEにより演算がうまくいかなくておこる。
そこで、SD.Nextの設定でVAEの挙動を指定する。

Systemタブ - Settings - Variable Auto Encoder の中の Full precision (--no-half-vae)
システム - 設定 - 可変オートエンコーダー の中の 完全精度(--no-half-vae) (日本語UI)

ここのチェックボックスをチェック後、Apply settingsを押し、SD.NextをShutdown serverで
終了させ、SD.Nextを再度起動する。

あとはこれはお好みだが、Dynamic Attention BMMの設定もしておく。

After the UI starts, head on over to System Tab > Compute Settings
Set "Attention optimization method" to "Dynamic Attention BMM", then click Apply settings.
 

ここまでで、A1111ComfyUI, SD.Next と、現在の定番3種類を網羅した。
どれにするかは、
とりあえずは A1111
他の2つは、それぞれ得意なのが異なるので、なにをしたいのかによる。
ComfyUIは多機能で、動画生成するならComfyUI
SD.Nextも機能の追加には意欲的。

そこで、
まずはA1111で生成までおこない、
その勢いで残りの2つもインストールしてそれぞれいちど生成してみるのが良い。
こういうのは勢いでやってしまおう。
後回しにするのはおすすめしない。

 

ZLUDAとは。

ZLUDA lets you run unmodified CUDA applications with near-native performance on Intel AMD GPUs.

Nvidia向けのCUDAアプリケーションをAMDのGPUで使えるようにするプログラム。
CUDAアプリケーションが、変更なしにそのままでAMD GPUで動く。
パフォーマンスもネイティブに迫るほど。

ZLUDAのプログラムはexeが1つのほかDLLが機能別に数種類あり、A1111などではDLLを1つから
4つくらい入れ替えることでZLUDAによるCUDA化されている。なのでZLUDA用Fork版を使わなくても
自身でZLUDA化することは行われている。

ZLUDAでは高速化にあたり、実際にアプリケーションをZLUDAで使うときは、そのアプリのための
GPUコードをコンパイルする必要があるため、最初の1回だけは時間がかかる。
コンパイルして出来上がったGPUコードはzluda.dbにキャッシュ格納されるので、2回目以降は
キャッシュされたGPUコードが使われる。
A1111で最初の1回目だけ生成に時間がかかるのは、このGPUコードのコンパイルをやっているから。

留意点はいくつかあるが、A1111などに関係ありそうなのをいくつかあげておくと、

  • AMD HIP SDKのバージョンによって使えるZLUDAが異なる
    6.x系のHIPは、AMD曰く後方互換はないとのこと。実際、従来の5.x系HIP用のZLUDAは動かない。
    6.x系のHIPには6.x用のZLUDAを、5.x系のHIPには5.x用のZLUDAを使わないといけない。
    もしHIPを5.x系から6.x系にアップデートしたのなら、ZLUDA関連も入れ替えないと動かない。
    なお、ZLUDA配布元は、5.x系について終了(Discontinue)宣言をしたが撤回して、
    Please move to HIP SDK 6.1 if possible. 5.7 support can be discontinued at any time.
    との記述が追加された。5.xは突然終了するかもしれないから6.x系にしてね、ってことだ。
  • 完全にCUDAのサポートをしているわけではなく漏れがあるので、うまく動かないものもある。
    たとえばFlash Attentionなんかがそう。(いちおうLinuxでROCm6.xならFlash Attentionは動く)
    なのでFlash Attentionを使うComfyUIはZLUDA版だとFlash Attention非対応モードで動くわけだけど、
    とくに不都合はないことがほとんど。(追記: 2024年夏にZLUDA対応Flash Attentionが出た。)
  • 浮動小数点の演算において、NvidiaもAMDも、速度のために演算精度を端折ったり近似丸め込みを
    しているのだが、そのやり方がそれぞれ異なっており、そしてZLUDAもまたそれらとは異なって
    いるため、ZLUDAでの浮動小数点の演算結果は、NvidiaともAMDともわずかな違いが生じることがある。
    この違いで、細部がわずかに違う画像が生成されることがある。ことがあるというか、される。
    そもそもNvidiaのGPU同士の比較でも、GPUコアチップが異なれば生成画像がわずかに違くなるので、
    そういうものだ。
  • CPU内蔵GPU(APU)のPCにVGAを挿した場合、内蔵GPUを使おうとする。
    この挙動はZLUDAではなく AMD ROCm HIP の仕様なのだけれども、ZLUDAにもついてまわる。
    対策は先に書いた通りで、環境変数HIP_VISIBLE_DEVICESにてどのGPUを使うか指定する。
    見方を変えるとこの値でGPUの切替が出来るのだから、これは利点でもある。
 

A1111本家のdev版や開発用ブランチなどにはZLUDA化したFork版は無いので
正式リリースを待つわけだが、試したいのであれば自力でZLUDA化が可能。
ここでは手抜きZLUDA化方法を書いておく。
またreForgeも同じやり方で出来るのでreForgeも書いておく。

2025年3月追記: reForgeで根本部分の方針転換アリ
reForgeでは、backendが従来のA1111系からComfyUI系へと、根本部分の方針転換があり別物になった。しばらく前から二刀流をしていたのだが、A1111系を止めた。
この影響で自力ZLUDA化のやり方も変わりreForgeではComfyUIの自力ZLUDA化のようになった。
いちおう従来のmainブランチのreForgeはしばらくはmain-oldブランチとして残すようなので、
インストール方法はmain-old版と現行main版との2種類載せておく。似てて紛らわしいけど混同しないように。
#単にreForgeといったら通常のmainブランチ版ではなく旧main-old版のことのようだよ。

* 2025年4月、reForgeは開発終了したので、reForgeのインストールが済んで画が出るのを確認出来たら、
すみやかに丸ごとバックアップをとること。ソースコードだけあっても外部モジュールが更新されると
インストールでコケるようになるので、mainとmain-old両方とも丸ごとバックアップしておく。


自力ZLUDA化の例その1: A1111 dev版

 

前提として(必須ではないけど急がば回れだよ)、
A1111のZLUDA Fork版を導入済みで、ZLUDA使って画像が生成出来ていること。

 

まず、インストールしたいフォルダを新規に作る。たとえば C:\A1111dev
全角文字はやめとけ。かならず新規にフォルダを作ること。
次に、新規に作ったフォルダでコマンドプロンプトを開く。
そしてgitコマンドでA1111のdev版をダウンロード(clone)する。
git cloneコマンドのブランチ指定にて、devを指定する。

git clone --single-branch --branch dev https://github.com/AUTOMATIC1111/stable-diffusion-webui.git .


reForgeの旧main-old版は新規フォルダ(例えばC:\reForgeold)造ったあとにこちらmain-oldブランチ指定。

git clone --single-branch --branch main-old https://github.com/Panchovix/stable-diffusion-webui-reForge.git .


reForgeの現行main版は新規フォルダ(例えばC:\reForge)造ったあとにこちら。

git clone https://github.com/Panchovix/stable-diffusion-webui-reForge.git .


#単にreForgeといったら通常main版ではなく旧main-old版のことのようだよ。

 

あらかじめダウンロードしておいたSDXLモデルをここにコピーする。

\models\Stable-diffusion
 
  • 一つ目: 起動用ファイル webui-user.bat を編集
    全部で数行しかなくて、3行目に下記3行を挿入し、webui-user.batを上書き保存。
    *上級者で別途hipBLASLtをインストール済みならDISABLE_ADDMM_CUDA_LTの行は加えてはいけない。
    set PATH=%~dp0zluda;%~dp0.zluda;%HIP_PATH%bin;%PATH%
    set DISABLE_ADDMM_CUDA_LT=1
    set ZLUDA_COMGR_LOG_LEVEL=1
    つまり最初の数行はこうなる。
    @echo off
    
    set PATH=%~dp0zluda;%~dp0.zluda;%HIP_PATH%bin;%PATH%
    set DISABLE_ADDMM_CUDA_LT=1
    set ZLUDA_COMGR_LOG_LEVEL=1
    set PYTHON=
    なんたらー
    かんたらー
    *いちおうset COMMANDLINE_ARGSという行があるが、ここは編集しなくてOKというか、ZLUDA Fork版ではなく自力ZLUDA化なので--use-zludaは付けないよ。
     
    reForgeではさらに上記に加えてset COMMANDLINE_ARGSの行に下記の--attention-quadの設定もする。
    なぜならreForgeでは標準がtorch-attentionになってしまいハングしてしまうのでその対策。(ComfyUIでのuse-quad-cross-attentionに相当)
    旧main-old版は設定しなくてもハングはしないが速度がガタ落ちなのでやはり設定する。
    set COMMANDLINE_ARGS=--attention-quad
  • 3つ目: modules\launch_utils.pyを編集
    torchをZLUDA対応のCUDA11.8版にするため、modules\launch_utils.pyのcu121をcu118に書き換える。
    (デフォルトのままだとCUDA12.1用なので、ZLUDAでは使えない。)
    何行目にあるかは探す。cu121は1カ所だけなので、すぐにココが
    https://github.com/AUTOMATIC1111/stable-diffusion-webui/blob/374bb6cc384d2a19422c0b07d69de0a41d1f3f4d/modules/launch_utils.py#L350
    ココが見つかる。
        torch_index_url = os.environ.get('TORCH_INDEX_URL', "https://download.pytorch.org/whl/cu121")
    ここにあるcu121をcu118に書き換える。
        torch_index_url = os.environ.get('TORCH_INDEX_URL', "https://download.pytorch.org/whl/cu118")
    このようにcu118に書き換える。また上級者であれば同時に次の行で
    torch==2.1.2 torchvision==0.16.2 --extra-index-url
    となっている部分を
    torch==2.6.0 torchvision --extra-index-url
    にして、torchのバージョンをZLUDA Fork版と同じ2.6.0にしておくとよいかもしれない。2.6.0でも特にこれ起因の不具合は無いようだ。もちろん元の2.1.2のままでもかまわない。
     
    なおreForgeでは途中で cu121 ではなく cu124になったのでcu124を変更する。2か所あるが、
    torch用のほうを変更する。cu124の場所はtorch用とxformers用の2か所になって紛らわしくなった。torch用のcu124の場所はココらへん。
    https://github.com/Panchovix/stable-diffusion-webui-reForge/blob/1572cd88a746bcff28a841856ab0a56df1913812/modules/launch_utils.py#L420
    #reForgeのtorchは、バージョンが既に2.6.0なのでそのまま2.6.0で良いだろう。
"modules\launch_utils.py"のcu121やcu124をcu118に書き換えずに後からtorchを入れ替える方法

"modules\launch_utils.py"のcu121やcu124をcu118に書き換えずに後からtorchを入れ替える方法

コマンドプロンプトにてvenv内activateし、pipコマンドで一旦torchtorchvisionを削除したのち再度pipでcu118を指定してインストールする。
実際のコマンドはこんな感じ。

venv\Scripts\activate
pip uninstall torch torchvision -y
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118

torchパッケージ3GBの再ダウンロードで時間がかかる。2度手間でダウンロードも時間も
かかるのだが、のちのちの更新(git pull)を考慮すると、こちらのほうが良いかもしれない。
なお、torchのバージョンの指定も可能。たとえばtorch: 2.3.1+cu118だと、

venv\Scripts\activate
pip uninstall torch torchvision -y
pip install torch==2.3.1 torchvision --index-url https://download.pytorch.org/whl/cu118

* 注意事項
後述する 9-1-4 A1111devの仮起動webui-user.batをおこなってからでないと、
このtorch入れ替えは実行できない。venvの構築がされてないから。
また、
後述する 9-1-4 A1111devの仮起動 にて2回目のpatchzluda.batをおこなう前に、
このtorch入れ替えを実行する。
もし2回目のpatchzluda.batをおこなった後にこのtorch入れ替えをおこなった場合は、
再度patchzluda.batを実行すること。(ライブラリファイル3つが入れ替わり、ZLUDA化される。)



 
  • patchzluda.batを拝借する
    手抜きのため、ComfyUIからZLUDA化手抜きツールpatchzluda.batを拝借する。
    ComfyUI ZLUDAをインストール済みならpatchzluda.batは既にそこにある。
    インストールしてないなら、git cloneだけしてそこからpatchzluda.batを拝借する。
    またWebサイトから直接patchzluda.batを拝借してもかまわない。
    https://github.com/patientx/ComfyUI-Zluda
    とにかく用意する。ちなみに中身は全部で11行でコレ。(最後の1行は空行。wikiの仕様で表示されない。)
    @Echo off
    rmdir /S /q zluda
    curl -sL --ssl-no-revoke https://github.com/lshqqytiger/ZLUDA/releases/download/rel.c0804ca624963aab420cb418412b1c7fbae3454b/ZLUDA-windows-rocm5-amd64.zip > zluda.zip
    tar -xf zluda.zip
    del zluda.zip
    copy zluda\cublas.dll venv\Lib\site-packages\torch\lib\cublas64_11.dll /y
    copy zluda\cusparse.dll venv\Lib\site-packages\torch\lib\cusparse64_11.dll /y
    copy zluda\nvrtc.dll venv\Lib\site-packages\torch\lib\nvrtc64_112_0.dll /y
    echo.
    echo * ZLUDA is patched. (Zluda 3.8.4 for HIP SDK 5.7.1)
    上記11行をpatchzluda.bat名で保存でもOK。用意したpatchzluda.batはA1111devフォルダ内に置く。
    なお、このpatchzluda.batは5.7.1のHIP用であり、6.x系のHIPをインストールしている場合は
    URL部分を6.x系ZLUDAの下記に書き換え、ファイル名をpatchzluda6.batにリネームして保存。

    HIPが6.1.2の場合は下記にする。(rocm5をrocm6にする)
    curl -s -L https://github.com/lshqqytiger/ZLUDA/releases/download/rel.c0804ca624963aab420cb418412b1c7fbae3454b/ZLUDA-windows-rocm6-amd64.zip > zluda.zip

    HIPが6.2.4の場合は、下記にする。(URL全体を書き換え)
    curl -s -L https://github.com/lshqqytiger/ZLUDA/releases/download/rel.dba64c0966df2c71e82255e942c96e2e1cea3a2d/ZLUDA-windows-rocm6-amd64.zip > zluda.zip
 

最初に、拝借したpatchzluda.bat(もしくはpatchzluda6.bat)をA1111devフォルダ内に置いて
ダブルクリックして起動。

エラーが出るが、この段階ではA1111devフォルダ内にzludaフォルダが出来てその中にzluda.exeファイル
などがあればOK。

続いてwebui-user.batをダブルクリックしてA1111devを仮起動。
コマンドプロンプトが開き、各種処理がなされ、WebUIがひらいて、さらに少し時間がかかったあと

Stable diffusion model failed to load

というメッセージから続くエラーで止まる。
止まったら一旦コマンドプロンプトwindowを閉じてA1111devを終了する。

そして、patchzluda.bat(もしくはpatchzluda6.bat)をまたダブルクリックして実行。

これによりライブラリファイル3つが入れ替えられ、ライブラリがZLUDA化される。

 

webui-user.batをダブルクリックしてA1111devを起動。
WebブラウザにWebUIが開くが、ここからzluda.db構築で10分待つ。
A1111のZLUDA Fork版を導入済みで画像生成済みなら待たずに即開始されることもある。

 

以上でA1111devがZLUDAで動く。

 

A1111dev版にて更新があったら、コマンドプロンプトにて

git pull

で更新されるが、そのまま使えるかどうかは更新内容次第。
いつもどおりならそのまま使えるとおもうが、
もし modules\initialize.py や modules\launch_utils.py、またwebui-user.bat
更新されていたら、ZLUDA化のやり直しになると思われる。
#gitのコマンドでスマートなやり方があるけど、それよりも ZLUDAannex1 にバッチファイル載せてあるので、
それダブルクリックで実行して済ますほうが楽かなぁ。

 

お手軽ライトユーザーの学習(train)といえば、昔はともかく今はLoRA学習なので、
ここではkohya_ss GUIでのLoRA学習およびSDXL LoRA学習について触れることにする。

kohya_ss GUIでの学習は、LoRA学習以外にもDreamBooth学習やTextual Inversion学習など
いろいろ出来るのだが、それらはお手軽ライトユーザーの範疇から外れるのでここでは触れない。
あとGUIよりもコマンドラインCLIのほうが良かったりするのだけれども、これも同様の理由で
ここでは触れない。
基本的に自力ZLUDA化のやりかたはどれも同じなので、kohya_ss GUIのLoRA学習の自力ZLUDA化の
方法だけわかればそれだけで十分であろう。ここに手抜きZLUDA化の方法を書いておく。
ちなみに2024年は学習するのに他の選択肢もいろいろ出てきて、そして例えばFlux Gymなんかがそうだけど、
それらのZLUDA化のやり方も同じだ。なぜなら、核の部分の学習本体がどれも同じだから。

kohya_ss GUIは名前が紛らわしい*

LoRA学習は、現在よく目にするのはkohya_ss GUIと呼ばれているコレ。
github
https://github.com/bmaltais/kohya_ss

コレを開発しているのはbmaltais氏。
このうち、核となる学習本体は別の人が開発していて、こちら。
github
https://github.com/kohya-ss/sd-scripts

こちらkohya-ss/sd-scriptsを開発しているのはkohya-ss氏。

つまり、kohya-ss氏が開発した学習本体sd-scriptsを、bmaltais氏がGUI化して、それがbmaltais/kohya_ss。
名前が紛らわしいのだが、「bmaltais氏kohya_ss」は、 「kohya_ss GUI」 と呼ばれているようだ。
kohya-ss と kohya_ss という具合に - と _ の違いもあったりして、ほんと紛らわしい。

bmaltais氏のbmaltais/kohya_ssをダウンロード(git clone)すると、
学習本体であるkohya-ss氏のsd-scriptsも自動的にダウンロードされるようになっている。
デキル人はGUIなんて使わずコマンドラインCLIで直でkohya-ss氏のsd-scriptsを使うのだろうが、
お手軽ライトユーザーはそのGUI版の kohya_ss GUI ということのようだ。

でもLoRA学習は、実際はGUIよりもコマンドラインCLIのほうが楽だったりするぞ。

 
  • 前提として、
    A1111のZLUDA Fork版を導入済みで、ZLUDA使って画像が生成出来ていること。

  • Pythonのバージョン
    学習本体のsd-scripts自体はREADMEに
    Python 3.10.6
    と明記されているのだけれども、一方、kohya_ss GUIのREADMEには
    Install Python 3.10.11.
    とある。
    #以前は3.10.6だったのに……。
    そこでどうするかだが、先の ComfyUIインストールの 6-0 事前準備 で触れたとおり、
    ここはPython 3.10.11をインストールしてしまうのが簡単。
    Python 3.10.6を導入済みなら3.10.11でアップグレードインストール。

  • git
    gitはA1111-ZLUDAの際にインストールしたgitそのままでよい。

  • AMD HIP SDK for Windows
    HIP SDKもA1111-ZLUDAの際にインストールしたHIP SDKそのままでよい。
    このHIP SDKがnVIDIAでいうところのnVIDIA toolkitみたいなもの。
    他のサイトでは学習するならnVIDIA toolkitをインストールする旨書かれていたりするが、
    RadeonのwindowsではHIP SDKなので、nVidia toolkitのインストールは不要。それどころか、
    nVIDIA toolkitインストールするとnVIDIA toolkitが優先されてしまい不具合の元になるからヤメトケ。
     

kohya_ss GUIを入手する。
まず、インストールしたいフォルダを新規に作る。たとえば C:\kohya_ss
全角文字はやめとけ。
かならず新規にフォルダを作ること。
次に、新規に作ったフォルダでコマンドプロンプトを開く。
そして下記gitコマンドでkohya_ss GUIをダウンロード(clone)する。

git clone --recursive https://github.com/bmaltais/kohya_ss.git .

するとkohya_ss GUIがダウンロード(clone)されるのに続いて
核となるkohya-ss/sd-scriptsも自動的にダウンロードされる。(オプションの--recursiveとは再帰的の意)

 

2025年3月に数か月ぶりにkohya_ss GUIで更新があり、大きな方針転換があった。
それまでは、kohya_ss GUIでは、核の学習本体にkohya-ss氏のmain版を使っていたのだが、
そのkohya-ss氏の元ではdev版でSDXLの改良がおこなわれていたり、また別のSD3版でSD3.5やFluxに対応
させており、一方、main版は相変わらずSD3.5やFluxの学習は出来ないまま。
そのため、GUIのほうでも別途GUIのdev版でそれらに対応していた。
この方針を、2025年3月に大きく転換し、GUIの通常版の学習本体部分を、main版ではなくsd3版に変更された。
なので、2025年3月以降は、学習本体はSD3版になっていて、SD3.5やFluxの学習が出来るようになっている。
またその際にtorchのバージョンが上げられている。ただ、学習本体のSD3版ではtorchは2.4.0なのだけれど、
なぜかkohya_ss GUIでは2.5.0に。しかも強制。#でもなんで2.5.0なんだ???
そしてこの影響で、ZLUDA化の手順も少し変更となった。

もし従来のmain版のをインストールしたい場合は、先の git clone を実行した直後に、

git checkout e5e8be05fe0475a04e61ef668afffc632aa178f5
git submodule update --recursive

これで、方針転換前の、main版な2024年9月6日版のに戻る。

main版に戻さずに、現行(sd3版)のをZLUDA化して使う場合は、ここで手順がひとつ増える。
フォルダ内にあるrequirements_pytorch_windows.txtを編集する。( 全部で8行しかない https://github.com/bmaltais/kohya_ss/blob/master/requirements_pytorch_windows.txt ので見ればわかる。)

まず、
cu124とある部分をすべてcu118にする。全部で3カ所。このうちURLの部分のcu124を見落とさないように。
次に、
xformers==0.0.28.post2 この行を削除。

これで全部で7行になる。つまりこうなる。

# Custom index URL for specific packages
--extra-index-url https://download.pytorch.org/whl/cu118

torch==2.5.0+cu118
torchvision==0.20.0+cu118

-r requirements_windows.txt
 

つづいてkohya_ss GUIの仮起動。コマンドプロンプト内で

setup.bat

を実行する。もしくはsetup.batをダブルクリックで起動。
すると選択メニューが出る。

Kohya_ss setup menu:

1. Install kohya_ss GUI
2. (Optional) Install CuDNN files (to use the latest supported CuDNN version)
3. (DANGER) Install Triton 2.1.0 for Windows... only do it if you know you need it... might break training...
4. (Optional) Install specific version of bitsandbytes
5. (Optional) Manually configure Accelerate
6. (Optional) Launch Kohya_ss GUI in browser
7. Exit Setup

Select an option:


ここで最初に 1 を入力。

各種モジュールがダウンロードされる。3GBくらいあるので時間がかかる。
終わると再度選択メニューが出るので、

次は 5 を入力。

5のManually configure Accelerateをおこなう。
入力を8回求められるので、答えはREADMEに書かれている通りに、順番に、

This machine
No distributed training
NO
NO
NO
all
NO
fp16

*以前のmain版に戻した場合は7番目の問いは無いので6番目の次は8番目。*

すると、フォルダ

C:\Users\(ユーザー名)\.cache\huggingface\accelerate

にファイル

default_config.yaml

が生成される。ファイルの中身には先の答えが反映されている。
そしてまた最初の選択メニューが出るので、

7でExit Setup

これにて一旦終了。コマンドプロンプトも閉じてかまわない。

ネット上の情報では、1でインストールしたあと上から順番に2などもやっていくなどとあるが、
それらはこの時点ではやらない。やるのは、1, 5, 7。

 
 

SD1.5のLoRA学習をZLUDA化する。
SDXLのLoRAの学習はSD1.5とは別のブログラムが使われているが、内部ではSD1.5用のLoRA学習が
呼び出されており、よってSD1.5のLoRA学習をZLUDA化してしまえばSDXLのLoRA学習もZLUDA化される。

SD1.5のLoRA学習では

sd-scriptsのtrain_network.py

これが使われるのでこれを編集してZLUDA化する。

train_network.pyの、だいたい10行目から20行目あたりに

import torch

があるので(2024年6月は
https://github.com/kohya-ss/sd-scripts/blob/b8896aad400222c8c4441b217fda0f9bb0807ffd/train_network.py#L14
のように14行目。2025年3月だとSD3版になったので10行目から30行目くらいにある。)、その直下に下記6行を
挿入し、train_network.py上書き保存。

torch.backends.cudnn.enabled = False
torch.backends.cuda.enable_flash_sdp(False)
torch.backends.cuda.enable_math_sdp(True)
torch.backends.cuda.enable_mem_efficient_sdp(False)
if hasattr(torch.backends.cuda, "enable_cudnn_sdp"):
    torch.backends.cuda.enable_cudnn_sdp(False)
 

torchtorchvisionをZLUDAに対応したバージョンへ入れ替え (スキップ)

既に記述したとおり、2025年3月に大きな方針転換があり、その影響でtorchも2.5.0のCUDA12.4版となった。
そのためのZLUDAへの対応も、10-2 main版 dev版 SD3 Flux版に記述したとおり。

なお、旧main版はもともとCUDA11.8版なので、torchの入れ替えの必要はない。
なので、この項目 10-4.2 は不要となったのだが、経緯としてしばらく残しておく。

 

手抜きのため、ComfyUIからZLUDA化手抜きツールpatchzluda.batを拝借する。
ComfyUI ZLUDAをインストール済みならpatchzluda.batは既にそこにある。
インストールしてないなら、git cloneだけしてそこからpatchzluda.batを拝借する。
またWebサイトから直接patchzluda.batを拝借してもかまわない。
https://github.com/patientx/ComfyUI-Zluda
とにかく用意する。ちなみに中身は全部で11行でコレ。(最後の1行は空行。wikiの仕様で表示されない。)

@Echo off
rmdir /S /q zluda
curl -sL --ssl-no-revoke https://github.com/lshqqytiger/ZLUDA/releases/download/rel.c0804ca624963aab420cb418412b1c7fbae3454b/ZLUDA-windows-rocm5-amd64.zip > zluda.zip
tar -xf zluda.zip
del zluda.zip
copy zluda\cublas.dll venv\Lib\site-packages\torch\lib\cublas64_11.dll /y
copy zluda\cusparse.dll venv\Lib\site-packages\torch\lib\cusparse64_11.dll /y
copy zluda\nvrtc.dll venv\Lib\site-packages\torch\lib\nvrtc64_112_0.dll /y
echo.
echo * ZLUDA is patched. (Zluda 3.8.4 for HIP SDK 5.7.1)

上記11行をpatchzluda.bat名で保存でもOK。用意したpatchzluda.batはA1111devフォルダ内に置く。
なお、このpatchzluda.batは5.7.1のHIP用であり、6.x系のHIPをインストールしている場合は
URL部分を6.x系ZLUDAの下記に書き換え、ファイル名をpatchzluda6.batにリネームして保存。

HIPが6.1.2の場合は下記にする。(rocm5をrocm6にする)

curl -s -L https://github.com/lshqqytiger/ZLUDA/releases/download/rel.c0804ca624963aab420cb418412b1c7fbae3454b/ZLUDA-windows-rocm6-amd64.zip > zluda.zip


HIPが6.2.4の場合は、下記にする。(URL全体を書き換え)

curl -s -L https://github.com/lshqqytiger/ZLUDA/releases/download/rel.dba64c0966df2c71e82255e942c96e2e1cea3a2d/ZLUDA-windows-rocm6-amd64.zip > zluda.zip


拝借したpatchzluda.bat(もしくはpatchzluda6.bat)をC:\kohya_ssフォルダ内に置いて
ダブルクリックして起動。エラーが出るが、C:\kohya_ssフォルダ内にzludaフォルダが
出来てその中にzluda.exeファイルなどがあればOK。同時にライブラリもZLUDA化される。

 

起動用batファイルgui.batを編集する。kohya_ss GUIの起動はgui.batね。
3行目に下記3行を追加し、gui.batを上書き保存。
*上級者で別途hipBLASLtをインストール済みならDISABLE_ADDMM_CUDA_LTの行は加えてはいけない。

set PATH=%~dp0zluda;%~dp0.zluda;%HIP_PATH%bin;%PATH%
set DISABLE_ADDMM_CUDA_LT=1
set ZLUDA_COMGR_LOG_LEVEL=1

つまり最初の数行はこうなる。

@echo off

set PATH=%~dp0zluda;%~dp0.zluda;%HIP_PATH%bin;%PATH%
set DISABLE_ADDMM_CUDA_LT=1
set ZLUDA_COMGR_LOG_LEVEL=1
set PYTHON_VER=3.10.9
なんたらー
かんたらー

なお、batファイルをよく見るとこれではPATHのsetがダブってしまうが、全く問題ない。

 

gui.batをダブルクリックで kohya_ss GUI を起動。新たにコンソールwindowが開き、表示の中に

Torch detected GPU: AMD Radeon RX なんとか [ZLUDA]

と表示されていればZLUDA化されている。また http://127.0.0.1:7860 と表示されるので、
Webブラウザで
http://127.0.0.1:7860
にアクセス。

ちなみに終了方法
コンソールwindowでCtrl-cで終了させたあと、windowを閉じる。
windowをいきなり閉じると強制終了となるが、特に強制終了でも問題ない模様。
 

Radeon ZLUDA用に、2か所、もしくは3カ所設定を変更する。

Webブラウザで
http://127.0.0.1:7860
にてkohya_ss GUIを表示。
GUI上でLoRAタブに移動し、
下のほうのParametersを展開。
続いてさらに下のAdvancedを展開。

  • 変更1カ所目: CrossAttentionの変更
    場所は中段付近にある。
    CrossAttentionがxformersになっていると動かないので、noneもしくはspdaに切り替える。
    #xformersもspdaもどちらも品質を犠牲にして速度の向上を図るオプション。
    #画像生成の際はそれらオプションはお好み程度の認識でもよいが、
    #学習の場合は品質への影響を考慮する必要がある。
  • 変更2カ所目: Gradient checkpointingの変更
    場所は先のCrossAttention設定付近にある。
    Gradient checkpointingをチェック済みにしておかないと、VRAM容量が厳しいかもしれない。
  • 変更3カ所目: Optimizer
    OptimizerがAdamW8bitだと旧型VGAでは非対応なためエラーで使えないと思う。
    そこで、AdamWなど、他のに変更する。
    ちなみにAdamW8bitではこんな謎エラーが出るようだ。
    Error named symbol not found at line 218 in file D:\a\bitsandbytes\bitsandbytes\csrc\ops.cu
 

LoRA学習をするにあたり、たいていは最初はサンプルコンフィグを読み込んで使うと思われるが、
それらの初期値はxformersが有効になっていたりするので、上記を変更しないと動かない。
一度使うと自分用ベースコンフィグを読み込んで使うようになるので、変更は最初だけである。
学習すると出力フォルダにそのコンフィグも出力されるので、次回からはそのコンフィグファイルを
自分用ベースコンフィグとして読み込んで使う。

 
 

学習は高負荷が長時間続くので、学習の際はVGAの設定で

省電力モードにしておくのがおススメ

AMD Adrenalin Editionのパフォーマンス チューニングの

電源チューニングで電力制限をするのが簡単

 

LoRAタブにて各種設定をし、 Start training で開始すると、
コマンドプロンプトで処理が始まり、多くのメッセージが表示されたのちに、
学習のプログレスバーが0%で止まったような状態になる。
CPUにシングルタスク相当の負荷がかかり、zluda.dbの肥大化が始まる。
#以前はコンソール上は止まったかのように見えたのだが、その後ログメッセージが実装され、
#そして先の設定のところでZLUDAのLOG LEVELを設定したことにより、この処理中は
# Compilation is in progress. Please wait...
#というメッセージが30秒毎に表示されるようになった。

10分くらい待つと、処理が進み始める。この10分間の待ちは初回のみだが、
SD1.5とはまた別にSDXLでも初回10分待ちは発生するかもしないかも。
#SDXL LoRA学習の初回は待ち時間にバラつきがあってよくわからん。

  • LoRAタブへの移動を忘れてDreamBooth学習タブでいろいろ設定して
    Start trainingでタブ移動忘れに気が付くことがあるそうな。よくみかける。
  • bitsandbytesがインストールされていないというエラーが出ることがあるらしい。
    https://github.com/kohya-ss/sd-scripts/issues/1038
    上記によると、対処方法としては下記でbitsandbytesの再インストール。
    venv\Scripts\activate
    pip uninstall bitsandbytes
    python -m pip install bitsandbytes==0.41.1 --prefer-binary --extra-index-url=https://jllllll.github.io/bitsandbytes-windows-webui
  • SDXLのLoRA学習ではVAEの問題がおこることがあるそうな。
    モデルによるのだとおもうが、VAEの問題といえば黒画面が出る話のことかな?
    VAEの問題は設定で No halfVAE の有効化/無効化を切り替えて回避できるそうな。
  • SDXL LoRA学習は、実績としてVRAM16GBにて標準的品質のFP16で出来ている。
    しかしVRAMが12GBとなると厳しいだろう。ネット上では12GBでもSDXL LoRA学習できる
    というのが見受けられるが、それはFP8などで品質を下げての学習の話。
    学習で品質を下げるのはすすめられることではなく、よく考える必要がある。
    イマドキは、学習するならクラウド使うのが合理的であろう。
     

学習成果の確認のための画像生成だが、kohya_ss GUIのAboutには、

Once you have created the LoRA network, you can generate images using auto1111 by installing this extension.

学習成果の確認の画像生成はA1111で、とある。
#核であるsd-scriptsには画像生成機能があるんだけど、GUI化はせずA1111に丸投げだ。

出来上がったLoRAファイルを

A1111の
models\Lora

にコピーし、promptでLoRAを呼び出し画像生成して確認。

* SD1.5モデルにはSD1.5用のLoRA、SDXLモデルにはSDXL用LoRA、PonyにはPony用でないと機能しないよ*

~~~ コメントから (意訳) ~~~
学習中の各段階毎のプレビュー画像生成機能がある。
GUI上のLoRAタブの下のほうの Parameters を展開し、その下のほうにある Samples を展開して、
例えば Sample every n epochs を 1 などに設定しプロンプトを入力しておくと、
学習中各段階で、LoRAが適用されたプレビューpng画像がoutputs\sampleフォルダに都度生成される。
なおこの画像生成においても初回のみ10分待ちがあったりする。zluda.dbサイズを見ながら待とう。
#たまたまこの待ちのタイミングでwarningが出たりするので、焦って失敗したと勘違いしがち。
注意点として、SDXL LoRA学習の場合、VRAM容量によってはこの画像生成時にVRAMが溢れエラーに
なることがある。回避方法としては、起動用の gui.bat の3-5行目あたりに
set PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:512
を追加するとうまくいくようだ。

 

まず、Forgeでは2024年6月に大規模方針転換宣言があったので、Forgeはおすすめできないね。
github
https://github.com/lshqqytiger/stable-diffusion-webui-amdgpu-forge
Forgeとは

Stable Diffusion WebUI Forge is a platform on top of Stable Diffusion WebUI (based on Gradio) to make development easier, optimize resource management, speed up inference, and study experimental features.
The name "Forge" is inspired from "Minecraft Forge". This project is aimed at becoming SD WebUI's Forge.

とのことだが、大きな方針転換があったりと、常に追いかけていないとよくわからん。

方針転換で別物になったことで、Forgeといっても大きく3つに分かれる。
新しいのから順に、

  • 最新Forge
    2024年8月に大規模更新があり、Forge v2 になった。Fluxに対応。
    * V-Prediction / v_pred については、Forgeは登場当初の2024年2月の時点で既に対応していて、
    * 下記の旧版Forge110や旧版Forge1でもV-Predictionが使えるのだが、Forge v2では
    * 2024年8月の大規模更新から数か月のあいだV-Predictionが使えない時期があった。
    * その後、2024年冬の更新で再度V-Predictionが使えるようになっている。
    * なお、旧版Forge1ではV-Predictionモデルの検出に不具合があるとの声をたまに見かけるが、
    * そのような声を見るたびにそのモデルを旧版Forge1で実際に試してみるとどれも問題が無いので、
    * おそらくV-Predictionに非対応なLoRAとの組み合わせなど別に原因があるとおもわれる。
    ダウンロード(git clone)はこのコマンド。
    新規フォルダ(例えばC:\forge2)を作って、
    git clone https://github.com/lshqqytiger/stable-diffusion-webui-amdgpu-forge.git .
    インストール方法はA1111ZLUDAと同じ。ダウンロード(git clone)で指定するURLが違うだけで、
    続く手順はA1111ZLUDAと全く同じなので、
    3 A1111 のZLUDA対応Fork版のインストール、起動
    を参考に。
    Forgeはv2になってzluda.dbの10分待ちのタイミングが変わったようだ。Generate押してから10分+10分。
    インストールの際、Forgeはいろんなモジュールてんこ盛りなので、初回のwebui-user.batはよくコケる。
    でもすぐに再度webui-user.batをおこなうとアッサリ起動したりする。そういうものだ。
    2025年3月追記:
    Forge2では、2025年3月の更新でtorchが2.3.1から2.6.0になったことによる影響で、
    生成時間が1.4倍かかりVRAMも1GB以上余計に消費してしまう事例がある。(なおForge1は関係ない)
    原因のひとつは、pytorch cross attentionを使ってしまうため。
    対策として、起動オプションにcross attentionを指定する。
    set COMMANDLINE_ARGS=--use-zluda --attention-quad
    *この起動オプションのうち--attention-quadはForge2限定である。(Forge1ではSettings内で変更が出来る。)
 
  • A1111のv1.10をForkしたForge
    A1111が1.10になった際に更新されたForge
    それ以前のForgeとはだいぶ違う。また最新とも違う。
    この旧版にしたい場合は、 git clone をしたのち git checkout で過去に遡らせる。
    旧版用に別フォルダ(例えばC:\forge110)を作って、
    git clone https://github.com/lshqqytiger/stable-diffusion-webui-amdgpu-forge.git .
    git checkout 7e4c76dbab636d6860b17819fc7c19967cb8960c
    もう旧いため、インストールがコケるようになってしまった。これForge110をインストールしたい場合は、
    上記git clone, git checkoutを実行ののち、続くForge1と同じやり方でインストール可能。
 
  • 初期系統のForge
    ネットで話題にされているForgeはたいていコレ。
    この旧版にしたい場合、 git clone をしたのち git checkout で過去に遡らせる。
    別フォルダ(例えばC:\forge1)を作って、
    git clone https://github.com/lshqqytiger/stable-diffusion-webui-amdgpu-forge.git .
    git checkout 4a93f424d40948a1f4630872517a6281dc7daa11
    2024年の秋までは問題なく簡単にアッサリとインストールできたが、冬にいくつかの外部モジュールの更新があった影響で、そのままだとインストールがコケるようになった。
    現在(2025年初頭)のこのForge1のインストール方法はZLUDAannex1の Forge ZLUA版で旧Forge1 に記載したのでそちらまで。
    #通常であれば、新版にしてね、となるんだけど、Forge1は2025年になっても他と比べて少VRAM性に優れており利用者も多いことから、ZLUDAannex1に書いておくことにした。
    なお、このように旧版がインストールできなくなることはForgeに限らず外部モジュールに依存しているものではよくあることで、旧いバージョンのは外部の更新の影響によりインストールがコケるようになる。
    そういうものであり、そしてそのような場合は、該当のモジュールに対し当時のバージョンを明示的に指定するとインストールできるようになる。
 

Forgeの留意点
ネットでのForgeの評判は、

  • VRAM8GBでもSDXLがまともに使える
  • VRAM12GやVRAM8Gで大幅な速度向上
  • 使い勝手や生成出力画がA1111とほぼ同じ

というわけで、VRAMが8Gや12G機ならForgeは試してみるのがおススメ。

一方、VRAMが16GB以上あると、見解が異なる。
VRAMが16GB以上の場合、メリットとしては、

  • Forgeにしか使えない機能があるので、それ目的にForgeを使う
  • VRAM16GB以上ある場合、速度向上は実測で3-4%程度。(Forge公式より)

そしてあまり語られないデメリットもあり、

  • 安定性がA1111と比べて劣る
  • 動かない拡張機能がある
  • 生成出力画がA1111より劣る

VRAMが16GB以上ある場合、メリットとデメリットそれぞれを考慮すると、
スピードのわずかな向上に対しデメリットが大きすぎるので、おススメはしない。
なんせ、A1111はとても安定している。
A1111にはあとはForgeには標準搭載のTiled VAEが使えるように拡張機能で
multidiffusion-upscaler-for-automatic1111
を入れてしまえばOK。大きなサイズの画のときだけTiled VAEを使うとメモリーが溢れない。
生成出力画は、ForgeA1111より劣る。たとえばForgeは耳の位置がずれる。Forge耳。
wikiの Forge でも

処理は早いが正確な描写を苦手とする。特に手や足が破綻しやすい。背景のクオリティも若干下がる。

と触れられているとおりで、
手足の指の破綻も多いのだが、これはA1111でも多いのでしかたのないところだけど、
ネットでForgeA1111とで「全然違わないでしょ」と言って比較サンプル出した人の
その比較絵を見たら、A1111で指6本に破綻しているのがForgeだと7本になってた……。
AI生成に慣れてくると破断した絵にも慣れてしまい、破綻の許容範囲がだんだん広く
なっていき、一般とは感覚がずれてしまいやすくなるので、気を付けましょ。
Forgeの画でA1111と確実に違いが出るのは髪飾りで、必ずといっていいくらい変化する。
そしてForgeでは耳を髪飾りと誤認識することがあるのか、耳の位置がずれることが
よくあり、構図としておかしい位置までずれたりする。これがForge耳。
このようなデメリットがあるので、VRAMが16GB以上ある場合は普段はA1111
Forge独自機能を使うときだけForgeを使うのがおススメ。

 
 

コメント/Nvidia以外のグラボに関して で少し書いたが、
Linuxなら既にROCm使って画の生成が出来ているようだ。やり方も書かれている。のだが、
ここ用に用意していた文はボツに。

いちおう RX9070 / XT でのwindowsでのZLUDAだけど、
現在(2025年3月初週)、最新のHIP SDK 6.2.4 はRX9000には対応していない。なので、
今後の流れとしてはこんな感じ。

  • AMDがwindows用の新版HIP公開
  • 新版HIPに対応した新版ZLUDA公開 (ソースコード見るに、再ビルドするだけだから対応は早いかと)
  • アプリ側のZLUDA全自動インストールに新版ZLUDA追加
    中級/上級者であれば、各アプリの対応を待たずに patchzluda6.bat汎用版 などでZLUDA投入

    追記:
    ZLUDAのv3.9.1が公開され、GFX1201 ( RX 9070 / XT ) に対応した模様。
    それとは別に、HIP 6.2.4 用のVGAライブラリとして GFX1201用のが公開された模様。
    libraryと共にrocblas.dllも入っている。一緒にGFX1201用のhipblasltも公開されている。
    これらの組み合わせでRX9070XT搭載windowsPCでA1111が動くかもしれない。(実際に動くかはわからん。)
    まだ最適化はしていないようなので、ZLUDAannexに記載のTUNABLEOP最適化をしないと遅いかも。
    なお、ZLUDAのv3.9.1のnightlyにはcuDNNが入っており、こちらは実際に旧型VGAで
    軽く試したところ、A1111-ZLUDAでのSDXLの生成速度が15%から20%向上した。
    cuDNNはいまはまだnightlyで挙動に妙なくせもあって手放しでのおすすめはしないが、
    もし上級者で気になるのなら試してみては? 試すのはバックアップをしてからね。

    追記2:
    ライブラリとrocblas.dllを入れ替えても動かない場合は、
    C:\Windows\System32
    にある
    amdhip64.dll

    C:\Program Files\AMD\ROCm\6.2\bin
    の中にコピーする。
    他にも注釈を読み返す。
 

最新の10件を表示しています。コメントページを参照

  • A1111 ZLUDA Fork / AMD HIP SDK 6.2 / ZLUDA v3.9.1 + HIP SDK extension / gfx1201 rocBLAS(Library追加)/ torch 2.6.0 + cu118にて、RX 9070 XTは約70秒(Hello Asuka 25 steps x 10 batch count)でした。上記コメントより最適化がやや進んだ様子? -- 2025-03-23 (日) 13:36:47
  • A1111 のZLUDA対応Fork版、おとといあたりのアプデでHIP SDK 5.7ではエラーで動かなくなった(6.2.4にしたら動いた)。おま環の可能性も捨てきれないがそういう可能性もある、ということでお気を付けを。 -- 2025-03-24 (月) 16:55:40
    • 書き忘れ。Windows 11 23H2, GPUはRX7900XTX, -- 2025-03-24 (月) 16:56:56
  • Radeonのドライバをうっかり最新の25.3.1にして以降、たまにOut of Memoryが出るようになるのですが、ほかに類似の事例の人とかいますかね
    おそらくおま環でドライバを戻せばいいのですが、まぁ念のため
    環境はWindows 11 24H2, GPUはRX7900XT -- 2025-03-25 (火) 22:58:07
    • うちはHires fix掛けるとPCがフリーズするので25.2.1に戻した -- 2025-03-27 (木) 17:50:36
    • 25.3.1は評判悪いね、既に25.3.2が出てるのを試すのもありかも。 -- 2025-03-27 (木) 19:28:03
    • 自分も25.3.1でHires fixで止まったので、25.3.2試してみましたが同じ結果でした。Win 11 23H2, RX7800XTですが参考までに -- 2025-03-29 (土) 16:55:36
  • SD.NextでROCm TritonのFlash Attention 2・Sage Attentionに対応したらしいので7000・9000シリーズ持ってる人は試してみてくれ。爆速になるはずhttps://vladmandic.github.io/sdnext-docs/ZLUDA/#how-to-enable-triton -- 2025-03-29 (土) 04:20:24
    • 書き忘れた、ZLUDA 3.9.2の新機能 -- 2025-03-29 (土) 04:35:37
      • 対応版はSD.NextのDevブランチにあるのでそこも注意 -- 2025-03-29 (土) 04:36:34
      • より正確にはzludaの人がtritonも自環境向けに移植だね、本家rocmはtorch内バグで足踏みとかどうなってるの…
        本家の説明読んだ範囲では特にrocmバージョンやハードで制約があるわけではないようなので、zluda使う人は試す価値はあるかも? -- 2025-03-29 (土) 08:25:00
      • 付け足しとしてはtritonはtorchコンパイルの一種なのでTensorRT、OpenVINOやOliveと同系列で既にこれらを使ってる人は得るものが小さいかも、FlashやSageは別として。 -- 2025-03-29 (土) 08:36:48
      • ZLUDAの人がビルドしたtritonはCのバージョンが合ってないのか何かが不足してるのかSDNext実行時にエラーが出て使えなかった。自分が9070XTだからかもしれないのでできた人いたら報告くれると嬉しい -- 2025-04-02 (水) 17:59:19
      • 一昨日SDNext側に追加コミットされてZLUDAインストールが最適化されたので今なら動くかも。6900XTでZLUDA 3.9.2 Nightly+Flash Attention 2(Triton Flash Attention表記)が動いた。起動コマンドは下記(最初に.zludaフォルダを消しておく)
        .\webui.ps1 --use-zluda --debug --autolaunch --use-nightly
        速度的にはAIコア無しの6900XTで1024x1024のIL系モデルが1.30s/it、VAEが一瞬。まだ9070XTでエラーが出てたらHIP側のアプデ待ちかも -- 2025-04-04 (金) 16:43:39
      • 上の9070XTだけどgit pullして再構築、visual studio(clang)のパス通し直しとvenv配下にpythonのdllが入ってるlibsフォルダコピーしたらエラーは出なくなった。ただ1.3/itsぐらいでtriton導入前と変わんないから効果あるのかは正直分からん… -- 2025-04-06 (日) 14:40:18
      • うーん電力制限外した6900XTで1.25~1.3it/s出てるからそれは設定が上手くいってなさそう。wikiの通りPython 3.11 / triton 3.3.0を入れても1.3it/sのままなら9070XTは未対応かも(GeForceでも最新GPUは要アプデなので) -- 2025-04-08 (火) 14:19:02
      • 色々ありがとう。結局comfyuiをzluda化してtriton使ってwavespeedで高速化するのが一番早かったのでこの組み合わせにした。hipのコミュニティビルドにはちゃんと9070XT not optimized的なこと書いてあるし動くだけありがたいわ。 -- 2025-04-11 (金) 21:12:21
  • kohya_ss GUIが数か月ぶりに更新があって、メジャーバージョンが上がってる。
    特に、核の部分のkohya_ssが、従来のmainブランチからSD3ブランチに変更されており、どうやら大きく方針を変更したようだ。
    よって、従来のmainブランチのをインストールしたい場合は、
    git clone --recursive https://github.com/bmaltais/kohya_ss.git .
    を実行した直後に、
    git checkout e5e8be05fe0475a04e61ef668afffc632aa178f5
    git submodule update --recursive
    これらを実行して、2024年9月6日版に戻す。
    これで、kohya_ss GUIおよびサブモジュールのkohya_ssも以前の版に戻る。
    ちなみに今回は大きな方針変更をしたこともあってか、不具合の修正が続いているが、ちょっとZLUDA化してLoRA学習試したところ出来た。
    あとは、新版の特徴としては、核がSD3ブランチになったことで、SD3.5やFluxの学習に対応したようだ。
    その兼ね合いでtorchのバージョンが上がっているのだが、大元のSD3ブランチのtorchは2.4.0なのにもかかわらず、なぜかkohya_ss GUIでは2.5.0に。しかも強制。#でもなんで2.5.0なんだ???
    このtorchの変更に対応するためZLUDAでの導入手順が少し変わって、 requirements_pytorch_windows.txt の編集が必要になった。cu118化と、xformersの行の削除。
    ここRadeon ZLUDA用の下書きは既に書き上げてはあるんだけど、kohya_ss GUIでは不具合の修正が続いているので、ここの更新は、そのうち。
  • ZLUDA v3.9.2の更新を確認しました。「cuDNN on Windows」項目下にHIP SDK extensionのzipファイルを確認した所、gfx803等の古いライブラリファイルが大量に入っていました。ライブラリファイルを取りそこねた人はここから入手できるかと思います。v3.9.2の項目にわざわざ古いライブラリを置くということは、最新のZLUDAとHIP SDK 6.2でも動かせるという事かも知れませんね。もし間違っていたらごめんなさい。 -- 2025-04-02 (水) 13:44:23
  • HIP SDKを6.2.4にしてからkohya_ss動かそうとしたら TypeError: argument of type 'bool' is not iterable とかいう謎のエラーが出て頭抱えてたんだけど pip install --upgrade gradio_client でgradio clientを新しいものに更新したら動いた。しかし今度は training実行時に RuntimeError: cuDNN error: CUDNN_STATUS_INTERNAL_ERROR が出た。torch.backends.cudnn.enabled = False は設定してあるし環境変数でも制御できるらしかったので指定(set TORCH_USE_CUDNN=0)したけど変わらない。起動時のデバイスはちゃんと認識されているんだけど。もうやだこのkohya_ss -- 2025-04-03 (木) 01:47:12
    • LoRA学習についてはZLUDAフォーク版の作者が海外で主流のOne TrainerをZLUDAに対応させてるからこっちを使った方が良さそう。最終更新3ヶ月前だけどSDXL用なら十分だし6.2.4対応情報もある https://github.com/lshqqytiger/OneTrainer https://github.com/CS1o/Stable-Diffusion-Info/wiki/Lora-Trainer-Setup-Guides#amd-onetrainer-with-zluda -- 2025-04-03 (木) 11:44:13
      • ありがとうございます。これから試してみます。 -- 2025-04-03 (木) 17:04:10
      • GPUを利用してLoRAが作成されるのを確認しました。(ただパラメータが間違っているのか効き目がないLoRAができましたがこれはkohya_ssのときも同じことあったので設定不足でしょう) ありがとうございました。 -- 2025-04-04 (金) 17:54:34
  • reForgeの自力zluda化、とりあえず動く。
    annexにある—disable-cuda-mallocをwebsite-user.batに更に追加、init.py改変はmodules_forgeフォルダ内のinitialize.pyに対して施すことで起動から生成まで行けた。 -- 2025-04-10 (木) 07:16:44
    • websiteってなんやねん、webui-user.batと入れたらiOSの自動修正が余計なことしやがる… -- 2025-04-10 (木) 07:19:38
  • Radeon 780M、メモリ32GBでamdgpuブランチからZLUDAで動かしてみたが、1024x1536くらいの解像度だと1枚30分かかる。RTX3060なら30秒なのになぁ...。 -- 2025-04-12 (土) 17:47:01
    • こっちだと1024^2が4s/itぐらい、30timesでも二分だからなんか失敗してそうな。>780m zluda forge
      ちなみにwebui-amd側だとちょっと速いがしばしば落ちるのはおま環なのかwebuiがVRAM管理下手なのか…? -- 2025-04-12 (土) 19:38:48
      • ソフト入れ直してlow-vram設定で1024^2が20s/itくらい。1024x1536はメモリ不足で落ちる。以前より速くはなったが期待外れかな...。 -- 2025-04-13 (日) 17:49:17
  • Ryzen APUでlow-vramは全くメリットないかと、DRAMをUEFIやwindowsシステムでVRAMと言い張ってるだけなので。
    UEFIで最大限割り振ってあとはシステムの共有GPUメモリに自動で取らせて、webuiではmedvram以上、forgeでは—always-gpuまでやってでも一気にGPU処理させる方が高速化できると思う。メモリ不足は最後のVAE変換時に全画素通すのが一番食うそうで、VAE hypertileを使う、他のtiling/slicingも考慮するとwebuiで改善しやすい、ここを全自動でやってくれるのがforge系の評判の良さになってる。 -- 2025-04-14 (月) 10:10:44New
    • もっとRyzen APUの性能を上げたいならDRAMレイテンシを減らすとかDRAMオーバークロックとかが効果を出しやすいそうだがそこまでいくとシステムの安定と引き換えになりやすい、DRAM増量だけでLLMだろうがビデオ生成だろうが手を出せるお手軽さを有効利用した方がいいと思う。128GB DDR5(64GB*2枚)が現状の最大限だっけ… -- 2025-04-14 (月) 10:28:02New
    • APUなら海外ではComfyUIで--novramで起動っての何度か見たな。これSDXLの768^2生成でVRAM増加分は3GB程度なので、PCのBIOSでAPUのVRAMが4G固定の機種なんかに向いているとおもう。
      ちなみにComfyUI-ZLUDA見たら、一昨日の更新でHIPの5.7.1に加えて6.2.4に対応した模様。 -- 2025-04-15 (火) 23:46:16New

(Tips)

  • 既存コメントの先頭にあるラジオボタンをONにすると、そのコメントの下にぶら下げ返信する形になります(ツリー構造)。
  • コメントの文中で↵ボタン(下の画像参照)を押すと「&br;」の文字列が挿入されます。これは送信後に改行として機能するので、文章の整形に役立ちます。
    br.png