LoginSignup
1
2

More than 1 year has passed since last update.

Radeonでも画像生成AIを使いたい

Last updated at Posted at 2023-03-21

はじめに

最近話題なStable Diffusionを自分も使いたいと思っていたのですが、未だに Radeon Rx570(4GB) を使用しているためCUDAコアが使用できないという状態になっていました...。
「CPUで実行しても時間が掛かるしな...」と思いつつCPUで生成していたところ、Direct Machine Learning (DirectML) というAMDとMicrosoftが協力して開発した機械学習向けの低レベルAPIというものがあるらしく、これを使用したStable Diffusion WebUIがあることが分かった。
そこで今回は、それを導入する方法と結果などを紹介していきます。

実行環境

  • CPU : Ryzen7 3700x (8c16t)
  • RAM : DDR4-3200 16GB
  • GPU : Radeon RX570 4GB
  • Python : 3.10.6
  • Windows 11 22H2

導入

Stable Diffusionのインストール

Python(3.10.6)やGitは既にインストールされているものとして進めます。

任意の場所にフォルダを作成し、Gitで必要なファイルをダウンロードします。

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

以下のコマンドを実行します。

$ cd stable-diffusion-webui-directml
$ git submodule init
$ git submodule update

Modelのダウンロード

Hugging Faceから任意のモデルをダウンロードします。
例えばrunwayml/stable-diffusion-v1-5をダウンロードする場合、Files and versionsからv1-5-pruned.ckptをダウンロードし、./stable-diffusion-webui-directml/model/に配置して下さい。

起動

./stable-diffusion-webui-directmlにあるwebui-user.batをダブルクリックで起動すると足りないパッケージやモジュールのインストールがされ、http://127.0.0.1:7860/ こちらにアクセスすると画像を生成するWebが立ち上がります。
あとは任意のプロンプトで生成して下さい。

runtimeerror: could not allocate tensor with ~~ bytes. there is not enough gpu video memory available!

上記のエラーは、グラボのメモリが画像の生成に足りないときに発生します。私の場合4GBしかないためこのエラーが発生しました。
対処法として、webui-user.batの設定を次のように変更することで解決します。

webui-user.bat
@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--lowvram --always-batch-cond-uncond --opt-split-attention

call webui.bat

メモリの使用をなるべく使用しないように設定になります。これで512x512の生成が可能になりました。

結果

で、Radeonでも生成が出来るようになってどうなったのか?

ぶっちゃけあまり早いとは言えない...

まあ使っているグラボの性能を考えると当たり前ですがね

結論

もっと良いグラボかGoogle Colabを使おう

参考

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2